【问题标题】:ffmpeg decode h.264 stream latency one frame alwaysffmpeg 解码 h.264 流延迟总是一帧
【发布时间】:2017-04-19 21:35:14
【问题描述】:

现在我使用 x264 库来压缩视频(来自摄像头)并通过 TCP 传输到客户端。在客户端,使用ffmpeg库对Win32上的流进行解码。但我发现流解码总是延迟一帧。也就是说,如果客户端收到A,B,C三帧,在解码A帧时,无法得到图像。然后解码B帧,得到A帧图像。

对于 h.264 编码,我设置了 zerolatency - 超快 - 基线。所以我认为没有B帧。

对于 ffmpeg 解码器,我尝试将 thread_type = 0 设置为禁用帧缓冲解码。但是没有效率!顺便说一句,解码一帧后,将 NULL 传递给解码器以刷新解码器可以帮助这种情况。但我认为这不是一个好的解决方案。

那么如何设置ffmpeg库来避免一帧延迟呢?

【问题讨论】:

  • “没有效率”是什么意思?你的意思是解码太慢了?还是仍然存在一帧延迟?
  • 我想说“还有一帧延迟”。有什么建议吗?谢谢!
  • @rywang 嗨,我也有同样的问题。你解决了这个问题吗?谢谢!

标签: windows video ffmpeg h.264 low-latency


【解决方案1】:

如果您使用的是 av_parser_parse2,那么很有可能就是您的一帧延迟来自何处。如果您将代码发布在解码端,人们可能会更有能力提供帮助。

【讨论】:

    猜你喜欢
    • 2021-09-09
    • 2013-02-06
    • 1970-01-01
    • 1970-01-01
    • 2015-02-24
    • 2019-02-21
    • 1970-01-01
    • 2012-06-22
    • 2017-06-23
    相关资源
    最近更新 更多