![ffmpeg:将任何视频转换为填充和缩放的 720p](https://linux22.com/image/1410391/ffmpeg%EF%BC%9A%E5%B0%86%E4%BB%BB%E4%BD%95%E8%A7%86%E9%A2%91%E8%BD%AC%E6%8D%A2%E4%B8%BA%E5%A1%AB%E5%85%85%E5%92%8C%E7%BC%A9%E6%94%BE%E7%9A%84%20720p.png)
我花了两个小时查看文档,但还是没能弄明白。
我目前正在编写一个脚本,现在我需要连接最多 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]
它时会导致错误。