bat+ffmpeg命令
有声视频+BGM(末尾淡出)
@echo off
set out_av=bp.mp4
::out_av为视频路径
::b.wav为
ffmpeg -i %out_av% -vn -acodec pcm_s16le -ar 44100 a.wav -y
::提取原视频声音
ffmpeg -i %out_av% -an -vcodec copy output_video.mp4 -y
::生成静音视频
ffmpeg -i a.wav -i b.wav -filter_complex "[0:a]adelay=0|0,volume=3[a];[1:a]adelay=$(ffprobe -i a.wav -show_entries format=duration -v quiet -of csv="p=0")|$(ffprobe -i b.wav -show_entries format=duration -v quiet -of csv="p=0")[b];[a][b]amix=inputs=2[aout]" -map "[aout]" -acodec pcm_s16le -ar 44100 -ac 2 output.wav -y
::背景音乐和视频声音合并,volume=3设置原声音量比例为3:1
setlocal
for /f "delims=" %%a in ('ffmpeg -i bp.mp4 2^>^&1 ^| findstr "Duration"') do (set "duration=%%a")
echo %duration%
::获取原视频声音时长或视频时长00:00:00.00
set time=%duration:~12,11%
set /a mn=%time:~3,2%
set /a ms=%time:~6,2%
set /a d=%mn%*60+%ms%-2
set in=output_video.mp4
set out=endout1.mp4
ffmpeg -i output.wav -ss 00:00:00 -t %time% -c copy c.wav -y
ffmpeg -i c.wav -filter_complex afade=t=out:st=%d%:d=2 end.wav -y
ffmpeg -i %in% -i end.wav -c:v copy -c:a aac -strict experimental %out% -y
del c.wav
del a.wav
del end.wav
del output.wav
del output_video.mp4
echo d%duration%f%format%,%time%,%d%
pause
无声视频+bgm(末尾淡出)
@echo off
set mv=b.mp4
set bgm=bgm.wav
::out_av为视频路径
::bgm为背景音乐
for /f "delims=" %%a in ('ffmpeg -i %mv% 2^>^&1 ^| findstr "Duration"') do (set "duration=%%a")
echo %duration%
::获取原视频声音时长或视频时长00:00:00.00
set time=%duration:~12,11%
set /a mn=%time:~3,2%
set /a ms=%time:~6,2%
set /a d=%mn%*60+%ms%-2
set out=endout1.mp4
ffmpeg -i %bgm% -ss 00:00:00 -t %time% -c copy c.wav -y
ffmpeg -i c.wav -filter_complex afade=t=out:st=%d%:d=2 end.wav -y
ffmpeg -i %mv% -i end.wav -c:v copy -c:a aac -strict experimental %out% -y
del c.wav
del end.wav
echo %duration%,%time%,%d%
pause
for 循环语法
@echo off
set "dirPath=D:\PYcharm\ANIMS\myself_anim\movie\end\use\123" ::文件夹路径
for /r "%dirPath%" %%i in (*.mp4) do (
echo %%i
)
pause