Tech Racho エンジニアの「?」を「!」に。
  • インフラ
  • ライフ

FreeBSD/Linux 上で waveから mp3 を作成し、mp3 のタグを編集する

TechRacho をデーモン君だらけにしようとしている榊原です.

テープから wav にした,古い曲があったので,iPhone で聞けるようにしてみました.例によって,FreeBSD 上で全て行ないます.

wav → mp3 変換

テープから録画したデータは,wave でした.まずは,mp3 にしなければなりません.GOGO のこーだ,などもありますが,ffmpeg を選んでおくと,今後動画変換をしたくなった時にも便利です.ffmpeg の場合,LAME を利用します.昔から定評のある mp3 encoder ですね.

今回は,wav のファイル名が全て曲名になっていました.なので,mp3 というディレクトリを作成し,以下のようなコマンドで一括変換しました.

  % for HOGE in `ls *.wav`
    do 
    ffmpeg -i $HOGE mp3/`basename $HOGE .wav`.mp3 
    done

これで,mp3 ディレクトリの中に mp3 に変換されたファイルが入りますね.

ID3 タグを設定する

ここが一番面倒です.

ID3 タグ編集ツールの選定

mp3 の ID3 タグは,バージョンが ID3v1.1 から ID3v2.4 まで,様々存在します.さらに,文字コードに関する仕様が決まっているわけでもありません.なので,自分でどのバージョンを利用し,どの文字コードを選ぶのかを決定する必要があります.

僕は前述の通り,普段 iTunes を使って mp3 を作成しています.更に,普段利用のラップトップは,Windows なので,エクスプローラでちゃんとタイトルなどが見えることが大事です.

昔は,mp3info というコマンドが ID3 を編集するのに手頃なコマンドラインツールだったのですが,ID3v1.1 までしか対応していません.調べたところ,id3v2 というソフトウェアがあるようです.これは,v2.3 くらいまでのタグ編集が可能なツールのようです.いつもの通り,ports で入れます.

  % sudo portupgrade -N audio/id3v2 (注)

注:FreeBSD 9 くらいから,portupgrade ではなく,pkg コマンドが推奨されているので,pkg が利用できる人は,ちゃんとそちらを使って下さい.

文字コードの選定

前述の通り,ID3 タグには,仕様として文字コードが指定されていません.なので,UTF8|16|32 だろうと,ISO-2022-JP だろうと,EUC-JP だろうと,何を使っても構いません.が,自分が使っているソフトウェアが対応していなければ意味がないので,確認してみました.

まず,僕が所有している,iTunes で作成した既存の mp3 の結果は以下の通りです.ちなみに,東京事変の「秘密」という曲の mp3 です.

% id3v2 -l 01\ 秘密.mp3
id3v2 tag info for 01 秘密.mp3:
TT2 (Title/songname/content description): XF
TP1 (Lead performer(s)/Soloist(s)): q,
TCM (Composer):
TAL (Album/Movie/Show title): ':
TRK (Track number/Position in set): 1/11
TPA (Part of a set): 1/1
TYE (Year): 2006
TCO (Content type): Rock (17)
COM (Comments): (iTunPGAP)[eng]: 0
TEN (Encoded by): iTunes 10.5.2.11
COM (Comments): (iTunNORM)[eng]:  00001E1E 000014E7 0001122C 00009CCD 00023C3E 0002E1F5 00008CB0 00008B8D 0002FCE5 0002A27D
COM (Comments): (iTunSMPB)[eng]:  00000000 00000210 00000A14 00000000009C975C 00000000 00552B44 00000000 00000000 00000000 00000000 00000000 00000000
COM (Comments): (iTunes_CDDB_IDs)[eng]: 11++
UFI (Unique file identifier): http://www.cddb.com/id3/taginfo1.html, 56 bytes
01 秘密.mp3: No ID3v1 tag

…さっぱり読めません.調べてみると,UTF16 のようです.一応,この mp3のタグは,エクスプローラでも表示されています.

次に,エクスプローラで ID3 タグを直接書き込んでから,id3v2 タグと nkfを利用して文字コードを確認してみました.

% id3v2 -l test.mp3 | nkf --guess
Shift_JIS (LF)

…Shift JIS ですか…

一応,iTunes に読み込ませてみたら,表示できるようです.

んーーー.UTF16 か Shift JIS か…

僕は,コマンドラインなどで,nkf 併用程度でぱっと名前が確認できた方が嬉しいので,今回は Shift JIS を選択することにしました.

先ほど作成した,mp3 ディレクトリに移動して,以下のようなコマンドで一括登録しました.

  % for HOGE in `ls *.mp3`
  do
  id3v2 -a `echo "レベッカ" | nkf -s` -A `echo "レベッカベスト" | nkf -s` -t `basename $HOGE .mp3 | nkf -s` $HOGE
  done

オプションはそれぞれ,-a がアーティスト,-A がアルバム名,-t が曲名を設定するものになっています.テープからおこしているので,アルバム名なんて分かりません.なので,今回は適当に設定しています.

ここまでやって,iPhone に持っていってみたら,ばっちりタイトルなどが表示されました!ヤッタネ!

参考URL:
http://refuge06.blog54.fc2.com/blog-entry-634.html
細かく、ID3 について記述してあります。


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。