我使用以下命令從照片創建了一些延時影片:
ffmpeg -i IMG_%03d.JPG -s 1440x1080 -sameq video.MP4
而且效果很好。現在我想加入幾個延時影片來製作一個更長的影片(所有輸入影片都具有完全相同的格式)。我已經嘗試使用:
cat video1.MP4 video2.MP4 > stitch.MP4
但輸出最終等於 video1.MP4
我不想轉碼也不想更改影片的任何參數,我只想進行端到端拼接,就好像這些影片位於播放清單上一樣。
謝謝!
答案1
使用最新版本的 ffmpeg,您可以使用 concat 解復用器。建立一個名為 input.txt 的文件,其中包含以下行:
file 'input1.mp4'
file 'input2.mp4'
file 'input3.mp4'
file 'input4.mp4'
使用 bash shell,您可以使用 for 循環來建立文件,如下所示:
rm inputs.txt
for f in input{1..4}.mp4; do echo "file '$f'" >> inputs.txt; done
然後,
ffmpeg -f concat -i inputs.txt -c copy output.mp4
既然使用了-c copy
,這將是完全無損的。
答案2
輸出不會等於 video1.mp4,但影片的頁首/頁尾將在 video1.mp4 周圍開始和結束,因此您的播放器不會進入 video2.mp4。假設視訊具有相同的位元率/編解碼器等:
cat video1.MP4 video2.MP4 | ffmpeg -y -i - -genpts -vcodec copy -acodec copy stitch.MP4
請記住,這不一定是最好的方法(最好在一個影片中同時進行所有時間間隔),就好像編解碼器有損一樣,您會導致發電損失。
答案3
我知道你用 ffmpeg 說過,但我很幸運地使用 mp4box 將檔案簡單地拼接在一起。你可以在這裡下載。
http://gpac.wp.mines-telecom.fr/mp4box/
這是命令列範例:
mp4box -cat <file> -cat <file> dest.mp4