Pythonのmoviepyモジュールを使って動画ファイル(mp4)から音声(mp3)を抽出する方法

スポンサーリンク

このモジュールでは、ビデオからオーディオを抽出したり、MP4ファイルからMP3を抽出したりするための、非常にコンパクトで重要なプログラムを作成します。

スポンサーリンク

必要なパッケージのインストール


ビデオファイルから音声を抽出するために必要なパッケージをインストールする必要があります。

pipパッケージマネージャで簡単にインストールできます。

$ sudo pip3 install moviepy

以上で、コードを書き始めることができます。

動画から音声を抽出するコード

1
2
3
4
5
6
7
8
9
10
from moviepy.editor import *
 
def mp4tomp3(mp4file,mp3file):
    videoclip=VideoFileClip(mp4file)
    audioclip=videoclip.audio
    audioclip.write_audiofile(mp3file)
    audioclip.close()
    videoclip.close()
 
mp4tomp3("video.mp4","audio.mp3")

Understanding The Code

1行目:必要なライブラリのインポート

1
from moviepy.editor import *

まず、変換を助けるために moviepy をインポートする必要があります。

これは、ビデオ編集のためのライブラリで、カット、連結、タイトル挿入、ビデオ合成(ノンリニア編集)、ビデオ処理、カスタムエフェクトの作成などを行う、非常に便利なツールです。

3-8行目:機能を定義する

3
4
5
6
7
8
def mp4tomp3(mp4file,mp3file):
    videoclip=VideoFileClip(mp4file)
    audioclip=videoclip.audio
    audioclip.write_audiofile(mp3file)
    audioclip.close()
    videoclip.close()

ここでは、2つの引数を取る関数を定義しています。

  • mp4file: 変換したいMP4ファイルの名前が入ります。
  • mp3file:音声抽出の結果得られたmp3ファイルの名前

次に4行目で、mp4ファイルを読み込み、必要な処理を実行できるようにします。

次に、先に作成したVideoClipFileオブジェクトから音声を抽出し、引数で指定されたファイルに格納します。

最後に、不要なエラーが発生しないように、オーディオとビデオオブジェクトのハンドルを閉じて、この関数を終了します。

10行目:関数を呼び出す

10
mp4tomp3("video.mp4","audio.mp3")

最後に、ビデオの名前と、それを保存したいオーディオファイルの名前を指定して、この関数を呼び出します。

これで、カレントディレクトリに audio.mp3 というファイルが作成されます。

動画ファイルから音声を変換・抽出する

moviepy` ライブラリは非常にポータブルで、Windows、Linux、MacOSのいずれでも同じような結果を得ることができます。

このコードを実行すると、小さな tqdm プログレスバーが表示され、抽出処理が完了すると消えるはずです。

あとは好きな音楽プレイヤーで再生してください。

Extracting Audio
Extracting Audio
Playing The Extracted Audio
Playing The Extracted Audio

まとめ

この小さなコード片は、時々とても便利に使うことができます。

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