用于HD和正常质量的ffmpeg设置



你好,我需要在我的服务器上存储同一文件的两个版本,中等质量和高清质量,问题是我真的不太了解ffmpeg,所以我只是随机尝试这是代码,我使用下面的代码,但我最终得到了一个大得多的文件,无论它如何工作,它都会播放。

ffmpeg -i inputfile.wmv  -vcodec libx264 -ar 44100 -b 200 -ab 56 -crf 22 -s 360x288 -vpre medium -f flv tmp.flv

只需要两个命令来创建两个不同的文件

您需要提供更多信息,说明您的目标比特率、质量或目标文件大小,以及源材料的大小和质量,最好包括使用的编解码器和相关参数。

您应该阅读手册或ffmpeg -h,或同时阅读两者。您的命令行有几个问题:

  • 您正在使用恒定速率因子crf=22,同时仍然试图使用-b 200来限制比特率
  • 比特率是以比特/秒为单位指定的(除非您使用的是非常旧的ffmpeg),并且200 bps对任何事情都不可用,请添加k以获得千比特/秒
  • 您尚未指定音频编解码器,但已指定音频比特率,ffmpeg将尝试为您猜测音频编解码器但我不知道.flv文件的默认编解码器是什么

我假设您发布的命令行应该用于"中等"质量的文件。

你可以尝试的一些建议:

  1. 先试试这个:指定音频编解码器,例如-acodec libmp3lame,或者如果音频格式已经很好,您可以使用-acodec copy复制它而不进行修改
  2. 尝试不同的速率因子,例如-crf 30,更高的数字意味着更难看的图片质量,但也意味着更小的文件大小
  3. 尝试不同的编码器预设,例如-vpre slow。通常,较慢的预设会启用在编码时需要更多CPU周期的功能,但会带来更好的图像质量,请参阅x264 --fullhelp或本页,查看每个预设包含的内容
  4. 进行2遍编码,链接

如果您不想阅读ffmpeg的所有文档和所需的编解码器参数,我建议您查看此备忘单,尽管命令行开关在不同版本的ffmpeg之间发生了变化,因此示例可能不起作用。

命令行示例:

ffmpeg -i inputfile.wmv  -vcodec libx264 -crf 25 -s 360x288 -vpre veryslow -acodec libmp3lame -ar 44100 -ab 56k -f flv tmp.flv

参数-s [size]是输出视频的大小,以像素为单位,对于HD文件,您可能想要1280x720左右的大小,如果您的材质为5:4比例(360x288),则您将尝试1280x1024、960x768或900x720。不要设置比源材料大的大小,因为这只会提升视频的档次,你(可能)最终会得到一个更大的文件,而质量没有任何明显的提高。-ab参数是音频比特率,您可能也想在HD版本上增加此参数。

最新更新