python3で音声ファイルから静止画付き動画を作成する

python3で音声ファイルを静止画付き動画を作成する方法を紹介します。 FFMpegを使って動画の作成をします。

準備

今回はFFMpegで動画を作成するため、まずはFFMpegを入れます。
pip install ffmpy

プログラム

ソースというほど大層なものではないですが、 流れとしてはpython→シェルスクリプト→ FFMpegという感じで、動画を作成します。 pythonのソースです。 コマンドラインを実行するsubprocessでシェルへ引数を渡しているだけです。
# -*- coding: utf-8 -*-
import subprocess

subprocess.run(["sh","シェルスクリプト名.sh","画像名.jpg","音声ファイル名.mp3","動画ファイル名.mp4"])
シェルスクリプトです。 引数を受け取って、ffmpegを叩いてるだけです。 以下のコマンドはyoutubeへアップするのに最適な動画を作成するようにしてます。
ffmpeg -loop 1 -framerate 2 -i $1 -i $2 -c:v libx264 -preset medium -tune stillimage -crf 18 -af "afade=t=out:st=71:d=4" -t 75 $3
実際に使うときはffmpegのパラメータを調べてshを修正して、 pythonの渡す引数を変える感じです。(ffmpegは多機能すぎて読むのがめんど、、、、)

おわり

今回は、python→シェルスクリプト→ FFMpegという感じでやることにしたけど、 本当はffmpyというFFMpegのラッパーの紹介をしようかと思っていた。 ただ、こいつが、うまく動いてくれない。 FFMpegをインストールしたのにFFMpegがインストールされてないと言われる、、、 誰かffmpyの使い方がわかったら教えて欲しい。