0

我有一个客户的要求是他想要一个能够通过搜索流式传输上传视频的网站。最苛刻的要求是他们每周都会举办某些活动,并且他们希望将这些活动覆盖并记录在相机上,并且该视频应该在网站上实时可见。

我知道如何用 php 制作网站,但我不知道基于网络广播的网站的要求是什么,特别是摄像头和带宽要求。

Also what are the requirements and methods for a website which can stream videos uploaded on server.I am totally new to video streaming and don't know how to do it in php.

请解释一下实现它的方法。

4

3 回答 3

1

尝试 HTML5 网络摄像头捕获。

它在 Google IO 期间被突出显示。

我认为你需要谷歌的方法。我还没有真正使用它。

于 2012-07-10T05:07:44.710 回答
1

作为 Red5 的替代品,可能更适合您尝试做的事情是 Nginx-RTMP 模块。https://github.com/arut/nginx-rtmp-module如果您当前使用或可以使用 Nginx,该模块易于配置和使用。它可以通过 RTMP 接受实时视频并将其提供给 JWplayer 等基于 Flash 的播放器,同时创建 HTTP 实时流以在 Apple 设备(以及 ROKU 等其他设备)上播放。

我在几台服务器上设置了它,并且对结果非常满意。它通过 RTMP 接受视频,并且做得很好恕我直言。

使用 Nginx-RTMP,我使用运行 ffmpeg 的脚本将预先录制的文件“实时”流式传输到服务器。然后,当我们真的想要一个真正的实时视频源时,只需停止 ffmpeg 并使用运行 ffmpeg 的计算机(例如从带有视频源的工作室),或者使用手机或平板电脑上的 OSBroadcaster,从我们的实时位置进行流式传输,或者实际上任何可以通过 RTMP 流式传输视频的软件或应用程序。

您可以使用一些 PHP 后端自动执行所有这些操作,因此您预先录制的材料会自动存储在服务器上(Nginx-RTMP 也可以录制您的流)并在 HTML5 视频元素或基于 Flash 的视频中显示在适当的页面上播放器,或两者兼而有之。并且当实时提要实际上是实时的时,您可以让 PHP 在您的页面上显示一个播放器窗口来显示实时流。

当然,这被过度简化了,但希望你能对它的工作原理有所了解。

有关Nginx-RTMP 模块的更多信息,另请参阅如何使用 nginx 设置您自己的私有 RTMP 服务器。

至于相机,这完全取决于情况,那是一个完全不同的领域。您可以使用网络摄像头,或通过 RTMP 流式传输的平板电脑/智能手机,或输入运行 RTMP 客户端流媒体(如 ffmpeg)的计算机的专业摄像头(我认为 VLC 也可以)。或者,Teradek 和其他一些公司制造了一些小硬件盒 (Teradek Vidiu),您可以将其插入视频输入,然后他们将通过 RTMP 对视频进行编码和流式传输到您指定的任何服务器。

带宽取决于很多因素:您将拥有多少观众、视频质量和分辨率,以及您需要支持多少同步流(来自不同位置的多个直播流等)

您的上传带宽(相机到您的流媒体服务器)的范围可以从 100kbps 左右到几 Mbps,具体取决于您的视频要求。不过,举一个典型的例子,如果您以每秒 24-30 帧的速度流式传输标清视频,并使用像 h.264 这样的良好编解码器,您可以预期一个质量不错的流将占用大约 400-700kbps。它可能与此有很大不同,但这是一个很好的起点。如果您发送 720p30,您可能需要使用大约 1-1.5Mbps 左右。1080p30,可能是 1.5-3Mbps,超高清,5-6Mbps。但就像我说的那样,您选择的比特率将根据您的质量需求而有所不同。

然后,您流出的内容,将该速率乘以您想要支持的观众数量,再为您的上传流添加一个,您就拥有了所需的总带宽。还有其他事情需要考虑,但你有你的出发点。

于 2016-01-02T22:52:56.550 回答
0

我做了很多研究,发现我们必须使用闪存类型的服务器。为此,我们有 2 个选择:RED5 和 Flash。RED5 是开源的,而 Flash 不是免费的。对于此类网络广播,我们需要安装此类服务器,然后使用适当的 API 并将 Flash 播放器嵌入到您的网页中。这些特殊的服务器是必需的,因为我们需要在不刷新页面的情况下处理请求,然后动态加载内容。

于 2012-09-01T17:47:20.753 回答