『動画だとスマホの容量が圧迫されてあまり入らない』
『通勤中の満員電車では動画を見るのが難しい。せめて音声だけでも聴きたい』
といった悩みはありませんか?
Pyhonを使うと簡単に動画から音声ファイを作成することができるので、
解説していきます。
YouTubeのダウンロード方法は下の記事で紹介しています。
-
【yt_dlp】PythonでYouTubeをダウンロードする
以前に『【初心者でも大丈夫】Pythonで出来ること5選【簡単に使える】』という記事でPythonでYouTubeをダウンロードできると紹介しました。 僕はよくYouTubeから有益な情報をインプット ...
続きを見る
ffmpegを使って動画をmp3に変換する準備
Pythonのモジュールffmpegを使えば簡単に動画から音声ファイを作成できます。
以下の順番でffmpegをインストールする手順を説明します。
ffmpegをインストールする手順
- ffmpegをダウンロード
- パスを通す
- Pythonにモジュールをインストール
ffmpegをダウンロード
ffmpegはPythonでpip install
するだけでは不十分で、
音声ファイルに変換するソフトをPC内にダウンロードする必要があります。
Pythonでダウンロードしたソフトに指示を与えると考えれば大丈夫です。
まずはサイトからffmpegをダウンロードしましょう。
公式サイトに移動すると上のような画面になりますので、
Windowsを選択後、『Windows builds by BtbN』をクリックします。
クリックすると、上のようなGitHubページに移動するので、
『ffmpeg-master-latest-win64-gpl.zip』をクリックして
ffmpegをダウンロードします。
パスを通す
ffmpegがダウンロードできればパスを通す作業になります。
以下の手順で解説します。
パスを通す手順
- 実行ファイルを設置する
- パスを通す
- ffmpegの動作確認する
手順1:実行ファイルを設置する
『ffmpeg-master-latest-win64-gpl.zip』を解凍すると、
『ffmpeg-master-latest-win64-gpl』といったフォルダが作成されるので
任意の場所にフォルダごと移動させて下さい。
※『ffmpeg-master-latest-win64-gpl』はファイル名が長いので僕は
『ffmpeg』と名前を変更し、Anacondaが入っている
『C:¥Users¥mekatana¥anaconda3』に『ffmpeg』のフォルダを作成して保存しています。
手順2:パスを通す
パスを通すために、スタート画面から『環境変数』と入力すると、
『システム環境変数の編集』と表示されるので、クリックしてください。
『システムのプロパティ』画面の『環境変数』をクリックします。
『環境変数』画面の『Path』をダブルクリックします。
①『新規』を押して②『パス』を入力、③『OK』をクリックします。
※僕の環境では『C:¥Users¥mekatana¥anaconda3¥ffmpeg¥bin』が
パスとなります。
手順3:ffmpegの動作確認する
パスが正しく通っているか確認するために、コマンドプロンプトを開きます。
ffmpeg -version
コマンドプロンプトにffmpeg -version
と入力します。
※スタート画面でcmd
と入力すればコマンドプロンプトを開けます。
エラーが出ずに上のような画面ならば問題なくパスが通っています。
Pythonにモジュールをインストール
次はPythonにモジュールをインストールします。
conda install ffmpeg
conda install ffmpeg-python
Anacondaユーザーの方はcondaでインストールして下さい。
※pipでインストールするとプログラム実行時にエラーが出ます。
以上でffmpegを使用できる環境が整いました。
コード紹介
1つの動画ファイルを音声ファイルに変換
コード全体を紹介します。
import os
import ffmpeg
print(os.getcwd())
file_name=os.getcwd()+"/"+"動画ファイル名を入れて下さい.mp4"
print(file_name)
# 入力
stream = ffmpeg.input(file_name)
# 出力
stream = ffmpeg.output(stream, os.getcwd()+"/"+"音声ファイル名を入れて下さい.mp3")
# 実行
ffmpeg.run(stream)
print("mp3変換完了")
まずは上記のプログラムを変換したい動画ファイルが保存されている
フォルダに保管して下さい。
import os
import ffmpeg
import os
は動画名の取得やpyファイルが実行されたディレクトリ取得のために使用します。
print(os.getcwd())
os.getcwd()
でプログラムが実行されたディレクトリを取得できるので、print(os.getcwd())
で表示させています。
file_name=os.getcwd()+"/"+"動画ファイル名を入れて下さい.mp4"
os.getcwd()+"/"+"動画ファイル名を入れて下さい.mp4"
は
変換する動画ファイルを指定します。
# 入力
stream = ffmpeg.input(file_name)
ffmpeg.input(file_name)
でffmpegに変換する動画を読み込ませます。
# 出力
stream = ffmpeg.output(stream, os.getcwd()+"/"+"音声ファイル名を入れて下さい.mp3")
出力先とファイル名、拡張子を指定します。
※今回はわかりやすいように動画と同じフォルダにmp3データを出力します。
# 実行
ffmpeg.run(stream)
print("mp3変換完了")
ffmpeg.run(stream)
で実行し、
分かりやすいように変換が完了すると『mp3変換完了』と表示されます。
※mp3をwavに書き換えるとwavで出力できます。
上記のプログラムは動画ファイル1つだけを音声ファイルに変換するには十分ですが、
複数の動画を変換するときは少し不便です。
なので、複数の動画ファイルを音声ファイル変換するプログラムも作成したので紹介します。
複数の動画ファイルを音声ファイルに変換
まずはコード全体です。
import os
import ffmpeg
# ファイルを実行したディレクトリ
print(os.getcwd())
# ファイルを実行したディレクトリのファイルを取得
file_list=os.listdir(os.getcwd())
# mp4のみ抽出
word=".mp4"
mp4_list = [ s for s in file_list if word in s ]
for i in range(len(mp4_list)):
mp4_file=os.getcwd()+"/"+mp4_list[i]
print(mp4_file)
# 入力
stream = ffmpeg.input(mp4_file)
# 出力
mp3_file=mp4_file.replace('mp4', 'mp3')
stream = ffmpeg.output(stream, mp3_file)
# 実行
ffmpeg.run(stream)
print("mp3変換完了")
『1つのファイルのみを音声ファイルに変換』と被る部分は解説を割愛します。
同様に上記のプログラムを動画が保管されているフォルダに保存してください。
# ファイルを実行したディレクトリのファイルを取得
file_list=os.listdir(os.getcwd())
os.listdir(os.getcwd())
で
ファイルが実行されたディレクトリ内に保管されているファイル名を一括取得します。
# mp4のみ抽出
word=".mp4"
mp4_list = [ s for s in file_list if word in s ]
取得したファイルリストの中から『mp4』ファイルのみを抽出します。
word
を".mp4"
と定義します。
[ s for s in file_list if word in s ]
は
先ほど取得したファイルリストの中から".mp4"
形式のファイルのみを抽出し、
リスト化します。
for i in range(len(mp4_list)):
mp4_file=os.getcwd()+"/"+mp4_list[i]
print(mp4_file)
len(mp4_list)
は
リスト内に何個の要素が格納されているかカウントします。
for i in range(len(mp4_list)):
は
でlen(mp4_list)
取得したカウント数だけ同じ処理を繰り返します。
mp4_list[i]
でリスト内のi
番目の要素を抽出し、mp4_file
として定義します。
# 出力
mp3_file=mp4_file.replace('mp4', 'mp3')
stream = ffmpeg.output(stream, mp3_file)
mp4_file.replace('mp4', 'mp3')
は
取得したmp4ファイル名をmp3ファイル名に変換します。
以下は『1つのファイルのみを音声ファイルに変換』と同様です。
これで一括でmp4ファイルをmp3に変換できるるので、ぜひ試して下さい。
今回は以上です。