3

您好,我需要在我的服务器上存储同一个文件的两个版本,中等质量和高清质量,问题是我不太了解 ffmpeg,所以我只是随机尝试这是代码,我正在使用代码 belo但我最终得到了一个更大的文件,但是它可以工作,它可以播放。

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

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

4

1 回答 1

4

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

您应该阅读手册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 版本上增加此参数。

于 2012-11-13T14:24:47.317 回答