Python x Youtube | 音声ファイルから動画を作成する方法(Youtubeに音声ファイルをアップロードする方法)
- 2023.06.13
- Python

みなさん、こんにちは!
今回はmp3音声ファイルから動画ファイルを生成する方法を考えます。
どういうときに使う話か?
例えば、録音した音源をyoutubeにアップロードしたい場合、wavやmp3(音声データのみ)ではアップロードできません。(あくまで動画を投稿するアプリなので)
対処方法として、音声データに1枚画像を貼り付けて、mp4を作ることでyoutubeへアップできるようになります。
では、どうやって画像を貼り付けるかが課題となるわけですが、以下のいくつかやり方があると思ってます。
やり方1:動画作成ツールを使う
やり方2:pythonで自動化を図る
やり方1:動画作成ツールを用いる
一番簡単なやり方は動画作成ツールを用いるやり方です。
Fimola などで動画用プロジェクトを作成し、音声ファイルを貼り、全時間に対して1枚の画像を貼り付けます。

ソフトウェアによりますが、fpsが設定できる場合、画像はfps関係ないので「1fps」で問題ないです。
やり方2:pythonで自動化を図る
プログラミングを行う必要はありますが、将来的に作業の自動化が可能となるため、おすすめのやり方だと思っています。
流れとしては、1)pythonにて音声ファイル → 2)画像ファイルを読み込み → 3)指定のフォルダに出力する、といった手順を踏みます。
わざわざ動画編集ソフトを立ち上げなくて良いし、ファイル名なども自動化できるため、作業効率を図ることができると考えています。
以下はwavファイルをmp4の動画に変換するサンプルです。
#------------------------------------------------------------
# 音声→動画の変換
#------------------------------------------------------------
from scipy.io import wavfile
from moviepy.editor import ImageClip,AudioFileClip, concatenate_videoclips
# Waveファイルのパス
wave_file = "音声ファイル.WAV"
# Waveファイルの読み込み
sample_rate, audio_data = wavfile.read(wave_file)
# 音声データをオーディオクリップとして作成
audio_clip = AudioFileClip(wave_file)
# 静止画像の作成(真っ黒)
duration = len(audio_data) / sample_rate # 音声データの長さ(秒)
black_image = ImageClip('画像ファイル.png', duration=duration)
# 音声と静止画像を結合して動画を作成
video = concatenate_videoclips([black_image.set_audio(audio_clip)])
# フレームレートを指定
video = video.set_fps(1)
# 動画をファイルに保存
output_file = 'output_video.mp4'
video.write_videofile(output_file, codec='libx264', audio_codec='aac')
他にもやり方は多数あるかと思いますが、皆さんもぜひお試しください。
ではまた!
エラー: データの取得に失敗しました。
-
前の記事
python x データ分析 | openposeで姿勢推定~デモを実行しよう その2~ 2023.05.12
-
次の記事
Youtube x Python | 動画アップロードの自動化 2023.06.13