mirror of https://github.com/Flinner/dots.git
demusicify videos
This commit is contained in:
parent
b04f3513ae
commit
e7451a58b4
|
@ -0,0 +1,36 @@
|
|||
#!/bin/bash
|
||||
|
||||
[ -z "$2" ] && echo "usage: input.mp4 output.mp4"
|
||||
[ -z "$2" ] && exit
|
||||
|
||||
VIDEO="$1"
|
||||
VIDEO_OUTPUT="$2"
|
||||
|
||||
TMP_RAW_AUDIO=$(mktemp --suffix ".mp3")
|
||||
TMP_VOCALS_DIR=$(mktemp --directory)
|
||||
TMP_VOCALS=$(mktemp --suffix ".mp3")
|
||||
|
||||
# Extract Audio from Video
|
||||
ffmpeg -i "$VIDEO" -vn "$TMP_RAW_AUDIO" -y
|
||||
|
||||
# move to a tmp file, becuase demucs creates a lot of garbage
|
||||
pushd "$TMP_VOCALS_DIR" || exit
|
||||
|
||||
demucs --two-stems=vocals --segment 10 "$TMP_RAW_AUDIO"
|
||||
|
||||
cp ./separated/*/*/vocals.wav "$TMP_VOCALS"
|
||||
|
||||
# return back to working directory for no reason
|
||||
popd || exit
|
||||
|
||||
# https://json2video.com/how-to/ffmpeg-course/ffmpeg-add-audio-to-video.html
|
||||
ffmpeg \
|
||||
-i "$VIDEO" -i "$TMP_VOCALS" \
|
||||
-c:v copy \
|
||||
-map 0 -map 1:a \
|
||||
-y "$VIDEO_OUTPUT"
|
||||
|
||||
|
||||
rm "$TMP_RAW_AUDIO"
|
||||
rm "$TMP_VOCALS"
|
||||
rm -rf "$TMP_VOCALS_DIR"
|
Loading…
Reference in New Issue