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

问题描述 投票:0回答:1

我正在一个时间推移程序,通过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秒标记后看到非常糟糕的帧。

知道我做错了什么吗?

video ffmpeg
1个回答
3
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.