如何批量给同一个视频配不同的背景音乐?可能很多朋友有这样的需求,前段时间在做一个项目的时候,有生成大量视频的需求,需求就是给同一个视频配不同的音乐。如果用软件一个一个操作,非常的麻烦。
期间使用了RPA自动化操作剪映来生成视频,虽然不用手动操作,但是效率很低,一个视频也需要1分钟左右时间。
最后使用了 FFmpeg + 脚本来处理,速度真的是太快了,一分钟可以生成十几二十个视频。
具体步骤如下:
- 安装 FFmpeg :从官网下载并配置环境变量。
准备文件 :
- 视频文件:
input.mp4
- 背景音乐文件夹:
bgm_library/
(包含music1.mp3
,music2.mp3
...)
- 视频文件:
- 编写批处理脚本 :
#!/bin/bash
input_video="input.mp4"
bgm_dir="bgm_library"
output_dir="output"
mkdir -p "$output_dir"
for bgm in "$bgm_dir"/*.{mp3,wav,m4a}; do
# 跳过不匹配的文件
[ -e "$bgm" ] || continue
filename=$(basename -- "$bgm")
output_name="${filename%.*}"
# 执行 FFmpeg 命令
ffmpeg -y \
-i "$input_video" \
-i "$bgm" \
-filter_complex "[1:a]atrim=0:60,volume=1[a]" \
-map 0:v \
-map "[a]" \
-t 60 \
-c:v copy \
-c:a aac \
-shortest \
"$output_dir/$output_name.mp4"
done
我的脚本如上,仅供参考,因为我的每个视频时长都一样,因此没有对歌曲时长等进行判断限制。
文件目录
整个文件目录如下图,bgm_library 是放你的所有音乐文件的。output是生成视频的目录。input.mp4是需要配音的视频文件。video_bgm_batch.sh就是批处理文件。
如何运行
Windows电脑安装Git Bash软件来运行批处理文件。点击下载Git Bash
下载安装好之后,在文件目录里面右键选择open git bash here 会出现下面界面:
接下来输入运行代码:
#赋予脚本执行权限
chmod +x video_bgm_batch.sh
#执行脚本
bash -x video_bgm_batch.sh
#代码一行一行运行哦
接下来,脚本就自动在跑了,可以在output 文件夹里面看到生成的视频了。
不懂的,联系我。