ひゃまだのblog

ひゃまだ(id:hymd3a)の趣味のブログ

動画ファイルからmp3を抜き出す

(初稿 2019-12-29 - 転記・修正 2021-06-01 )

はじめに

動画ファイル(*.webm、*.mkv、*.mp4を想定)から、音声ファイル(mp3)を抜き出す方法。複数のファイルがある場合に、面倒なのでbashスクリプトを作成した。

なお、筆者の環境は、Debian Buster。

動画ファイルからmp3を抜き出す

ffmpegを利用して、動画からmp3を抜き出す。

ffmpegのインストールは以下のとおり。

sudo apt install ffmpeg

実際に音声ファイルを抜き出す方法は、以下のとおり。なお、詳細については、ffmpegのヘルプを参照のこと。

ffmpeg -i input.webm -acodec libmp3lame -aq 4 output.mp3

上記コマンドでできることを確認したら、以下のbashスクリプトを適当なエディタで作成し、フォルダ内の動画ファイルから一括して音声ファイルを取り出す。
ここでは、v2mp3というファイル名にした。

#!/bin/bash
# Written by Hyamada 2019-12-29
# 動画ファイルからmp3を抜き出す

for f in *.mkv *.mp4 *.webm ; do 
  [ -f "$f" ] || continue
  /usr/bin/ffmpeg -i "$f" -acodec libmp3lame -aq 4 "${f%.*}.mp3" ; 
done

エディタで作成したら、以下のとおり実行権を与えてね。

$ chmod +x v2mp3

ここでは、mkv、mp4、webmの拡張子のファイルを動画ファイルとしたが、不足する場合は、追加をしてね。

また、指定する拡張子のファイルがないと、エラーで終了してしまうので、ファイルがない場合はスキップ(continue)するようにした。

おわりに

bashに限らず、for in doが正常に動くとうれしくなるね(自己満足 ^^;)。

関連ページ