我需要批量处理一堆视频以将它们的高度缩放到 240,同时保持纵横比不变。几乎完成工作的命令是:
$ avconv -threads 4 -ss 0.0 -i input.avi \
-map 0:0,0:0 -map 0:1,0:1 -vf "scale=-1:240" -y -f mpegts \
-async -1 -vcodec libx264 -vcodec libx264 -flags2 +fast \
-flags +loop -g 30 -bufsize 1024k \
-b 200k -bt 220k -qmax 48 -qmin 2 -r 20 -acodec libmp3lame \
-ab 44k -ar 44100 -ac 2 output.ts
如您所见,有趣的部分是-vf "scale=-1:240"
这适用于缩放输出宽度为偶数的视频。否则,我会收到以下错误消息:
[libx264 @ 0x7fc4f8821e00] width not divisible by 2 (341x240)
我该如何克服呢?
编辑:根据此链接,我尝试使用-vf "scale=trunc(oh/a/2)*2:240"
which 输出电影,但生成的视频质量真的很差。
编辑#2:这不是重复的,因为它被错误地标记了。这个问题比另一个问题更早发布。