2006年03月10日

MP3ファイルの結合

うちのPC2号機(基本AVマシン)のオーディオカードのSPDIF/INには、スカパーチューナーの音声光デジタルアウトがつながっている。
これで毎週Stardigioの音楽をMP3にしてライブラリを増やしているのだ(昔風に言えばエアチェックですな)。

レコーディングソフトにはロック音MTを使い、曲間の無音部分で自動的に曲を切り分けて、MP3ファイルにエンコードしている。
ただ、たまに曲中に無音部分があると、1曲が2つのファイルに別れてしまうのでそういう時にはMP3の結合ソフトのお世話になる。
この場合、単純に結合したいだけなのでMP3のデコード/再エンコードをしないで結合してくれるソフトを使う。
今まではMPEG Scissorsというソフトを使っていた。古いソフトだがとにかく結合できれば良いので最初に見つけたやつを使っていたのだ。

今週久しぶりに曲中に無音部分があり2つに別れた曲ができたので、MPEG Scissorsで結合したのだが、結合したMP3ファイルをWinAmp5.2で再生したところ、少し動作がおかしい。
曲の残り時間表示やスライドバーが結合前のポイントのままなのだ。結合前のポイントでスライドバーは右端に達してしまい、残り時間は0になる。
実際はそこからも再生は続くがスライドバーは右端のままで、残り時間は経過時間表示に変わってしまう。

WinAmp5.2がどこを見て演奏時間を測っているのか判らないが、気持ち悪いのでWinAmpで正しく動作するMP3ファイルを作ってくれるソフトを探すことにした。条件としてはやはりMP3のエンコード/再エンコードをしないことである。

とりあえず検索してひっかかったAudioEditor, C_Vineなどを試したが、MPEG Scissorsと同じ結果。(まあC_Vineは単なるファイル結合ソフト("copy /B file1+file2"とやるのと一緒か?)らしいのでしょうがないが)
結局mp3directcutを使うことで解決した。
このソフトの場合、他のソフトのようにファイルを2つ選んで結合、とやるのではなく、1つめのファイルを開いて全範囲をコピーしてから2つめのファイルを開いて先頭にペースト、といった形を取る。
実際のところ使い方がちょっと違うだけで手間は一緒だ。

しかし、MP3ファイルって演奏時間(ファイル長)情報が入るようなヘッダとかはなかったと思うのだが…
WinAmp5.2が何を見ているのかは実はよく判っていない。

その後、原因が判明。
WinAmpではmp3のギャップレス再生を実現するために、mp3 infoヘッダ(昔はlame tagと呼ばれていたらしい)を見ていることが判明。
mp3 infoヘッダは曲名情報などが入るID3タグとは別物で、対応したエンコーダ(lameなど)はこのヘッダ情報で演奏時間情報などを付加し、デコーダはその情報を元にギャップレス再生を可能にする。
(mp3 infoヘッダには他にもエンコーダソフト名などいろいろな情報が入っている)

だからこのヘッダを更新せずに、単に結合するだけのソフトでは上手くいかない訳だ。
posted by kaishi at 01:10| Comment(2) | TrackBack(0) | computer
この記事へのコメント
2006年3月10日 「MP3ファイルの結合」が参考になりました。自分は「分割と結合」程度の簡単な操作しか利用できませんが、大変助かりました。ありがとうございました。
Posted by 碁老人 at 2009年12月09日 19:28
碁老人さん、こんばんは。
3年以上前に書いたこのエントリ、地味にコンスタントにアクセスがあります。
mp3を再エンコードすることなく、mp3 infoヘッダをきちんと処理してくれるソフトやそれに関する情報は2009年終わりの今になっても意外と少ないみたいです。
Posted by kaishi at 2009年12月17日 21:29
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/447200
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック