使用VP8进行ffmpeg编码会产生糟糕的视频

时间:2017-12-25 02:41:34

标签: video ffmpeg

我正在一个时间推移程序中工作,该程序通过system()调用ffmpeg来编码来自JPG序列的视频。用户可以选择一些选项,包括压缩编解码器。 使用libx264和mjpeg编码器时,我得到了非常好的结果。我用VP9得到了如此结果,而且我在VP8上得到了一些可怕的结果。

我正在调用ffmpeg:ffmpeg.exe -framerate 12 -i" ./ output / img_%05d.jpg" -dst_range 1 -color_range 2 -c:v libvpx -b:v 0 -threads 8-speed 2 -crf 8" ./ output / video.webm"

我上传了一个示例到youtube:https://www.youtube.com/watch?v=eG2jxzR3Uxs(你可以在9秒标记后看到非常糟糕的帧。

知道我做错了吗?

1 个答案:

答案 0 :(得分:3)

即使使用CRF(另请参阅libvpx wiki),仍建议您使用2遍编码以获得最佳效果。 1-pass(这是你在这里使用的)通常会给libvpx带来非常糟糕的结果。我知道这不典型,CRF不应该受到多遍影响,但遗憾的是libvpx在这方面有点“不同”。其他编码器可以在1通CRF下正常工作。

另请注意,即使CRF索引相同,您也不一定要选择相同的有效量化器或接近相同的比特率。因此,如果一个编码器或代码在没有考虑有效比特率的情况下提供比另一个编码器或代码更好的结果这一事实本身并不是非常有用,您通常会将质量分析为比特率的函数。

使用VBR可以稍微改善一下,但即便如此,如果速率控制/目标效果不佳,实际比特率可能与目标比特率相差很远,因此您仍然需要查看实际比特率,而不仅仅是目标比特率