pythonでjpgやpng画像からmp4動画を作成する方法

スポンサーリンク
スポンサーリンク

サンプルコード

import glob
import cv2

img_array = []
fps = 0.5 #1秒の間に何枚画像を表示させるか
for filename in sorted(glob.glob("images/*.png")):
    img = cv2.imread(filename)
    height, width, layers = img.shape
    size = (width, height)
    img_array.append(img)

name = 'project.mp4'
out = cv2.VideoWriter(name, cv2.VideoWriter_fourcc(*'MP4V'), fps, size)

for i in range(len(img_array)):
    out.write(img_array[i])
out.release()

cv2.VideoWriterの引数で1秒間に表示させる画像の枚数(fps)を調整できる。
例えば1秒間に2枚の画像を表示させたい場合、fps=2とする。

回数を指定して画像を繰り返し表示させる動画

for i in range(3):
これを入れてカッコ内に繰り返したい数値を入れると実現できる。

import glob
import cv2

img_array = []
fps = 1 #1秒の間に何枚画像を表示させるか

for i in range(3):
    for filename in sorted(glob.glob("images/*.png")):
        img = cv2.imread(filename)
        height, width, layers = img.shape
        size = (width, height)
        img_array.append(img)

name = 'project.mp4'
out = cv2.VideoWriter(name, cv2.VideoWriter_fourcc(*'MP4V'), fps, size)

for i in range(len(img_array)):
    out.write(img_array[i])
out.release()

windowsなら無料の動画作成ソフトが標準で入ってる

Windows11なら「clipchamp」で簡単に動画が作れる。しかも無料。
字幕も音声も簡単につけることができる。
このソフトを使ったほうが断然簡単。

引用元

OpenCVで複数の画像から動画ファイルを作る
OpenCVで複数の画像から動画ファイルを作る 定点撮影などで連番になっている複数の画像をまとめてgifアニメーションに変換する方法です。群馬県でPython / Djangoを中心にウェブアプリケーションを開発している、株式会社ファントム...
python
スポンサーリンク

コメント

タイトルとURLをコピーしました