使用 ffmpeg 合併 GoPro Hero 7 影像

這次為了去日本東京迪士尼,特地買了 GoPro Hero 7 Black 來錄遊行的畫面。

不過回來台灣以後,找了很久並沒有找到適合的視窗介面軟體可以不需要轉換檔案格式,直接將 GoPro Hero 7 所產生的 HEVC 影像檔進行合併,後來還是用 ffmpeg + script 來解決比較快,不但合併速度快,而且因為沒有進行轉檔,畫質完全沒有損失。最近腦容量越來越小,還是筆記一下,免得之後又要重新喚起記憶。

  • 下載 ffmpeg

從這兒 https://ffmpeg.org/download.html,找 static 或 shared 版本。下載完畢解開,我是放在 ~/bin 下

  • 寫個 shell script.
#!/bin/bash
if [ $# -lt 2 ]; then
    echo "$0 <Output_merge_file>> <video 1> <video 2> ... <video 10>"
    exit 0
fi

# 合併清單的檔名,我放在 $TMPDIR 目錄下的 gopro_list.txt
FILE_LIST=$TMPDIRgopro_list.txt
if [ -f $FILE_LIST ]; then
    rm $FILE_LIST
fi

OUTPUT_FILE=$1
# 產生合併檔案清單
IDX=0
for args in $@
do
# 第一個參數 $1 是合併後的檔名,無須產生到檔案清單中
    IDX=$((IDX+1))
    if [ $IDX -eq 1 ]; then
        continue
    fi

    echo "file $args" >> $FILE_LIST
done

# 指定 ffmpeg 指令位置
FFMPEG_CMD=~/bin/ffmpeg

# 開始合併
# -f concat 依序檔案清單指定檔名進行合併
# -i <filename> 指定合併檔案清單的檔名,每一行的格式為 "file <videoname>"
# -c copy 指定 video / audio codec 均直接複製即可,不要進行轉換格式
# 最後指定輸出檔名即可
$FFMPEG_CMD -f concat -i $FILE_LIST -c copy $OUTPUT_FILE

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料