FFMPEG忽略比特率。

11

我对视频编码很新,所以请原谅我的不懂。

我正在使用FFMPEG。我有一个MP4文件,大小为80MB,分辨率是640 x 350,平均比特率约为2000kb(我想)。我想将其转换为具有更低比特率(128kb)但相同宽度和高度的OGV文件。我正在使用以下命令...

ffmpeg -i input.mp4 -b:v 128k output.ogv

... 但是FFMPEG似乎忽略了我的比特率选项,输出的文件比特率大约为600kb,文件大小约为3Mb。

我可以使用FFMPEG2THEORA来执行此操作,使用以下命令...

ffmpeg2theora -V 128 input.mp4 -o output.ogv

...但我想知道是否可以使用FFMPEG实现。

有什么想法吗?

编辑

mark4o解决了我的问题。原来默认的音频编解码器会增加文件大小。将其更改为libvorbis后,文件大小大大减小。最终命令如下:

ffmpeg -i input.mp4 -b:v 128k -b:a 128k -codec:a libvorbis output128.ogv
  • -i = 输入文件
  • -b:v = 视频流的比特率
  • -b:a = 音频流的比特率
  • -codec:a = 覆盖默认音频编解码器

2
你缺少非工作命令的完整ffmpeg控制台输出。它可能提供一些有用的信息,并且始终是尝试重现问题的第一步。 - llogan
1个回答

5

-b:v只影响视频比特率。由于某种原因,ffmpeg默认使用flac音频编解码器来输出.ogv格式的文件(至少在某些版本中)。在这种情况下,flac音频的大小甚至会比您的视频还要大。

假设您想要使用vorbis音频,请在输出文件名之前使用选项-codec:a libvorbis(或者在某些版本中使用-acodec libvorbis)来指定此选项。您可能还想为音频指定比特率,例如-b:a 32k(或者-ba 32k)。如果您希望比特率为128kbps,请指定音频和视频比特率,使它们加起来总共为128k(如果您想补偿ogg容器的开销,则可以略微减少一些)。


就是这样了。可能是音频编解码器导致文件大小增加。我将编解码器更改为libvorbis,文件大小大幅下降。请参考更新后的问题中的最终命令。 - Kevin Brydon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接