在浏览器中通过网络摄像头实时直播

时间:2017-10-01 19:45:22

标签: amazon-web-services video-streaming html5-video wowza

我正在制作一个实时流式原型,我一直在阅读很多关于实时流的工作原理以及许多不同的方法,但我仍然找不到适合我需要的实时流式传输堆栈......

这些是我原型的要求:

1)视频/音频录制必须来自使用网络摄像头的网络浏览器,其想法是客户端最好不需要安装插件或做任何复杂的事情(也许安装Flash播放器插件是可以接受的,仅用于录制视频,观众应该能够在没有插件的情况下查看流。)

2)它不能是点对点的,因为我还需要将整个视频存储在我的服务器中(例如在亚马逊s3服务器中)以便稍后查看。

3)观众也应该可以通过他们的网络浏览器(例如Chrome和Firefox)观看流而无需安装任何内容。如果可能,我们希望使用HTML5视频代码。

4)原型的构建不需要花钱。我已经看到AWS-Cloudfront和Wowza提供免费试用,因此我们正在考虑使用这两种服务。

5)原型应该能够一次维持1个实时流和2个观众,所以对此没有任何限制。

有什么建议吗?

我特意被困在/混淆了架构的上传/编码视频部分(我是流媒体新手,所有的格式/编解码器/协议/技术都让人很难消化)。

截至目前,我遇到了WebRTC,它显然允许我做我想要的,使用网络摄像头从浏览器录制和编码视频,但此API仅适用于HTTPS站点。 是否有适用于HTTP网站的替代方案?

我不完全确定的另一部分是需要编码服务器,例如Wowza Streaming Engine,为什么我需要它?如果我使用例如WebRTC对视频进行编码,然后我将其发送到分发服务(例如AWS-Cloudfront),这还不够吗?我确实理解编码服务器将允许我支持许多不同的设备,因为它将创建许多不同的编码并提供许多不同的HTTP协议,但我是否需要它用于此原型?我只想制作1格式(例如MP4)直播,可以在2个网络浏览器中查看,这就是全部,我不需要各种格式,也不支持不同的带宽或设备。

2 个答案:

答案 0 :(得分:0)

根据您的要求,WebRTC是个好方法。

  

API仅适用于HTTPS网站。有没有其他选择可行   使用HTTP站点?

没有。目前Firefox只是浏览器允许HTTP上的WebRTC,但最后它需要HTTPS

答案 1 :(得分:0)

要做这个原型,你需要使用Wowza WebRTC。

在使用wowza时,所有流都只从wowza传送出来。所以它变成了一个路由的WebRTC。

安装Wowza - https://www.wowza.com/docs/how-to-install-and-configure-wowza-streaming-engine

启用WebRTC - https://www.wowza.com/docs/how-to-use-webrtc-with-wowza-streaming-engine

Downaload并配置Streamlock。或自签名JKS文件 - https://www.wowza.com/docs/how-to-request-an-ssl-certificate-from-a-certificate-authority

下载示例WebRTC - https://www.wowza.com/_private/webrtc/

使用发布HTML发布流并通过播放HTML播放(支持的Chrome,Firefox和Opera浏览器)

对于WebRTC中的MP4文件:您需要启用带h264和&amp ;;的转码器。 AAC。此外,您还需要在为WebRTC(不是DVR)创建的应用程序属性中启用选项“记录所有传入的流”。使用文件编写器模块将所有录制的文件保存在自定义位置。使用自定义脚本(Bash,Python)将所有转码文件移动到s3存储桶,通过cloudfront传送。