2020年8月15日土曜日

PC 音楽ファイルのタグは ffmpeg でも入れられる

ふとした事から、ffmpeg で metadata 所謂 タグ が入れられる事を知りました。
これって、音楽ファイルのタグでも使える?。
結果は、
使えますが、 既存タグがあるものの修正には止めて置いた方が良さげ ... 。


音楽ファイル、これから書くのは、.wma 形式のファイルの事です。
.mp3 の記事は多いのですが、 .wma となると少数派かも知れません。
以前、 .wma タグ は正式準拠していないアプリも多い と書きました。
最近、調べていないので、その後の変化は分かりませんが、
タグ入力は結構な作業量です。


音楽取り込み時に、面倒でも、済ます様にしているのですが、
忘却の彼方にある大昔のフォルダに、殆どタグの無いものを発見したのです。
そこで、 ffmpeg でタグをハンドリング出来る事を思い出し、
早速、トライ!です。


上書きで直接には直せないので、一旦、事前に、別フォルダ Album_Origin に全曲を移動させています。
全作業終了後には、コピーされ、これらは不要となりますので、フォルダ削除します。
尚、ffmpeg では、無いフォルダにアクセスするとエラーを吐く様ですので、無いのなら、事前に作って置きます。
それでは、
一曲一曲毎に以下のコマンドを実行して行きましょう。
実際には、ffmpeg.exe の在るフォルダに cd するか、パスを書き加えて実行して下さいね。
あっ、そうそう。  以下の例示は Windows 環境 cmd.exe 上で実行 です。

構文はこんな感じです。

ffmpeg -i "C:¥Users¥UserA¥Music¥Musician¥Album_Origin¥01 Song1.wma" ^
-metadata album="Album" ^
-metadata album_artist="Musician" ^
-metadata genre="Jazz" ^
-metadata WM/Year=2020 ^
-metadata track=1 ^
-metadata title="Song1" ^
-metadata artist="Players; Pianist; Bassist; Drummer" ^
-metadata composer="Composer; Lyricist" ^
-c copy "C:¥Users¥UserA¥Music¥Musician¥Album¥01 Song1.wma"

2行目から9行目がメタデータで、
そのうち、
2行目から5行目は アルバム情報 で、
6行目から9行目が 曲情報 です。
WM/Year と track は整数(Integer)、それ以外は文字列ですね。
全て文字列でも、OK かも知れません。

自前のプログラムでの実行結果を添付します。  タグの表示順序は異なります。
公開用に各種項目を(ファイル名以外)上の通り として見ました。

   例示はしませんが、Explorer の File Property でも、同様に表示されています。




結果。
一見、何の問題も無く見えますが、
タグの一部が重複登録されている様で、(ffmpeg ver. 4.2)
本来、重複しない前提で書いてあった自作プログラムはエラーを吐きました。
タグ取得で、タグ名をキーに取るロジックが、重複が原因で、悲鳴を上げたのです。
このロジックを直して、再度見ると、一応、主要全項目が見られる(入っている)様です。  上図参照。

実は、通常の取り込みでは、
これ以外にも、表示され無い多くのタグがある筈ですが、
其処は 例示での ご愛敬! とさせて戴きましょう。  入れるの面倒ですし。
入力するタグは、上の例で示した 8項目 があれば、普通は十分でしょうから。

 8項目 (コマンド上で、上から順に)
  アルバム名
  アルバムアーティスト
  ジャンル
  公開年
  曲 トラック番号
  曲 タイトル
  曲 参加ミュージシャン
  曲 作曲家(含む作詞家)
             注: 最後の2項目 複数人の場合、; で区切る事

重複の件を書きましたが、
この事からも、既存タグの修正に使うのは、怖いです。
タグの無いものなら、少しは、安心して使えますが。


それにしても、
やはり、面倒である事に変わりは ... ありませんねぇ~。



0 件のコメント:

コメントを投稿