ffmpegでmp3やmp4のメタデータを編集する方法

ffmpegでメタデータ(タグ情報)を編集する方法

ffmpegを使ってmp3やmp4等のメタデータ(タグ情報)を編集する必要があったので、調べた下記の内容を備忘録としてまとめました。

  • テキストファイルを使用して編集する方法
  • ffmpegコマンドで直接編集する方法

メタデータの項目について

ffmpegで設定できるメタデータはとても数が多いので、自分が普段使用しそうなメタデータをまとめました。

  • album アルバム名
  • album_artist アルバムアーティスト名
  • artist アーティスト名
  • comment コメント
  • composer 作曲
  • copyright copyright
  • date 作成年
  • genre ジャンル
  • lyrics 作詞
  • title 曲名
  • track トラック番号/トータル

上記以外は、下記サイトを参考にしてみてください。

https://www.ffmpeg.org/doxygen/4.1/group__metadata__api.html#details

テキストファイルを使用して編集

テキストファイルを使用して、メタデータを編集する方法です。

作業は以下の手順で行っていきます。

  • メタデータをテキストファイルに出力
  • ファイルのメタデータを編集
  • テキストファイルを使用してメタデータを書き込み

メタデータをテキストファイルに出力

ffmpegを使ってメタデータの内容をファイルに出力します。

$ ffmpeg -i ファイル -f ffmetadata 出力ファイル

メタデータ出力例

実際の例です。

「宝島.mp3」のメタデータを「metadata.txt」に出力させます。

$ ffmpeg -i 宝島.mp3 -f ffmetadata metadata.txt

出力されたテキストファイルの内容を確認すると、アーティスト・アルバム・タイトル等のメタデータが設定されていることがわかりました。

$ cat metadata.txt 
;FFMETADATA1
track=7
artist=THE SQUARE
album=S・P・O・R・T・S
title=宝島
genre=Fusion
date=1986
encoder=Lavf58.76.100

メタデータの編集

出力したメタデータの内容を編集します。

$ vi metadata.txt

タイトルを「TAKARAJIMA」に変更します。

出力されたメタデータ情報以外の項目も追加することもできるので、composerの項目も追加してみます。

;FFMETADATA1
track=7
artist=THE SQUARE
album=S・P・O・R・T・S
title=TAKARAJIMA
composer=和泉宏隆
genre=Fusion
date=1986
encoder=Lavf58.76.100

テキストファイルを使用してメタデータ編集

下記のコマンドで、メタデータが記述されたテキストファイルを使ってメタデータを編集します。

コマンドを実行すると、編集前ファイルについては特に変更は行われずそのまま残り、メタデータは編集後ファイルの方に書き込まれます。

ffmpeg -i 編集前ファイル -i メタデータ.txt -map_metadata 1 -codec copy 編集後ファイル

メタデータ編集例

先程編集した「metadata.txt」を使用して、メタデータの編集を行っていきます。

$ ffmpeg -i 宝島.mp3 -i metadata.txt -map_metadata 1 -codec copy TAKARAJIMA.mp3

TAKARAJIMA.mp3がメタデータを編集されたファイルとなります。

メタデータを確認してみると、問題なく編集したデータが編集されていることがわかります。

$ ffmpeg -i TAKARAJIMA.mp3 -f ffmetadata TAKARAJIMA.txt
$ cat TAKARAJIMA.txt 
;FFMETADATA1
track=7
artist=THE SQUARE
album=S・P・O・R・T・S
title=TAKARAJIMA
composer=和泉宏隆
genre=Fusion
date=1986
encoder=Lavf58.76.100

ffmpeg コマンドで直接編集

ffmpegで直接メタデータを編集するには、「-metadata 項目="設定内容"」といったように編集したい内容を指定します。

ffmpeg -i 編集前ファイル -metadata title="タイトル名" -codec copy ファイルデータ

複数のメタデータを編集したい場合は、下記のように複数指定することができます。

ffmpeg -i 編集前ファイル \
-metadata title="タイトル名" \
-metadata album="アルバム名" \
-codec copy 編集後ファイル

編集実行例

m4aファイルのメタデータを編集してみます。

$ ffmpeg -i 中学生の基礎英語レベル2.m4a \
> -metadata title="中学生の基礎英語レベル2_20220208.m4a" \
> -metadata album="中学生の基礎英語レベル2" \
> -codec copy 中学生の基礎英語レベル2_20220208.m4a

titleとalbumのメタデータ情報を追加することができました。

$ ffmpeg -i 中学生の基礎英語レベル2_20220208.m4a -f ffmetadata English_level2.txt 
$ cat English_level2.txt 
;FFMETADATA1
major_brand=M4A 
minor_version=512
compatible_brands=M4A isomiso2
title=中学生の基礎英語レベル2_20220208.m4a
album=中学生の基礎英語レベル2
encoder=Lavf58.76.100

コメント

タイトルとURLをコピーしました