如何使HLS直播具有低延迟和高质量



我用这段代码从mp4文件创建实时流:

ffmpeg -re -i input.mp4 
-c:a aac -c:v libx264 -s uhd2160 -f hls -hls_list_size 0 2160p/out.m3u8  
-c:a aac -c:v libx264 -s 2560x1440 -f hls -hls_list_size 0 1440p/out.m3u8  
-c:a aac -c:v libx264 -s hd1080 -f hls -hls_list_size 0 1080p/out.m3u8  
-c:a aac -c:v libx264 -s hd720 -f hls -hls_list_size 0 720p/out.m3u8  
-c:a aac -c:v libx264 -s hd480 -f hls -hls_list_size 0 480p/out.m3u8  
-c:a aac -c:v libx264 -s nhd  -f hls -hls_list_size 0 360p/out.m3u8 
-c:a aac -c:v libx264 -s cga  -f hls -hls_list_size 0 200p/out.m3u8

但是在流媒体时间中,存在非常延迟。
似乎,这种延迟存在于具有非常高质量的流媒体视频上,就像我将其用于直播的视频(4K)一样。
如何减少此延迟减少内存使用量

如何使HLS直播具有低延迟并具有良好的质量

你不能。

HLS本质上是分段的...以及相对较大的细分市场。 你越是试图减少,你的开销就越极端。 即便如此,不到 7 或 8 秒也是非常困难的。

您可以切换到面向低延迟的技术,例如WebRTC,但存在质量权衡。 通过低延迟,编解码器以这样一种方式进行优化,即它们有利于延迟而不是质量......质量受到影响。 我不知道"好质量"对你来说是什么,但你必须决定在你的应用程序中什么对你来说真正重要。

没有神奇的视频技术可以提供低延迟、卓越质量、高兼容性和易于扩展。 它根本不是那样工作的。 放弃它,考虑对你来说真正重要的事情,为你的方案选择正确的权衡,如果你需要帮助考虑正确的技术,请提出一个新问题。

最新更新