Html5视频流服务器要求
我正在开发一个使用html5视频标签的html5流媒体网站,我想知道我需要什么样的服务器以每秒4Mbsp的速率支持100个同步和不同的视频流。 还有,我需要什么样的硬盘或raid或其他什么来实现这一点。 我还需要记住,系统需要具有可伸缩性。 我看过AWS,但它似乎很贵。。。Html5视频流服务器要求,html,video,server,video-streaming,Html,Video,Server,Video Streaming,我正在开发一个使用html5视频标签的html5流媒体网站,我想知道我需要什么样的服务器以每秒4Mbsp的速率支持100个同步和不同的视频流。 还有,我需要什么样的硬盘或raid或其他什么来实现这一点。 我还需要记住,系统需要具有可伸缩性。 我看过AWS,但它似乎很贵。。。 感谢是进步。视频流场景中的繁重工作通常由CDN完成,CDN针对这一角色进行了大量优化。您想购买此服务,而不是构建它;David绝对正确地认为,构建、优化和维护您自己的基础架构的成本将高得令人望而却步。CDN将大量资源投入到工
感谢是进步。视频流场景中的繁重工作通常由CDN完成,CDN针对这一角色进行了大量优化。您想购买此服务,而不是构建它;David绝对正确地认为,构建、优化和维护您自己的基础架构的成本将高得令人望而却步。CDN将大量资源投入到工程解决方案中,以解决将大量数据快速传送到不同位置的问题。一句话:如果你对亚马逊服务的成本犹豫不决,你就无法承担设计自己的高性能边缘/原产地体系结构的费用
一些知名CDN包括Akamai、Amazon Cloudfront、Level3、BitGravity、Edgecast和LimeLight。尝试联系他们的销售部门,看看是否有人愿意为你做一笔好交易。使用此代码在ios中播放和播放视频
<?
$file="abc.mp4";
@fread($file);
$file = $play;
$fp = @fopen($file, 'rb');
$size = filesize($file); // File size
$length = $size; // Content length
$start = 0; // Start byte
$end = $size - 1; // End byte
header('Content-type: video/mp4');
header("Accept-Ranges: 0-$length");
if (isset($_SERVER['HTTP_RANGE'])) {
$c_start = $start;
$c_end = $end;
list(, $range) = explode('=', $_SERVER['HTTP_RANGE'], 2);
if (strpos($range, ',') !== false) {
header('HTTP/1.1 416 Requested Range Not Satisfiable');
header("Content-Range: bytes $start-$end/$size");
exit;
}
if ($range == '-') {
$c_start = $size - substr($range, 1);
}else{
$range = explode('-', $range);
$c_start = $range[0];
$c_end = (isset($range[1]) && is_numeric($range[1])) ? $range[1] : $size;
}
$c_end = ($c_end > $end) ? $end : $c_end;
if ($c_start > $c_end || $c_start > $size - 1 || $c_end >= $size) {
header('HTTP/1.1 416 Requested Range Not Satisfiable');
header("Content-Range: bytes $start-$end/$size");
exit;
}
$start = $c_start;
$end = $c_end;
$length = $end - $start + 1;
fseek($fp, $start);
header('HTTP/1.1 206 Partial Content');
}
header("Content-Range: bytes $start-$end/$size");
header("Content-Length: ".$length);
$buffer = 1024 * 8;
while(!feof($fp) && ($p = ftell($fp)) <= $end) {
if ($p + $buffer > $end) {
$buffer = $end - $p + 1;
}
set_time_limit(0);
echo fread($fp, $buffer);
flush();
}
fclose($fp);
exit();
}
?>
很抱歉,这里的硬件建议不在讨论范围之内。我看过AWS,但它似乎很贵。
-然后试试他们的竞争对手。任何云解决方案都可能比构建自己的基础设施便宜一些数量级。我不明白:如果我考虑4Mbps×100个用户的流速(同时),我达到400 Mbps,即50 MB x秒,SSD HDD和1Gbps带宽应该达到我的目标,还是还有其他问题要考虑??是的。例如,当来自世界另一端的人来访时会发生什么?是从最初存储位置提供的内容。CDN有一个边缘/源(类似于交付/存储)体系结构,允许他们从不同于原始存储位置的位置交付文件。还有缓存。当来自同一地理位置的两个人(比如印度)观看两次视频时会发生什么?比特是否每次都必须通过海洋运输,或者对于第一个提出请求的人来说,昂贵的长途运输只能进行一次,然后让后续的观众从更本地的角度观看?问题是,确保比特(在大多数情况下)是由大量的工程技术参与的在收到请求后的很短时间内可用,无论请求来自全球何处。让事情神奇地“正常运转”所需的基础设施非常昂贵,而且难以构建和维护。除非你想让这成为你的生意,否则你最好还是从那些为这项事业付出了时间、金钱、工程和人际网络的人那里购买这项服务。