Encoding 为什么FFMPEG总是生成大的WebM文件?
我正在尝试将我的电影编码到WebM:Encoding 为什么FFMPEG总是生成大的WebM文件?,encoding,ffmpeg,webm,Encoding,Ffmpeg,Webm,我正在尝试将我的电影编码到WebM: ffmpeg -i input.MOV -codec:v libvpx -quality good -cpu-used 0 -b:v 10k -qmin 10 -qmax 42 -maxrate 10k -bufsize 20k -threads 8 -vf scale=-1:1080 -codec:a libvorbis -b:a 192k output.webm 我想以两种不同的比特率(视频和音频组合)进行编码: 2192kbps 1692kbps
ffmpeg -i input.MOV -codec:v libvpx -quality good -cpu-used 0 -b:v 10k
-qmin 10 -qmax 42 -maxrate 10k -bufsize 20k -threads 8 -vf scale=-1:1080
-codec:a libvorbis -b:a 192k
output.webm
我想以两种不同的比特率(视频和音频组合)进行编码:
- 2192kbps
- 1692kbps
- 1000 kbps
我做错了什么?
libvpx
在速率控制和质量设置方面有点复杂。有关更多信息,请参阅和。我花了一个小时钻研源代码来理解它
如果要设置恒定比特率,则必须将b:v
、maxrate
和minrate
设置为相同的值,例如这样(请注意,为了简洁起见,我省略了音频选项):
如果您想使用可变质量,只需指定比特率的上限,则需要同时设置b:v
和crf
。如果省略crf
,指定的比特率将仅作为平均值。只有使用crf
,编码器才会将b:v
的含义更改为最大允许速率
ffmpeg -i input.mov -c:v libvpx -b:v 1900K -crf 10 output.webm
CRF的值为10是一个良好的起点,但是
libvpx
可能会在qmin的范围内改变每帧的质量≤ Q≤ qmax
,如果需要,也可以指定它。为qmin
设置10的下限对我来说似乎有点高,但本质上你还是要做一些尝试和错误,因为如果最大比特率太低,你会不断使其饱和。非常感谢你的时间!:)正如您在第一个示例中所说的,忽略质量才是关键。现在它就像一个符咒。
ffmpeg -i input.mov -c:v libvpx -b:v 1900K -crf 10 output.webm