我正在制作一个实时流式原型,我一直在阅读很多关于实时流的工作原理以及许多不同的方法,但我仍然找不到适合我需要的实时流式传输堆栈......
这些是我原型的要求:
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个网络浏览器中查看,这就是全部,我不需要各种格式,也不支持不同的带宽或设备。
答案 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传送。