ffmpeg 批量添加背景音乐的代码 优化后
- @echo off
- title 批量混合有声书与背景音乐
-
- :: 设置背景音乐文件路径
- set background_music=bj.mp3
-
- :: 遍历 ./book 文件夹中的所有 MP3 文件
- for %%f in (.\book\*.mp3) do (
- echo 正在处理 %%f...
-
- :: 使用 FFmpeg 混合背景音乐和有声书音频
- ffmpeg -i "%%f" -i "%background_music%" -filter_complex "[0:a][1:a]amix=inputs=2:duration=first:dropout_transition=3" -b:a 128k "%%~nf_with_background.mp3"
-
- echo %%f 已处理完毕,输出为 %%~nf_with_background.mp3
- )
-
- echo 所有文件已处理完毕!
- pause
这是个bat命令!
- @echo off
- title 批量混合有声书与背景音乐
-
- set "background_music=背景音乐.mp3"
- set "output_dir=已合成"
-
- if not exist "%output_dir%" mkdir "%output_dir%"
-
- for %%f in (.\已加头尾待合成\*.mp3) do (
- echo 正在处理 %%f...
-
- ffmpeg -i "%%f" -i "%background_music%" -filter_complex "[0:a][1:a]amix=inputs=2:duration=first:dropout_transition=3" -b:a 128k "%output_dir%\%%~nf_听书.mp3"
-
- if !errorlevel! neq 0 (
- echo 错误: %%f 处理失败!
- ) else (
- echo %%f 已处理完毕,输出为 "%output_dir%\%%~nf_听书.mp3"
- )
- )
-
- echo 所有文件已处理完毕!
- pause
-
-
- 更新后的脚本命令!生成的音频会保存到“已合成”文件夹 更方便
- @echo off
- setlocal EnableDelayedExpansion
-
- set "sample_rate=24000"
- set "channels=1"
- set "bitrate=48k"
- set "silence_dir=静音文件"
-
- if not exist "%silence_dir%" mkdir "%silence_dir%"
-
- :: 创建静音文件
- echo 正在创建3秒静音文件...
- ffmpeg -f lavfi -i "aevalsrc=0:d=3" -ar %sample_rate% -ac %channels% -ab %bitrate% -c:a libmp3lame -y "%silence_dir%\silence_3s.mp3"
-
- echo 正在创建5秒静音文件...
- ffmpeg -f lavfi -i "aevalsrc=0:d=5" -ar %sample_rate% -ac %channels% -ab %bitrate% -c:a libmp3lame -y "%silence_dir%\silence_5s.mp3"
-
- if !errorlevel! neq 0 (
- echo 错误:静音文件创建失败!
- ) else (
- echo 静音文件已成功创建在 "%silence_dir%" 目录下。
- )
-
- endlocal
- pause
这是增加了对有声书mp3添加头尾,前3秒无声和后5秒无声,曲尾建议用格式工厂批量淡出更合适,提升听感!下面是生成无声音频的bat命令!
- @echo off
- setlocal EnableDelayedExpansion
-
- set "sample_rate=24000"
- set "channels=1"
- set "bitrate=48k"
- set "silence_dir=静音文件"
-
- if not exist "%silence_dir%" mkdir "%silence_dir%"
-
- :: 创建静音文件
- echo 正在创建3秒静音文件...
- ffmpeg -f lavfi -i "aevalsrc=0:d=3" -ar %sample_rate% -ac %channels% -ab %bitrate% -c:a libmp3lame -y "%silence_dir%\silence_3s.mp3"
-
- echo 正在创建5秒静音文件...
- ffmpeg -f lavfi -i "aevalsrc=0:d=5" -ar %sample_rate% -ac %channels% -ab %bitrate% -c:a libmp3lame -y "%silence_dir%\silence_5s.mp3"
-
- if !errorlevel! neq 0 (
- echo 错误:静音文件创建失败!
- ) else (
- echo 静音文件已成功创建在 "%silence_dir%" 目录下。
- )
-
- endlocal
- pause