【问题标题】:RTP livestream to browser using FFMPEG/nginx使用 FFMPEG/nginx 将 RTP 直播到浏览器
【发布时间】:2020-04-21 14:58:37
【问题描述】:

我有一个流转码器,可以将高带宽光纤流转换为多播 RTP 流。我希望能够在浏览器中将此流显示给客户端。如果我理解正确,有两个问题:

  1. 客户端很可能不支持通过其网络进行多播
  2. RTP无法在浏览器中播放,需要转换成其他格式

到目前为止我做了什么(使用 FFMPEG):

方法1:将流复制到.m3u8而不进行复用,然后使用Web服务器(Nginx)托管它 ffmpeg -protocol_whitelist file,udp,rtp -i ./stream.sdp -c:v copy -c:a copy -bufsize 50k -flags -global_header -hls_time 1 -f hls -hls_playlist_type event -hls_list_size 3 ./video/stream.m3u8

方法二:在Nginx上开启HLS,将流转为RTMP ffmpeg -protocol_whitelist file,udp,rtp -i ./stream.sdp -vcodec libx264 -vprofile baseline -acodec aac -strict -2 -f flv rtmp://localhost/show/stream

这两种方法都会产生有效的直播,但延迟保持在 5 秒左右。

有什么方法可以让直播更快?多播直播的最大延迟约为 1 秒。

【问题讨论】:

    标签: nginx ffmpeg live-streaming


    【解决方案1】:

    Both of these methods result in a working livestream, but the delay remains around 5 seconds.

    这实际上对 HLS 非常有用。是的,有一些方法可以让 Luke WebRTC 和 CTE 变得更快。但没有标准,您必须自己开发播放器和大量基础设施。

    【讨论】:

      猜你喜欢
      • 2014-06-14
      • 1970-01-01
      • 1970-01-01
      • 2018-10-07
      • 1970-01-01
      • 2011-07-26
      • 2019-02-11
      • 2017-07-12
      • 2017-09-21
      相关资源
      最近更新 更多