FFmpegのメディア合成
静止画と音声の合成(複数フォルダ対応)
静止画ファイルと音声ファイルを合成して動画を作成する方法です。
なお、事前に映像と音声の長さを同じにしておく必要があります。
@echo off
setlocal enabledelayedexpansion
for /d /r "ターゲットフォルダのパス" %%d in (*) do (
set "firstFile="
set "output=%%d\output.mp4"
for %%a in ("%%d\*.*") do (
if "!firstFile!"=="" (
set "firstFile=%%a"
) else (
"C:\Portable\command\ffmpeg\ffmpeg.exe" -f image2 -r 1 -loop 1 -t 映像の再生時間(秒数または00:00:00) -i "!firstFile!" -i "%%a" -c:a copy "!output!"
set "firstFile=!output!"
)
)
for %%f in ("%%d\*.*") do (
if /i not "%%~nxf"=="output.mp4" (
del "%%f"
)
)
)
映像と音声の合成(複数フォルダ対応)
映像ファイルと音声ファイルを合成して動画を作成する方法です。
なお、事前に映像と音声の長さを同じにしておく必要があります。
@echo off
setlocal enabledelayedexpansion
for /d /r "ターゲットフォルダのパス" %%d in (*) do (
set "videoFile="
set "audioFile="
set "output=%%d\output.mp4"
for %%a in ("%%d\*.*") do (
if /i "%%~xa"==".mp4" set "videoFile=%%a"
if /i "%%~xa"==".avi" set "videoFile=%%a"
if /i "%%~xa"==".mp3" set "audioFile=%%a"
if /i "%%~xa"==".wav" set "audioFile=%%a"
)
if defined videoFile if defined audioFile (
"ffmpeg.exeのパス" -i "!videoFile!" -i "!audioFile!" -c:v copy -c:a aac -shortest "!output!"
if exist "!videoFile!" del "!videoFile!"
if exist "!audioFile!" del "!audioFile!"
)
)