radikaで録音したFLVをm4aへ変換する設定

 ネットを見てると、radikoのストリームリッパー&視聴ソフトであるradika(http://koukaijo.seesaa.net/)において取得したFLVコンテナのHE-AAC音声の変換で何人か詰まってる奴がいるのでメモ書いとく。とりあえず、無劣化での FLV HE-AAC→m4a HE-AACへの変換について書いておきます。
 流れとしては、FLV→AACを抽出→SBRを付加したm4aとして再コンテナ化 というものです。

材料

  1. FLVExtract(http://moitah.net/
  2. 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が間違っていました。修正します。