我将一组视频帧保存为目录中的图像,我正在尝试将这些视频帧编码为高质量的视频,但是我尝试的每个设置和每种格式都会产生非常明显的伪像。
基本命令是:
ffmpeg -r 25 -i %4d.png myvideo.mpg
我尝试了minrate和maxrate标志。任何{mpg,avi,mov,flv}格式都可以。
有关设置的任何建议吗?最终文件大小不是问题。
答案 0 :(得分:57)
有几件事:
您需要设置视频比特率。我从未使用过minrate和maxrate所以我不知道它们是如何工作的,但通过使用-b
开关设置比特率,我能够获得高质量的视频。你需要提出一个比特率,在压缩和视频质量之间提供良好的权衡。您可能需要对此进行试验,因为这完全取决于视频内容中的帧大小,帧速率和运动量。请记住,对于720x480,DVD平均大约为4-5 Mbit / s,所以我通常从那里开始并决定是否需要更多或更少,然后进行实验。例如,您可以将-b 5000k
添加到命令行以获得更多或更少的DVD视频比特率。
您需要指定视频编解码器。如果不这样做,ffmpeg将默认为MPEG-1,这是一个相当老的MPEG-1并不能提供接近MPEG-4或H.264的压缩量。如果您的ffmpeg版本是使用libx264支持构建的,则可以将-vcodec libx264
指定为命令行的一部分。否则-vcodec mpeg4
也会比MPEG-1做得更好,但不如x264好。
还有很多其他高级选项可帮助您以最低比特率挤出最佳质量。看看here的一些例子。
答案 1 :(得分:38)
您需要指定-vb选项以增加视频比特率,否则您将获得默认值,从而生成较小的视频但具有更多的工件。
尝试这样的事情:
ffmpeg -r 25 -i %4d.png -vb 20M myvideo.mpg
答案 2 :(得分:14)
在创建视频之前确保PNG完全不透明
e.g。使用imagemagick,给他们一个黑色背景:
convert 0.png -background black -flatten +matte 0_opaque.png
根据我的测试,如果您提供透明度为ffmpeg的PNG,那么没有比特率或编解码器就足以让视频看起来更好
答案 3 :(得分:0)
除非您进行某种后处理工作,否则视频永远不会比原始帧更好。就像翻书一样,如果你在关键帧之间有一个很大的“跳跃”,它看起来会很有趣。通常在关键帧之间需要足够的“补间”以提供平滑的动画。 HTH