ffmpeg を使って動画にチャプターを追加する方法

2023.5、自分用メモ。元は 2022.8 に拾った情報

参考: ffmpeg で動画分割(とか) | site-hhs

元の動画ファイルを src.mp4、 抽出したメタデータを (編集のため) 一時保存するファイルを meta.txt、 最終的に合成する動画ファイルを dst.mp4、とする。

  1. まず、
    ffmpeg -i src.mp4 -f ffmetadata meta.txt
    
    などでメタデータをファイルに吐き出す。
  2. はきだしたメタデータを編集。たとえば
    ;FFMETADATA1
    major_brand=isom
    minor_version=512
    compatible_brands=isomiso2avc1mp41
    title=電撃ゲームライブ \#81 夏休みわくわくスペシャル放送【MC:中島由貴】ウルトラ怪獣モンスターファーム、地球防衛軍6、メガドライブミニ2
    artist=電撃オンライン
    date=2022
    comment=https://www.youtube.com/watch?v\=Vghpx4-HXKc
    encoder=Lavf59.5.100
    
    なんてなってるうしろに
    [CHAPTER]
    TIMEBASE=1/1
    START=0
    END=7750
    ;2:09:10 (2 * 3600 + 9 * 60 + 10 = 7750)
    
    [CHAPTER]
    TIMEBASE=1/1
    START=7750
    END=11645
    ;3:14:05 (3 * 3600 + 14 * 60 + 5 = 11645)
    TITLE=メガドライブミニ2 第4弾
    
    [CHAPTER]
    TIMEBASE=1/1
    START=11645
    END=12030
    ;3:20:30 (3 * 3600 + 20 * 60 + 30 = 12030)
    
    などのように追加する (「;」で始まる行はコメント)。 なお TIMEBASE は START や END で指定する数値の単位、1/1000 はミリ秒単位、1/1 は秒単位。
  3. 元の動画ファイルと、編集したメタデータを
    ffmpeg -i src.mp4 -i meta.txt -map_metadata 1 -c copy dst.mp4
    
    などとやって合成する。

戻る