ffmpeg - 减少 HLS 流式传输 FFMPEG 的延迟

标签 ffmpeg streaming video-streaming http-live-streaming

我通过 ffmpeg 使用了 hls 流。
在流式传输开始时存在几秒钟的延迟。
当我想在非常延迟的情况下从流中的 4k 视频中进行流式传输时。
我能做什么?

最佳答案

4k video



...

In start of streaming delay exists for few seconds



是的,当然可以。缓冲足够的数据以播放非常高的比特率需要时间。不仅如此,您的 HLS 播放器通常需要几个片段才能开始解码。正如@iangetz 所说,您可以减少段长度,但现在由于所有额外的 HTTP 请求,您将有更多的开销。

Reduce Latency For HLS Streaming



不要使用 HLS。 HLS 和任何其他分段流协议(protocol)(如 DASH)都针对低延迟进行了优化。它针对 HTTP CDN 的重用、可以在网络变化(例如当您从 WiFi 到 LTE 时)以及客户端可选(通常是动态的)质量方面进行了优化。

分段协议(protocol)的本质要求将相对较大的缓冲区分 block ,然后单独上传到服务器/CDN。这确实很有用,但如果您需要低延迟,这不是一个很好的折衷方案。

如果延迟对您很重要,您需要一种完全不同的技术。看看 WebRTC。使用这项技术,实时视频流,编解码器针对延迟而不是质量进行了优化,可靠性降低,有利于延迟。它还需要对配电基础设施进行大量投资。

我无法想象这样一种情况,即关心 4k 视频的人认为降低质量是值得为低延迟做出权衡的。你不可能拥有你想要的一切……你必须选择对你来说真正重要的东西并从那里优化。如果您想要低延迟,您将不得不降低质量并在基础设施上花费大量金钱和时间来支持这项工作。如果您想要高质量和可靠的流,您可以在使用 DASH(或 HLS)在现有的基于 HTTP 的 CDN 上分发的同时保持良好的编码参数。

关于ffmpeg - 减少 HLS 流式传输 FFMPEG 的延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43571220/

相关文章:

c# winforms显示ffmpeg输出

hadoop - 使用 “Add File”部分时,Hortonworks Hue Oozie流作业失败(shell脚本)

python - 如何将参数传递给 Hive 中的 Python 流脚本?

c++ - 需要知道如何通过读取 H265 视频向 vlc 发送 Rtp 数据包

video - ffmpeg 将 mp4 文件流式传输到 Instagram 直播

audio - 通过 ffmpeg 循环播放电影并与音频混合

android - 为什么我在使用 swresample 1.1 时得到 FPE?

streaming - zlib,如何解压缩压缩数据 block 流?

facebook - 在 Ubuntu 16.04 上使用 ffmpeg 从 Icecast 流式传输到 Facebook Live

ios - 下载 iOS 时流式传输视频