ffmpeg:将任何视频转换为填充和缩放的 720p

ffmpeg:将任何视频转换为填充和缩放的 720p

我花了两个小时查看文档,但还是没能弄明白。

我目前正在编写一个脚本,现在我需要连接最多 10 个具有不同比例/帧速率/编解码器/大小等的视频。

我目前从事以下工作:

ffmpeg.exe -i part1.mp4 -i part2.mp4 -filter_complex \
"[0:v]pad=width=1280:height=720:color=black[v1]; \
 [1:v]scale=1280:720[v2]; \
 [v1][0:a][v2][1:a]concat=n=2:v=1:a=1[outv][outa]" \
-map "[outv]" -map "[outa]" -c:v libx264 -preset ultrafast -qp 0 output.mkv

这确实附加了视频,但不会放大第一个视频(其分辨率为 640x480,第二个视频为 720p)。我可以用 x 和 y 将其放在某个位置,但它不会扩展到全屏。

正如我已经问过的,这里还有另一个问题:

ffmpeg.exe -i part1.mp4 -i part3.mp4 -i part2.mp4 -filter_complex \
"movie=part1.mp4, scale=1280:720 [v1] ; \
 amovie=part1.mp4 [a1] ; \
 movie=part3.mp4, pad=width=1280:height=720:x=160:y=0:color=black, scale=1280:720 [v2] ; \
 amovie=part2.mp4 [a2] ; \
 movie=part2.mp4, scale=1280:720 [v3] ; \
 amovie=part2.mp4 [a3] ; \
 [v1] [v3] [v2] concat=n=3 [outv] ; \
 [a1] [a3] [a2] concat=n=3:v=0:a=1 [outa]" \
-map "[outv]" -map "[outa]" -c:v libx264 -preset ultrafast -qp 16 output.mp4

为什么我必须写concat=n=3:v=0:a=1 [outa]但只能concat=n=3 [outv]。当我也写concat=n=3 [outa]它时会导致错误。

相关内容