ffmpeg: Extract audio from .WEBM to .MP3 12
If you need to extract the audio from an .WEBM
movie file to an .MP3
audio file you can execute the following:
FILE="the-file-you-want-to-process.webm"; ffmpeg -i "${FILE}" -vn -ab 128k -ar 44100 -y "${FILE%.webm}.mp3";
The first command will assign the file name to a variable, we do this to avoid typing errors in the second command where we might want to use the same name for the audio file.
The second command, will use ffmpeg
to extract the audio. The -i
flag, indicates the file name of the input. We used the flag -vn
that will instruct ffmpeg
to disable video recording. The -ab
flag will set the bit rate to 128k. The -ar
flag will set the audio sample rate to 441000 Hz. The -y
flag will overwrite output file without asking, so be careful when you use it.
In case we want to automatically process (batch process) all .WEBM
video files in a folder we can use the following:
for FILE in *.webm; do echo -e "Processing video '\e[32m$FILE\e[0m'"; ffmpeg -i "${FILE}" -vn -ab 128k -ar 44100 -y "${FILE%.webm}.mp3"; done;
The above script will find all .WEBM
files in the folder and process them one after the other.
UPDATE:
The following command will find all webm
files that are in the current directory and in all sub-folders and extract the audio to mp3
format.
find . -type f -iname "*.webm" -exec bash -c 'FILE="$1"; ffmpeg -i "${FILE}" -vn -ab 128k -ar 44100 -y "${FILE%.webm}.mp3";' _ '{}' \;
The filename of the audio file will be the same as the webm
video with the correct extension. The webm
extension will be removed and replaced by the mp3
extension e.g hi.webm
will become hi.mp3