This commit is contained in:
yumoqing 2026-04-07 16:26:39 +08:00
parent d6a16a0ec3
commit 975fe2fc96
3 changed files with 66 additions and 0 deletions

38
add_music_track/SKILL.md Normal file
View File

@ -0,0 +1,38 @@
---
name: add_novocal_track
description: this skill sperates music video to pure video and pure audio files and use demucs sperates audio to get novocal audio file and compose pure video, pure audio and novocal audio into a singe KTV video file
---
# add_novocal_track
为歌曲视频增加伴奏音轨输出符合KTV音乐标准的视频文件
## 初始化
* 需要在GPU主机上执行
* 需要安装ffmpeg
* 需要安装demucs
* assets目录下的955717e8-8726e21a.th文件需要复制到~/.cache/torch/hub/checkpoints目录下
在此skill目录下执行
```
sudo apt install ffmpeg
python3 -m venv py3
py3/bin/pip install demucs
mkdir -p ~/.cache/torch/hub/checkpoints
cp assets/955717e8-8726e21a.th ~/.cache/torch/hub/checkpoints
```
## 添加伴奏音轨
### 输入参数
```
{
"video_file": # 输入音乐视频文件
}
```
### 输出参数
{
"ktv_file": # 输出ktv视频文件
}
### 执行命令
```
bash scripts/add_novocal_track.sh
```

Binary file not shown.

View File

@ -0,0 +1,28 @@
#!/usr/bin/env bash
cd tmp
cdir=$(pwd)
id=tmp$$
adir=${cdir}/${id}/separated/htdemucs/output_audio${id}
echo $id
ffmpeg -i $1 -c:v copy -an output_video${id}.mp4 -c:a pcm_s16le -f wav output_audio${id}.wav
echo ls -l output_video*
ls -l output_video*
mkdir ${id}
cd ${id}
demucs --two-stems=vocals ${cdir}/output_audio${id}.wav
echo ls -l ${adir}
ls -l ${adir}
cd ${cdir}
ffmpeg -i output_video${id}.mp4 -i ${adir}/no_vocals.wav -i ${adir}/vocals.wav \
-map 0:v:0 \
-map 1:a:0 \
-map 2:a:0 \
-c:v copy \
-c:a aac -b:a 192k \
-metadata:s:a:0 title="伴奏" \
-metadata:s:a:1 title="原唱" \
output_ktv.mkv -y
# rm -rf ${id} output_video${id}.mp4 output_audio${id}.wav
echo ls ${cdir}/output_ktv.mkv
ls ${cdir}/output_ktv.mkv
echo ${cdir}/output_ktv.mkv