5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Pythonでmp4をmp3 , wavに変換。EXE化。 ドラッグアンドドロップ。 (windows版)

Last updated at Posted at 2022-01-22

前回の記事:

前回、ubuntu環境で、Pythonからffmpegを使用して、mp4からmp3やwavファイルを作成してみましたが、今回は、Windowsでやってみます。

テスト用の動画ファイルのサンプル素材は、以下からお借りしています。

フリー動画素材1~10 海や7月の稲など - カフィネット

ダウンロードしたファイル

free-video1-sea-cafinet.mp4

#コード

ubuntu用に作成した物をPATHだけ変更

mp4_to_mp3.py
# -*- coding: utf-8 -*-
import sys, re, glob, ffmpeg
TYPE:str = "mp3"
FILE_PATH:str  = ".\*.[Mm][Pp]4"

# mp4 -> [mp3][wav] 
def mp4_to_mp3(path,type):
    ffmpeg.run(
        ffmpeg.output(
            ffmpeg.input(path) ,
            re.sub("\.(mp4|MP4)$","."+type,path)
        ))

if ( __name__ == "__main__" ):
    [mp4_to_mp3(path,TYPE) for path in glob.glob(FILE_PATH)]

ffmpegをインストール

イメージ7621.jpg

イメージ7622.jpg

#モジュールインストール

$ pip install ffmpeg-python
イメージ7623.jpg

#実行

mp4_to_mp3.py があるフォルダに「ffmpeg.exe」と「free-video1-sea-cafinet.mp4」を配置

イメージ7624.jpg

コマンド

$ python mp4_to_mp3.py

イメージ7625.jpg

実行後、「free-video1-sea-cafinet.mp3」が作成されれば成功

イメージ7626.jpg

#EXE化

$ pyinstaller mp4_to_mp3.py --onefile

イメージ7627.jpg

イメージ7628.jpg

distフォルダ内に、exeファイルが作成されます。

イメージ7630.jpg

EXEファイル実行

$ .\dist\mp4_to_mp3.exe

イメージ7631.jpg

EXEファイルから、mp3が無事作成されました

#その他

指定フォルダ内のmp4を一括でmp3に変換するように作ってますが、ドラッグアンドドロップ機能を実装すると、もっと使いやすくなると思います。

#ドラッグアンドドロップを実装

調べると、簡単にできるようなのでやってみました。

mp4_to_mp3.py
# -*- coding: utf-8 -*-
import sys, re, glob, ffmpeg
TYPE:str = "mp3"
FILE_PATH:str  = ".\*.[Mm][Pp]4"

# mp4 -> [mp3][wav] 
def mp4_to_mp3(path,type):
    ffmpeg.run(
        ffmpeg.output(
            ffmpeg.input(path) ,
            re.sub("\.(mp4|MP4)$","."+type,path)
        ))

if ( __name__ == "__main__" ):
    [mp4_to_mp3(path,TYPE) for path in sys.argv[1:]]

変更したのは一番下のこの行のみです。

[mp4_to_mp3(path,TYPE) for path in sys.argv[1:]]

スライスを利用して、sys.argv[1:]で、2番目以降の引数を取得しています。

このやり方だと、ドラッグアンドドロップ以外に、コマンドラインからの引数指定も可能。

#実行
イメージ7635.jpg

無事作成されました。

イメージ7636.jpg

#EXE化

$ pyinstaller mp4_to_mp3.py --onefile

イメージ7638.jpg

#ERROR:ffmpeg._run.Error: ffmpeg error (see stderr output for detail)

イメージ7639.jpg

distフォルダ内のexeファイルを、1つ上のディレクトリに移動

イメージ7640.jpg

改めて実行

イメージ7642.jpg

今回は、無事作成されました。

イメージ7643.jpg

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?