
我想一次對視訊檔案進行多項修改。
我需要在輸入影片中添加介紹和結尾影片片段。所以這意味著合併 3 個影片。我需要將覆蓋圖像添加到輸入視頻(第二段),僅此而已。我怎麼才能將它們合併到一行中?
我設法分兩步驟完成這些工作。首先是疊加層:
ffmpeg -i input.mkv -i image.png -filter_complex overlay=main_w-overlay_w-0:0 output_file.mkv
然後是合併:
ffmpeg -i intro.mp4 -i input.mkv -i outro.mp4 -filter_complex "[0:v:0][0:a:0][1:v:0][1:a:0][2:v:0][2:a:0]concat=n=3:v=1:a=1[video_out][audio_out]" -map "[video_out]" -map "[audio_out]" output_file.mkv
答案1
[v1]
我們可以對輸出使用臨時命名,overlay=main_w-overlay_w-0:0
然後用作過濾器[v1]
的輸入concat
:
ffmpeg -i intro.mp4 -i input.mkv -i outro.mp4 -i image.png -filter_complex "[1:v][3:v]overlay=main_w-overlay_w-0:0[v1];[0:v:0][0:a:0][v1][1:a:0][2:v:0][2:a:0]concat=n=3:v=1:a=1[video_out][audio_out]" -map "[video_out]" -map "[audio_out]" output_file.mkv
- 以下部分套用覆蓋階段:
[1:v][3:v]overlay=main_w-overlay_w-0:0[v1]
覆蓋的輸出取得臨時名稱[v1]
。 [0:v:0][0:a:0][v1][1:a:0][2:v:0][2:a:0]concat
用作( 而不是)[v1]
的輸入。concat
[1:v:0]