This is a guide that basically combines protolium's very helpful ffmpeg cheatsheet with the spleeter library.
Here's a tweet thread that shows a video snippet, with separate bass, vocals, and drums track:
Installing stuff
ffmpeg
(this guide was tested on ffmpeg 4.1.4)
These offers are non-binding, meaning you can cancel your subscription at any time. These offers are only available to users with no current nor previous subscription to any Deezer subscription tier, with no benefit from any previous Deezer promotion and no previous free trial to any Deezer.
Lots of ways to do this. If you're on a Mac, I suggest using Homebrew:
Deezer Splitter Machine
Spleeter Ai
- A couple of weeks back, Deezer released its new AI-based tool to separate vocals from songs. However, setting it up and running it requires installing various packages that can be time-consuming. To get around this, a developer has created a website based on Deezer Spleeter.
- On November 4 th 2019, Deezer released Spleeter, a machine learning tool for source separation. Spleeter is a project from Deezer’s research division and is made available online as a Python library based on Tensorflow.
spleeter
Repo: https://github.com/deezer/spleeter
HN discussion: https://news.ycombinator.com/item?id=21431071
Install (and isolate) using conda:
You can also do pip install spleeter
but you might run into more than a few library conflicts with your existing Python environment...
Extracting the audio from video
(From this helpful gist: https://gist.github.com/protrolium/e0dbd4bb0f1a396fcb55)
Given a video.mp4
file, here's how to use ffmpeg to extract the audio into a separate file, audio.wav
:
Splitting the audio into 5 tracks with spleeter
(From spleeter's Quick Start info: https://github.com/deezer/spleeter#quick-start)
The following command invokes spleeter to split audio.wav
into 5 separate tracks, into a subdirectory called myoutput/audio
The generated files:
Creating a video file with one of the extracted tracks
Basically, create a silent version of the video, and then merge it with one of the given track extracts.
Strip audio from video
This creates a copy of the video, sans audio track, named silent-video.mp4
from video.mp4
Merge silent video with audio track
Here's an example that creates drums-video.mp4
: the video, with just the drums track:
Make an excerpt of a media file (optional)
(StackOverflow: https://superuser.com/questions/377343/cut-part-from-video-file-from-start-position-to-end-position-with-ffmpeg)
If you want to snippet any media file, here's an example using ffmpeg that cuts a 12-second snippet, beginning at the 30th second: