我希望达到最佳质量的FLV并且文件尺寸最小化,毕竟这不是每个人的目标吗?这些视频将进行流媒体传输,如果这有任何区别。
目前,我的视频宽度不超过320像素,有些是宽屏,因此高度略小于240像素。目前转换后FLV的质量相当差。
当前命令:
> ffmpeg -i video.mov -ar 22050 -ab 32 -f flv -s 320x240 -aspect 4:3 video.flv
我希望达到最佳质量的FLV并且文件尺寸最小化,毕竟这不是每个人的目标吗?这些视频将进行流媒体传输,如果这有任何区别。
目前,我的视频宽度不超过320像素,有些是宽屏,因此高度略小于240像素。目前转换后FLV的质量相当差。
当前命令:
> ffmpeg -i video.mov -ar 22050 -ab 32 -f flv -s 320x240 -aspect 4:3 video.flv
默认情况下,flv的默认值为200Kb,并且由于您没有覆盖qmax并将其设置为30,它可能会产生接近该值的输出。
在我刚试过的测试视频中,-qmax 10可以获得可接受的输出。使用qmax和qmin设置较低和较高的可接受质量是首选方法。
迄今为止,我并没有找到什么好的解决方案 - 多数选项对我的输入文件没有任何作用,而且始终产生质量很差的结果 - 但是以下方法非常有效:
ffmpeg -qscale 4 -i infile.avi outfile.flv
在Mac OS X 10.6.8上测试通过。
-qscale n
中的n
取值范围为1-31,其中1表示最高质量/最大文件大小,31表示最低质量/最小文件大小。
我认为最大化质量/大小比率的最佳解决方案是完全放弃FFMPEG的"flv"编码,改用H.264。
我通常使用Handbrake将文件转换为MP4 / AAC,然后只使用FFMPEG将文件重新封装到FLV容器中。
ffmpeg -i input_file.mp4 -vcodec copy -acodec copy -y output_file.flv
还有很多手刹参数,一些有趣的预设可以在这里找到:http://trac.handbrake.fr/wiki/BuiltInPresets
-c:v libx264
)并且使用-vcodec libx264
,就可以避免这种复杂的情况,并获得相同的结果。顺便说一下,我也建议在flv容器中使用h.264编解码器。 - James
-b
标志来调整视频比特率。默认值为 200。 - James