现在我使用x264库来压缩视频(来自摄像头)并通过TCP传输到客户端。在客户端,使用ffmpeg库解码Win32上的流。但我发现流解码总是延迟一帧。也就是说,如果客户端收到 A,B,C 三帧,则解码 A 帧时,无法获取图像。然后解码 B 帧,获取 A 帧图像。
对于h.264编码,我设置了zerolatency - ultrafast - baseline。所以我认为没有B帧。
对于ffmpeg解码器,我试图设置 thread_type = 0 来禁用帧缓冲解码。但效率不高!顺便说一句,在解码一帧之后,将 NULL 传递给解码器以刷新解码器可以帮助这种情况。但我认为这不是一个好的解决方案。
那么如何设置ffmpeg库以避免一帧延迟?
答案 0 :(得分:0)
如果您使用的是av_parser_parse2,那么很有可能就是一帧延迟的来源。如果您将代码发布到解码端,人们可能会更有帮助。