用 FFmpeg 把多個影片接在一起

工具需求:FFmpeg

實作流程

1. 建立文字檔

先建立要合併的影片文字檔,裡面要按照要合併的順序,而且每行一定要有 file 開頭:

file '1.mp4'
file '2.mov'

我把這個檔案叫做 inputs.txt

2. 執行 FFmpeg 指令合併影片

在終端機執行:

ffmpeg -f concat -safe 0 -i "inputs.txt" -c copy "output.mp4"

就可以成功輸出合併的影片檔,檔名為 output.mp4

寫成方便執行的 Function

如果想要更方便,可以在 .zshrc 設定檔縮寫成函數:

join-video() {
  ffmpeg -f concat -safe 0 -i "$1" -c copy "$2"
}

之後就可以只輸入:

join-video "inputs.txt" "output.mp4"

可以改進的地方

雖然已經可以用了,但是懶人如我,這流程還是太麻煩了。例如:

  • 還要自己寫一個 .txt
  • .txt 檔還要寫 file ''
  • 還要自己寫輸出的檔名

所以後來用 fzf 工具寫了一個更方便的流程,不過這是下一篇文章了。

較新一篇 把一百個 Markdown 的 tags 拿掉
較舊一篇 把專輯數字前綴拿掉