我有一个流式转码器,它将高带宽光纤流转换为多播RTP流。我希望能够在浏览器中将此流显示给客户端。如果我理解正确,有2个问题:
我到目前为止所做的(使用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
方法2:在Nginx上启用HLS并将流转换为RTMPffmpeg -protocol_whitelist file,udp,rtp -i ./stream.sdp -vcodec libx264 -vprofile baseline -acodec aac -strict -2 -f flv rtmp://localhost/show/stream
这两种方法都可以正常播放直播,但延迟仍然保持在5秒左右。
有什么方法可以使直播速度更快?多点广播直播流最大延迟约1秒。
Both of these methods result in a working livestream, but the delay remains around 5 seconds.
对于HLS,这实际上真的很不错。是的,有一些方法可以使Luke WebRTC和CTE更快。但是没有什么标准,您必须自己开发播放器和大量基础结构。