【问题标题】:Real time video streaming to mobile browsers实时视频流到移动浏览器
【发布时间】:2018-04-29 10:15:54
【问题描述】:

我有一个网站,用户可以在其中向“聊天室”中的观众直播视频/音频流。目前我依靠 RTMP/HLS 并且正在使用 Wowza 媒体服务器。 我需要移动浏览器的低延迟选项。

RTMP 提供了启用闪存的功能,但 HLS 有 8-10 秒的延迟(已优化)。我可以实现 WebRTC,但任何 IOS 浏览器都不支持播放。

就协议/技术而言,我有哪些选择?

  • RTMP - 即将死去,只能通过插件使用
  • HLS(和其他 HTTP 协议)- 延迟过多

【问题讨论】:

    标签: webrtc live-streaming http-live-streaming wowza


    【解决方案1】:

    WebRTC 是目前超低延迟视频流的唯一可行选择。

    RTMP 虽然与 Flash 没有特别关联,但由于 Flash 插件和语言支持的消亡,它作为浏览器的传输协议已经过时了。

    像 HLS 和 MPEG-DASH 这样的分段协议本质上不适用于实时聊天应用程序,因为它们需要创建分段,而这总是不合理的视频时间。

    Android 和 iOS 原生支持 WebR: https://webrtc.org/native-code/android/ https://webrtc.org/native-code/ios/

    如果您不想编写原生应用程序,您可以通过 Cordova 使用纯 JavaScript 执行此操作:

    https://github.com/BasqueVoIPMafia/cordova-plugin-iosrtc

    【讨论】:

      【解决方案2】:

      HLS(和其他 HTTP 协议)- 延迟过多

      您的意思是 HLS 和其他分段协议。

      HTTP 不是问题,事实上您正在写出大约 4 秒的块。

      您可以使用 HTTP 渐进式,轻松将延迟降至 300 毫秒。

      我可以实现 WebRTC,但任何 IOS 浏览器都不支持播放。

      现在已经不是这样了。 Safari 11 支持 WebRTC,我怀疑所有其他 iOS 浏览器(由 Safari 网络视图支持)也支持,但我没有亲自测试过。

      【讨论】:

      • 我刚刚在 Safari 上测试了我的流。 Safari 11 确实支持 WebRTC,尽管它只支持 H.264 视频编解码器。到目前为止,Chrome (iOS) 上不支持 WebRTC。我已经确定我将依赖 WebRTC 并使用 RTMP 作为备份,如果用户不能使用其中任何一个,则使用 HLS。谢谢布拉德!你激励我做更多的研究。
      猜你喜欢
      • 1970-01-01
      • 2017-10-08
      • 1970-01-01
      • 2014-05-29
      • 2016-01-30
      • 1970-01-01
      • 2012-01-25
      • 1970-01-01
      • 2011-08-08
      相关资源
      最近更新 更多