mp4から音声抽出バッチファイル

(追記)書き直した。上書きしないようになっている。古いのも下に残しておく。

@echo off
cd /d "%~dp0"
set APP=MP4Box.exe

if not exist "%APP%" (
    echo %APP% と同じフォルダにバッチファイルを置いてください。
) else if "%~1" == "" (
    echo ファイルがドロップされていません。
) else (
    setlocal enabledelayedexpansion
    for %%A in (%*) do (
        set OUT="%%~dpnA.m4a"
        if exist !OUT! (
            echo.
            echo !OUT! は既に存在します。
        ) else (
            "%APP%" -add %%A#audio !OUT!
        )
    )
    endlocal
)

pause
@echo off

cd %~d0%~p0
if exist "MP4Box.exe" goto cont

echo MP4Box.exeが見つかりません。
goto end

:cont
if exist %1 goto loop

echo ファイルがドロップされていません。
goto end

:loop
MP4Box.exe -add %1#audio -new "%~d1%~p1%~n1.m4a"
shift
if exist %1 goto loop

:end
pause

MP4Box.exeと同じフォルダに拡張子.batで保存し、そのファイルへ、
音声を抜き出したいmp4ファイル(複数可)をドラッグ&ドロップして使う。
続行するには云々と表示されたら完了。
対象mp4ファイルと同じフォルダにm4aファイルが出力される。
同名のm4aファイルがあると上書きされるので注意。

動機

以前はアニメのOP/EDなどをWMVでエンコードし、
別途出力したwavファイルは午後のこ〜だでmp3にしてPCやiPodで聴いていた。
が、H.264+AACエンコードするようになり、もはやAAC非対応プレイヤーのことを考える時代ではないとも思い、AACで保存することにした。
WMAiPodで聴けないので、動画から音声を抜き出す意味がなかったというわけ。

存在意義

AviUtlでH.264+AACにエンコしている人は、そのフォルダにバッチファイルを置くだけでいいというのがメリット。
「WAV出力」を選ぶ必要もなく、普通にmp4として出力し、それをドロップすればいい。
ニコニコ動画などのmp4にも使えるが、日頃エンコしない人は、
携帯動画変換君を使った方法などを調べた方がいいと思う(mp3の場合もあるし)。
(追記)flvからmp3抽出どうしよう - merom686の日記←flvについてはこちらを参照。