实现思路:
1.通过ffmpeg将视频文件的视频与声音分开,形成一个无声视频和一个纯音频文件。此时音频文件中有人声与音乐背景声。
2.通过spleeter将人声与背景声分开。
3.将无声视频与背景音乐合并成一个文件。
具体步骤:
1.下载ffmpeg
下载地址为https://github.com/BtbN/FFmpeg-Builds/releases
如果是windows系统,则选择ffmpeg-master-latest-win64-gpl.zip
下载下来后,解压缩。在bin文件中有ffmpeg.exe、ffplay.exe和ffprobe.exe三个文件。我们要用到的就是ffmpeg.exe。建议将这个文件加到path路径。如果想偷懒不想加,那就直接在ffmpeg.exe所在的目录进行操作。把视频文件放到同一个目录下,就不用担心路径问题了。
2.提取视频中的音频,生成一个音频文件。
ffmpeg.exe -i "原始.mp4" -vn -acodec copy 声音.aac
3.提取视频中的视频,生成一个无声视频文件。
ffmpeg.exe -i "原始.mp4" -y -f mp4 -an -codec copy -q:v 1 "无声.mp4"
4.下载spleeter
可以直接下载spleetergui,更方便操作。
下载地址为 https://spleetergui.com/Download
注意,除了spleetergui文件本身,还需要下载相应的训练文件。我接下来选择2通道,则选择2通道对应的训练文件。下载地址为 https://github.com/deezer/spleeter/releases
文件有点大,需要点耐心。
5.选择2通道,人声与伴奏
6.设置一个输出路径,将文件拖到GUI界面上,就可自动分析人声与伴奏。
7.分析成功后,会生成accompaniment.wav与vocals.wav两个文件,即伴奏与人声。
8.通过ffmpeg,将无声视频与伴奏合并
ffmpeg.exe -i 无声.mp4 -i accompaniment.wav -c:v copy -c:a aac -strict experimental 无人声视频.mp4