如果您正在尝试开发交互式直播应用程序,则需要依赖超低(实时)延迟。例如,用于视频会议或远程实验室。
这两种适用于这种情况的协议是:
* WebRTC:由于我试图让更多的受众互相交流的可能性,因此WebRTC并不合适。因为据我所知,它不适合更多的观众。
我的问题:
我应该为这个用例选择哪一个? RTSP / RTP还是RTMP?
哪种协议可以提供有关端到端延迟,会话启动时间的更好结果?
哪一个消耗更多的硬件资源?
RTMP似乎使用持久性TCP连接。但是哪种协议用于传输?它不能是TCP,因为这无法确保实时延迟?
使用这两种协议的优缺点一般是什么?
我没有在科学论文或书籍中找到这两种方案的任何比较。只有着名的移动直播应用Periscope正在使用RTMP。
其他应用程序(如Instagram或Facebook)例如提供与流媒体的基于文本的交互。 如果开发人员希望基于交互式直播流构建下一个“杀手级应用程序”:我认为这个问题至关重要。
答案 0 :(得分:14)
你在答案中做了很多假设。
WebRTC:由于我试图让更大的受众群体互相交流,因此WebRTC并不合适。因为据我所知,它不适合更多的观众。
这根本不是真的。 WebRTC不了解或关心如何构建服务器端的应用程序。有很多现成的服务可以通过WebRTC处理大型群组通话和低延迟视频分发。
您还应该知道,对于媒体流,WebRTC是RTP。
它不能是TCP,因为这无法确保实时延迟?
当然可以。 TCP有一些开销,但没有什么能阻止你在实时场景中使用它。 TCP的开销很小。
UDP传统上用于这些场景,因为不需要可靠性,但这并不意味着TCP几乎不能被使用。
RTMP
RTMP是Flash的死协议。没有浏览器支持它。其他客户仅出于遗留原因支持它。你不应该用它来做任何新的事情。
只有着名的移动直播应用Periscope正在使用RTMP。
嗯,这不是做任何事情的理由。
- 哪种协议可以提供有关端到端延迟,会话启动时间的更好结果?
醇>
的WebRTC
- 哪一个消耗更多硬件资源?
醇>
这不是正确的问题。您在应用程序的几乎任何其他部分的开销远远超过用于分发的协议的传输开销。
您需要考虑的真实事项清单:
您也可以在此处找到有用的帖子:https://stackoverflow.com/a/37475943/362536
简而言之,请检查您的假设。理解权衡。根据真实信息做出决策,而不是全面推广。