【簡単】Pythonで動画から音声(mp3・wav)を抽出する方法

【簡単】Pythonで動画から音声(mp3・wav)を抽出する方法 プログラミング

「動画から音声を抽出したい」
「mp4をwavに変換したい」
「ffmpegコマンドをコード内に記述するのが嫌だ」

このような場合は、この記事が参考となります。
この記事では、Pythonで動画から音声(mp3・wav)を抽出する方法を解説しています。

本記事の内容

  • 動画から音声を抽出する方法
  • mp4をwavに変換
  • mp4をmp3に変換
  • 【おまけ】wavをmp3に変換

それでは、上記に沿って解説していきます。

動画から音声を抽出する方法

動画には、たくさんの動画形式が存在しています。
まずは、その範囲を明確にしておきます。

この記事で言う動画とは、mp4を対象とします。
そして、音声はwavとmp3の二つの形式を扱います。

この場合、動画から音声を抽出するパターンは次の二つとなります。

  • mp4からwavを抽出
  • mp4からmp3を抽出

上記の表現に違和感を感じませんか?
動画形式をもとに「抽出」という言葉を使うと、すごく違和感を感じます。
ということで、これ以降は次のように表現します。

  • mp4をwavに変換
  • mp4をmp3に変換

やはり、こっちの方がしっくり来ます。
これらの変換について、解説を行っていきます。

主に、次の二つの技術に依存します。
もちろん、Pythonの利用は大前提です。

  • FFmpeg
  • ffmpeg-python

FFmpegは、OS毎にインストール方法が異なります。

ffmpeg-pythonは、事前にFFmpegのインストールが必要となります。

このFFmpegとffmpeg-pythonによって、簡単にやりたいことができます。
FFmpegをffmpeg-pythonを経由して、Pythonから操作します。

この操作する云々を知りたい場合は、ffmpeg-pythonの記事をご覧ください。
そのあたりを詳しく説明しています。

以上、動画から音声を抽出(変換)する方法を説明しました。
以降では、実際に動画を音声に変換していきます。

mp4をwavに変換

mp4をwavに変換するコードは、以下。

import ffmpeg 

# 入力 
stream = ffmpeg.input("test.mp4") 
# 出力 
stream = ffmpeg.output(stream, "test.wav") 
# 実行
ffmpeg.run(stream)

これだけでmp4からwavを作成できます。
非常に簡単です。

ffmpegコマンドを長たらしく記述する必要がありません。
その辺の面倒なことは、ffmpeg-pythonが代理でしてくれます。

mp4をmp3に変換

mp4をmp3に変換するコードは、以下。

import ffmpeg 

# 入力 
stream = ffmpeg.input("test.mp4") 
# 出力 
stream = ffmpeg.output(stream, "test.mp3") 
# 実行 
ffmpeg.run(stream)

mp4からwavに変換する場合とほとんど変わりません。
ファイル名(拡張子)を変更しただけです。

mp4からmp3にダイレクトに変換できるのが、個人的には嬉しいですね。
mp4からwavに変換して、そのwavからmp3に変換という段階を踏む必要がありません。

内部的には、そんなことをしてるのかもしれません。
しかし、それがコードから一切見えないというのが素晴らしいです。

【おまけ】wavをmp3に変換

音声を圧縮したい場合も、同じコードで対応できます。

import ffmpeg 

# 入力 
stream = ffmpeg.input("test.wav") 
# 出力 
stream = ffmpeg.output(stream, "test.mp3") 
# 実行 
ffmpeg.run(stream)

mp3をwavに変換したいなら、上記の逆を設定するだけです。
このコードだけあれば、何でも変換できますね。

もちろん、それは変換エンジンとなるFFmpeg次第となりますけど。

以上、Pythonで動画から音声(mp3・wav)を抽出する方法を説明しました。

タイトルとURLをコピーしました