python でアニメーション

python でアニメーションができないかと以前から思っていました。

これまではそれほど必要と思っていなかったのでほとんど調べておりませんでしたが、今回少し調べてみました。

画像 1 枚に音声を載せる

アニメーションと言っても、昔 Flash で作ったようなアニメーションだと 1 分あたりの動画作成に 1 時間程かかります。

今はそんなに時間を割けないので、まんが日本昔話のような静止画に音声を載っけてそれを繋ぐという方法をとりたいと思います。

python の gTTS で作成した音声ファイル .mp3 を静止画に載っけるのは、


from pydub import AudioSegment
from moviepy.editor import *

audio_path = 'output.mp3'
image_path = '04.jpg'

audio = AudioSegment.from_file(audio_path, 'mp3')
video = ImageClip(image_path).set_duration(audio.duration_seconds)
video.write_videofile("01.mp4", fps=10, audio=audio_path)

結果は、

これは、産婦人科医の高尾美穂さんの背筋を鍛えるトレーニング画像から頂きました。
笑顔がいいですね。

複数の動画を結合する

これは python でもできると思いますが、おそらく shotcut の方が簡単です。

この内容に関してはそれほど複雑ではないのでアニメーション化する意味があまりないかもしれませんが、少し複雑になるとアニメーションの効果は抜群です。

画像を繋げて gif にする

ちなみに、ffmpeg で画像をくっつけて gif を作成できますが、この gif には音声を載せることができないようです。

画像を繋げて gif にするのは、


ffmpeg -r 0.5 -i jpg/%02d.jpg -pix_fmt rgb24 -f gif output.gif