ffmpeg:如何限制视频输出的比特率?

时间:2017-03-27 11:06:41

标签: video ffmpeg bitrate

要在绿屏前拍摄的2GB原始视频文件,我想添加Alpha通道。

我的问题是:输出文件对我来说太大了(大约是输入大小的20倍),而视频编辑器OpenShot似乎无法处理如此庞大的文件。比较输入和输出的文件属性在infiles中显示大约15k的比特率,在结果文件中显示150k-250k,这似乎可以找出问题所在。

(顺便说一句,我还想丢弃剪辑的第一部分及其音频通道,并在此过程中将帧速率从30 fps降低到24 fps,这一切都运行正常。)

这是我的命令:

ffmpeg.exe -i <in.MOV> -vf chromakey=0x007d06:0.15:0.0 -ss 40.420 -r 24 -b:v 15840k -maxrate 15840k -bufsize 15840k -an -c:v <encoder> <out.mov>

我理解的参数:

-i <in.mov> ... infile
-vf chromakey=0x007d06:0.15:0.0 ... chroma, tolerance & blend of greenscreens
-ss 40.420 ... skip before second 40.420 (this works)
-r 24 ... frame rate (this works, too)
-b:v 15804k ... bitrate (seemingly no effect)
-maxrate 15840k ... maximum BitRate (seemingly no effect)
-bufzise 15840k ... Buffer size (can't tell)
-an ... no audio channel (works fine)
-c:v <encoder> ... Video Encoder (ffvhuff, png, qtrle and tiff were tried, all to the same result)
<out.mov> ... outfile

b,maxrate和bufsize被描述为全局选项。无论采用何种设置,在此过程中都会报告高达3000000kbits / s(tiff)的比特率。

(我还添加了-pixel_format argb,但这也似乎被忽略了,ffmpeg总是报告写yuva420p。)

我错过了什么?

1 个答案:

答案 0 :(得分:1)

您尝试的所有编码器都是无损的。您无法为无损编码器设置比特率。

尝试使用像素格式为-c:v libvpx的{​​{1}}或libvpx-vp9 VP8 / 9。删除bitrate / maxrate / bufsize并设置-pix_fmt yuva420p,其中N的范围为0到63.尝试使用值20.向上/向下分别选择更小/更好的视频流。