软件信息:
* ubuntu 16.04
* Nginx 1.15.1
所以最近我在nginx上研究了HLS stream的低延迟,在这里找到了一个解决方案:Reduce HLS latency from +30 seconds
这将减少延迟到~7秒,但然后我也想转码流和延迟,这并不是真的重要(我想要的是源是低延迟,但如果转码版本可以,那么它将是额外的),但当我这样做,源没有问题,但转码版本给出的问题,基本上浏览器脚本将尝试播放片段的早期版本,已经删除,所以它导致404错误。那么如何解决才能在源端达到~7秒的延迟,同时又能让转码版本正常工作呢?
我当前的配置:
FFMPEG转码
-c:v copy -preset:v ultrafast -b:v 6000K -c:a copy -tune zerolatency -f flv rtmp://localhost/stream/$name_source
-c:v libx264 -preset ultrafast -s 852x480 -tune fastdecode -b:v 1000K -c:a copy -tune zerolatency -f flv rtmp://localhost/stream/$name_medium
-c:v libx264 -preset ultrafast -s 1280x720 -tune fastdecode -b:v 3500K -c:a copy -tune zerolatency -f flv rtmp://localhost/stream/$name_high
-c:v libx264 -preset ultrafast -s 426x240 -b:v 400K -c:a copy -tune fastdecode -tune zerolatency -f flv rtmp://localhost/stream/$name_low
HLS:
hls_fragment 1s;
hls_playlist_length 4s;
hls_variant _source BANDWIDTH=600000;
hls_variant _high BANDWIDTH=350000;
hls_variant _medium BANDWIDTH=100000;
hls_variant _low BANDWIDTH=40000;
发布于 2019-06-03 10:04:57
当我将片段长度和播放列表长度设置为相同的时间时,我可以让它工作。
hls_fragment 2s;
hls_playlist_length 2s;
以上是您在转码时所能达到的最低值,它大约是5-6秒的延迟,而转码大约是13秒。
仍然不建议这样做,因为它可能会导致一些问题
https://stackoverflow.com/questions/56418856
复制相似问题