Streaming RTMP与RTSP/RTP:交互式livestream应该选择哪一种?

Streaming RTMP与RTSP/RTP:交互式livestream应该选择哪一种?,streaming,rtsp,rtmp,rtp,live-streaming,Streaming,Rtsp,Rtmp,Rtp,Live Streaming,如果您正试图开发交互式livestream应用程序,那么您将依赖超低(实时)延迟。例如,视频会议或远程实验室 适用于这种情况的两个协议是: RTSP,同时通过RTP传输数据 RTMP *WebRTC:因为我试图让更多的观众能够相互交流,所以WebRTC并不合适。因为据我所知,它不是为更多的观众而设计的 我的问题: 对于这个用例,我应该选择哪一个?RTSP/RTP还是RTMP 哪种协议在端到端延迟、会话启动时间方面提供更好的结果 哪一个消耗更多的硬件资源 RTMP似乎使用持久的TCP连接。但传

如果您正试图开发交互式livestream应用程序,那么您将依赖超低(实时)延迟。例如,视频会议或远程实验室

适用于这种情况的两个协议是:

  • RTSP,同时通过RTP传输数据
  • RTMP
*WebRTC:因为我试图让更多的观众能够相互交流,所以WebRTC并不合适。因为据我所知,它不是为更多的观众而设计的

我的问题:

  • 对于这个用例,我应该选择哪一个?RTSP/RTP还是RTMP

  • 哪种协议在端到端延迟、会话启动时间方面提供更好的结果

  • 哪一个消耗更多的硬件资源

  • RTMP似乎使用持久的TCP连接。但传输使用的是哪种协议?它不能是TCP,因为这不能确保实时延迟

  • 使用这两种协议的优缺点是什么

  • 我没有在科学论文或书籍中找到这两个协议的任何比较。只是著名的移动流媒体直播应用Periscope正在使用RTMP


    例如,Instagram或Facebook等其他应用程序提供了与streamer的基于文本的交互如果开发人员想基于交互式实时流构建下一个“杀手级应用程序”:我认为这个问题是必须回答的。

    您在回答中做了很多假设

    WebRTC:因为我试图让更多的观众能够相互交流,所以WebRTC并不合适。因为据我所知,它不是为更多的观众而设计的

    那根本不是真的。WebRTC不知道也不关心如何在服务器端构建应用程序。有大量现成的服务可通过WebRTC处理大型群组呼叫和低延迟视频分发

    您还应该知道,对于媒体流,WebRTC是隐藏的RTP

    它不能是TCP,因为这不能确保实时延迟

    当然可以。TCP有一些开销,但没有什么可以阻止您在实时场景中使用它。TCP的开销是最小的

    UDP传统上用于这类场景,因为不需要可靠性,但这并不意味着TCP的使用性能差

    RTMP

    RTMP是闪存的死协议。没有浏览器支持它。其他客户端仅出于遗留原因支持它。你不应该用它来做任何新的事情

    只是著名的移动流媒体直播应用Periscope正在使用RTMP

    嗯,这不是做任何事情的理由

  • 哪种协议在端到端延迟、会话启动时间方面提供了更好的结果
  • WebRTC

  • 哪一个消耗更多的硬件资源
  • 这个问题问得不对。应用程序的几乎任何其他部分的开销都将远远超过用于分发的协议的传输开销

    你需要考虑的事情的真实清单:

    • 客户端兼容性。你必须支持什么样的客户
    • 你真的需要低延迟吗?你明白你在这个需求上所做的权衡吗?如果只有一小部分用户是交互式的,你愿意破坏所有用户的视频质量和可靠性吗
    • 你的预算是多少?现成的分销解决方案要便宜得多。如果你能为非交互式用户将视频流推送到YouTube,你可以为自己节省大量的钱。如果您无法使用现有的基础设施,请准备好花费大量现金
    • 您的实际延迟要求是什么?当网络和移动设备无法满足这些延迟要求时,您是否准备减少可以使用您的应用程序的人数
    • 你们的质量要求是什么
    • 您将在何处将视频转码为各种比特率
    • 您的观众是否需要自适应比特率观看
    • 您是否需要同时将流推送到其他平台
    • 您是否需要录制流媒体以便按需观看或及时返回
    你可能会发现我在这里的帖子很有帮助:


    简而言之,检查你的假设。理解权衡。根据真实信息做出决策,而不是一概而论。

    谢谢你,布拉德!两点:(1)关于TCP:在视频会议中,传输音频的结束延迟应低于400ms。当丢失的数据包到达时很可能已经过时,TCP在重新传输丢失的数据包时有何意义?(2) 关于WebRTC:WebRTC是一种P2P协议,客户端直接相互通信。服务器仅用于建立所需的连接。因此,它不能扩大到一个大的受众范围,除非我认为你的观点是:强大的服务器是通信的一部分?
    根据真实信息做出决策,而不是一概而论。
    关于这个问题,我在寻找真实的信息,比如在相同条件下比较两个协议的基准测试结果。因此,您只需通过绝对数比较延迟等方面的性能。你的答案很详细,但不幸的是,它也没有包括“真实信息”。严格意义上说,WebRTC不一定是P2P。服务器可以是(而且经常是)这些“对等方”之一。关于TCP重传,当然,它们可能需要一些时间,但首先您需要真正弄清楚“低延迟”对您意味着什么,以及为了获得它您愿意做哪些权衡。几乎从来没有一件事是如此重要,以至于你愿意做出巨大的质量和关系