ffmpeg总是解码h.264流延迟一帧

时间:2016-12-05 13:16:23

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

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

对于h.264编码,我设置了zerolatency - ultrafast - baseline。所以我认为没有B帧。

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

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

1 个答案:

答案 0 :(得分:0)

如果您使用的是av_parser_parse2,那么很有可能就是一帧延迟的来源。如果您将代码发布到解码端,人们可能会更有帮助。