sumisoクラフト

sumisoクラフトはてなブログ拠点

pythonでmp3ファイルを連結してBGMを作る

複数のmp3ファイルを合体して

1つの長いmp3ファイルにする

 

結果としては出来たが

もっとスマートなコードがありそうなので

詳しい方教えてください()

 

 

 

ファイル構成

f:id:sumiso_c0db8c:20210313143501p:plain

 

music

連結したいBGM集

 

Ancient_Wing.mp3

連結したい曲の1曲目

youtu.be

 

bgm.mp3

連結したbgm

pythonを実行して生成したやつ

 

bgm.py

mp3連結用のpython

 

ffmpeg.exe ffprobe.exe

mp3連結のために必要なソフト

https://ffmpeg.org/

 

イクラのreplayMODの

映像書き出しに使ってたので

イクラのファイルからコピーしてきた

 

ソースコード

 

from pathlib import Path
from pydub import AudioSegment
import os

p = Path("music") #mp3ファイルのあるディレクトリ取得
files = p.glob("*") #mp3ファイル一覧を取得

#とりあえず1つだけ読み込む
bgm =  AudioSegment.from_file("Ancient_Wing.mp3", "mp3")

#1ファイルずつループ
for file in files:

    fileName = os.path.join(p, file.name) #ファイル名取得
    mp3 = AudioSegment.from_file( fileName, "mp3") #mp3ファイルを読み込む
    bgm = bgm + mp3 #mp3ファイルを連結する
    print("loading")

#mp3として書き出し
bgm.export("bgm.mp3", format="mp3")

 

mp3ファイルを連結するために

変数の宣言をしておきたかったが

 

pythonには変数の宣言が無いらしいので

とりあえず1曲読み込んで

変数を宣言

 

他の曲を連結した

 

 

参考サイト

torisky.com

余談

 

Mirrativでのマイクラライブ配信用に

www.mirrativ.com

BGMが欲しい

 

そこで

dova-s.jp

で適当な曲を

いくつかDLしてきた

 

youtube.com

 

これをOBSで順番に流したい

obsproject.com

 

1曲ループは簡単に出来るが

複数の曲を順番に流すためには

別のソフトが必要な様子

 

複数のアプリを起動して

ライブ配信

PCの負荷がやばそうなので

1つのmp3にまとめてみた

 

これで

長時間の配信に耐えられるはずだ