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
コメント