†ぽんこつビデオ工房†
作成開始日 2022.05.26
最終更新日 2022.05.27
ffmpegでフォーマット変換なんて、ごく単純な作業で;
ffmpeg -i mymusic.で良さそうなものだが、実はこれでは少々問題が出る。パラメータが標準的なmp3データと異なってしまうのだ。標準的なmp3フォーマットにするには;m4a mymusic.mp3
ffmpeg -i mymusic.m4a -ar 44100 -ab 128k mymusic.mp3のように、サンプリングレートとビットレートを明示的に指定する必要がある。
サンプリングレートは、動画系が48000Hz、音楽系が44100Hzで、それぞれ標準が異なる。radikoのm4aはそもそもmpeg4動画の音声部分なので48000Hzである。現状、48000Hzのままmp3化しても大きな問題は起きていない。ただ、mp3標準の44100Hzに変換しておいた方が何かと安心だろう、程度のハナシ。
一方、ビットレートの問題はやや深刻。ビットレート指定なしでもffmpegは128kbpsで変換してくれるのだが、どうもこれが正常に認識されない場合があるようだ。たとえば、Win7のエクスプローラーでは、数%の表示誤差が出る。100分のm4aファイルをデフォルトでmp3に変換すると、2〜3分ほど長く表示される。と言っても、ファイルが延びたわけではなく、実際に再生すると正常値である100分のまま。エクスプローラーでの表示のみ、誤差が発生する。
あくまでも推測だが、エクスプローラーのこの現象は、mp3ファイルの長さをファイルサイズとビットレートから算出しているからではないかと−−いやいや、逆にファイルサイズと長さからビットレートを算出しているフシもある。ただ、mp3のタグ情報もバージョン依存で表示できない事があるようだし、エクスプローラー側にちょっと何かあるかな、的な感じがする。
また、同じくデフォルトのmp3変換ファイルを古いmp3プレイヤー(KENWOOD CR-A7USB)で再生すると、時間が一挙に倍に表示された。さらに、古いオーディオエディタで開いたら、同じく時間が2倍になっていて、ビットレートが64kbpsと表示された。つまり、ffmpegがデフォルトの128kbpsで変換するのは良いのだが、その情報がファイルに正常に書き込まれない、あるいは古い機器では正常に認識できない、と言う点に問題がある。こうした事態を防ぐために「-ab」でビットレートを明示的に指定する必要がある。