😸
【ffmpeg】フォルダ内の動画と音声を名前に対応させてマージを自動化
ゲームデータを抽出したときに、ムービーが動画と音声に分かれていたのでスクリプトで自動化しちゃいました。
〇〇_Video.mp4
と〇〇_Sound.ogg
をマージして〇〇.mp4
として出力します。
@echo on
setlocal enabledelayedexpansion
rem 現在のディレクトリを取得
set "dir=%cd%"
rem ディレクトリ内の全ての動画ファイルに対してループ
for %%v in ("%dir%\*_Video.mp4") do (
rem 動画ファイルのベース名を取得し、"_Video"を削除
set "base=%%~nv"
set "base=!base:_Video=!"
rem 対応する音声ファイルを探す
set "audioFile=%dir%\!base!_Sound.ogg"
if exist "!audioFile!" (
rem ffmpegコマンドを実行して結合
ffmpeg -i "%%v" -i "!audioFile!" -c:v copy -c:a copy -map 0:v:0 -map 1:a:0 -shortest "!base!.mp4"
echo 結合完了: !base!_output.mp4
) else (
echo 音声ファイルが見つかりません: !audioFile!
)
)
endlocal
Discussion