
我目前正在使用此問題中的命令來交叉淡入淡出兩個影片:
我的命令:
ffmpeg -i firstVideo.mp4 -i secondVideo.mp4 -f lavfi -i color=black - filter_complex \
"[0:v]format=pix_fmts=yuva420p,fade=t=out:st=4:d=1:alpha=1,setpts=PTS-STARTPTS[va0];\
[1:v]format=pix_fmts=yuva420p,fade=t=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+4/TB[va1];\
[2:v]scale=640x360,trim=duration=9[over];\
[over][va0]overlay[over1];\
[over1][va1]overlay=format=yuv420[outv]" \
-vcodec libx264 -map [outv] output.mp4
此交叉淡入淡出動畫效果很好,只是它將影片縮小到 480x360,而不是所需的 640x360。元資訊會錯誤地顯示尺寸為 640x360,但我確信它們不是。
我還確信兩個輸入影片的解析度都是 640x360。
我猜縮小是由於像素格式造成的yuva420p
,但我不確定我還有什麼其他選擇。我嘗試過更改像素格式,但到目前為止沒有任何效果。
上面給出的命令運行沒有任何錯誤。
答案1
使用
ffmpeg -i firstVideo.mp4 -i secondVideo.mp4 -f lavfi -i "color=black:s=640x360:d=9"
-filter_complex \
"[0:v]format=pix_fmts=yuva420p,fade=t=out:st=4:d=1:alpha=1,setpts=PTS-STARTPTS[va0];\
[1:v]format=pix_fmts=yuva420p,fade=t=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+4/TB[va1];\
[2:v][va0]overlay[over1];\
[over1][va1]overlay=format=yuv420[outv]" \
-vcodec libx264 -map [outv] output.mp4
除非另有說明,濾色片輸出 320x240 影片。比例過濾器試圖保留來源寬高比 - 在本例中為 4:3,因此視訊被編碼為 640x360,但顯示寬高比為 4:3,因此顯示為 480x360。