flvファイルから自動でaacを抽出
flvファイルから自動でaacを抽出
radikoをRADIKO RECORDERで録音しているが、容量や音質の点からflvのまま録音する設定にしている。
しかしflvのままだとFittleで聴けないので、FLV ExtractとAutoHotkeyを使って自動的にaacに変換するようにした。
;Auto-Execセクション SetTimer, Radiko, % -1000 * 60 Return Radiko: SourceDir := "C:\Radio" Loop, %SourceDir%\*.flv ;サブフォルダも含めたければ、「Loop, %SourceDir%\*.flv, , 1」とする { SplitPath, A_LoopFileFullPath, , , , NoExt IfNotExist, %SourceDir%\%NoExt%.aac { Run, ..\FLV_Extract\FLVExtractCL.exe -a "%A_LoopFileFullPath%", , , NewPID Process, WaitClose, %NewPID% FileDelete, %A_LoopFileFullPath% } } Return
SourceDirにRADIKO RECORDERで指定した録音ファイルの保存先フォルダを指定する。
タイマーはAutoHotkeyが起動してから1分後に1度だけ実行されるよう指定した。1度だけにしたのは、定期実行だと録音中にまで実行されてしまうから。
やってることは、以下のような流れになっている。
- 指定フォルダ直下からflvファイルを探す
- 同名のaacファイルが無ければ、FLV Extractでaacを抽出する
- FLV Extractが終了したら、元のflvファイルを削除する
AutoHotkeyのLoopには「拡張子を除いたファイル名」って組み込み変数がないから、SplitPathで面倒なことをしている。
AutoHotkeyというかAutoHotkey_Lなんだけど、バージョンが古いとRunのところでPIDを取得できず、抽出中に削除が実行されてしまうかもしれない。まぁFLV Extractの処理は超高速だから、それでも大丈夫だったりするかもしれないけど。
そもそもRADIKO RECORDERの段階でmp3形式で保存しておけば、こんなことする必要は無いんだけど。