radikaで録音したFLVをm4aへ変換する設定
ネットを見てると、radikoのストリームリッパー&視聴ソフトであるradika(http://koukaijo.seesaa.net/)において取得したFLVコンテナのHE-AAC音声の変換で何人か詰まってる奴がいるのでメモ書いとく。とりあえず、無劣化での FLV HE-AAC→m4a HE-AACへの変換について書いておきます。
流れとしては、FLV→AACを抽出→SBRを付加したm4aとして再コンテナ化 というものです。
材料
- FLVExtract(http://moitah.net/)
- mp4box(http://www.videohelp.com/tools/mp4box)
レシピ
1.FLVextractCL.exeとmp4box.exeが、radika.exeと同じディレクトリになるような位置へ解凍&フォルダ構成そのままに配置する。
2.以下のようなバッチを書く
FLVExtractCL.exe -a %1 mp4box -sbr -add "%~dpn1.aac" "%~dpn1.m4a" del "%~dpn1.aac"
以下をconv.batとしてradika.exeと同じディレクトリへ保存。
3.このバッチに対してradika側の設定画面で以下のように設定する
録音終了時コマンド項目で ファイル:<convert.batまでのフルパス> 引数:"@FIL"
@FILをダブルクォーテーションで囲むことにより、ファイル名に半角スペースが入っていたとしても対応出来るようになるはず。
また、あえてm4aまで中間ファイルを置いてでも変換する理由は、aacコンテナに入ったHE-AACをシークできないプレイヤー(例:foobar2000)でもシーク出来るようにするため。
応用例
MP3を出力するバッチ
FLVExtractCL.exe -a %1 mp4box -sbr -add "%~dpn1.aac" "%~dpn1.m4a" ffmpeg -y -i "%dpn1.m4a" -ab 128k -ar 44100 "%~dpn1.mp3" del "%~dpn1.m4a" del "%~dpn1.aac"
とか書けばいいんでねえのかな。ffmpegのオプションは適当で、自分自身使わないので、一応上記の設定で44.1KHz 128kbpsのMP3になるはず。間違ってたら適当に直すといいよ。
もしかしたら直接aacファイルを読み込んでもいけるかもしれないけど、SBR部分の扱いがどうなるかわからんので、明示的にSBRがあることを示せるm4aコンテナでffmpegに投げるバッチに作ってある。
mencoderでも同じことできるとおもうけど、LAMEではLPCM入力でないといけないため、そのまま上記のようにバッチで投げれない。faadとのパイプでファイルを渡さないといけなかったりして、かえって下準備が面倒だと思います。
# 2010-05-01 radikaのリンク先URLが間違っていました。修正します。