動画(mp4形式)から音だけを抽出したいと思いネット検索をしてみました。ffmpegというソフトを使えばmp4ファイルからmp3ファイルを作成できるようです。
なお、以下の作業はDebian 11(bullseye)で行いました。
ffmpegの使用例
変換前のmp4ファイルが「hoge.mp4」で、変換後のmp3ファイルが「hoge.mp3」であるとすると、コマンドラインは以下のようになります。
ffmpeg -i hoge.mp4 hoge.mp3
出来上がったmp3ファイルを調べたところ、ビットレートは128kb/sでした。
ビットレートを256kb/sにするのであれば次のようにします。
ffmpeg -i hoge.mp4 -ab 256k hoge.mp3
変換用スクリプト
少し時間が経てばビットレートの指定の仕方も忘れてしまいますので、シェルスクリプトにしてみました(普段シェルスクリプトを書かないので、どこか間違っているかもしれませんが)。
#!/bin/bash if [ $# -eq 0 ]; then echo "引数を指定してください" exit 1 elif [ $# -ne 1 ]; then echo "引数は1つだけしか指定できません" exit 1 fi INPUT=$1 if [ "$INPUT" != *.mp4 ]; then echo "拡張子が.mp4ではない気が・・・?" exit 1 fi OUTPUT=${INPUT/%.mp4/.mp3} if ffmpeg -i "$INPUT" -ab 256k "$OUTPUT"; then echo echo "変換が終わったぞよ(MP4 → MP3)" exit 0 else STATUS=$? echo echo "なんか、変換できんかったわ" echo "exit status : $STATUS" exit $STATUS fi
$1をそのまま使えば INPUT という変数を用意する必要はないのですが、私の好みでINPUTを用意しています。
スクリプトの使い方
上記シェルスクリプトを「mp4tomp3.sh」というファイル名で保存して実行権限を付与したとします。引数としてmp4ファイルを1つ指定します。
./mp4tomp3.sh hoge.mp4
これで「hoge.mp3」というファイルが出来上がります。