in my 雑記

プログラミング bump 日々のことなど

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

f:id:inmyzakki:20170902164248p:plain
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の使い方がわかったら教えて欲しい。