FFmpegを使ってMP4ファイルから音声(WAVファイル)を取り出したい!
概要
FFmpegを使ってMP4ファイルから音声(WAVファイル)を出力する例を示す。
仕様書
batファイルに変換したいMP4、または、MP4が保管されたディレクトリをドラッグ・アンド・ドロップするとMP4ファイルから音声(WAVファイル)を出力される。
出力するWAVファイルはチャンネル数2、PCM24bit。
環境
- Windows 10 Home Version 21H1(OS ビルド 19043.1415)
- FFmpeg 4.2
手順書
下記は、引数で渡されたファイルをMP4ファイルから音声(WAVファイル)を出力するサンプルです。
@echo off
:loop
if "%~1" == "" goto end
set attr=%~a1
if exist %~1 (
if %attr:~0,1%==d (
for /r %~1 %%f in (*.mp4) do (
call:mp4tomp4towav "%%f"
)
) else if %attr:~0,1%==- call:mp4towav "%~1"
)
shift
goto loop
:end
pause
exit /b
:mp4towav
ffmpeg -y -i %1 -map 0:1 -vn -ac 2 -acodec pcm_s24le -f wav%~n1.wav
exit /b
上記のBatchファイルを実行する前にffmpeg.exe
があるディレクトリにパスを通しておく。もしくは、Batchファイル内のffmpeg
コマンドをフルパスで入力しておく。
作ったbatファイルに変換したいMP4ファイルをまとめてドラッグ・アンド・ドロップすると処理が逐一開始される。
解説
ffmpeg
コマンドのオプションについて簡単に解説する。
-map 0:1
は出力するwavファイルの入力ファイルのストリームの番号を設定する。一般的なMP4は1つの映像と1つの映像を含んでいるのでだいたいの場合は-map 0:1
で良い。複数の音声のストリームを含むMP4の場合は、wavファイルにしたいストリームの番号を設定する。
-vn
は出力するファイルに映像を含めなくする。
-ac 2
は出力するwavファイルのチャンネル数を設定する。
-acodec pcm_s24le
は出力するwavファイルのコーデックを設定する。pcm_s24le
はPCM24bit、pcm_s16le
を設定するとPCM16bitになる。
まとめ(感想文)
撮影した動画の音声だけを使いたいとか、音声だけ別のアプリケーションで編集したい時に便利かもね!