連続するフレーム画像をつなげて動画として保存したい
解決したいこと
オリジナルの動画をフレーム分割してそのフレーム画像に画像処理をいろいろ施しました。現在その画像処理を施したフレーム画像を再びつなげて動画として保存したいのですが、どのようなコードで実現することができるでしょうか?pythonは初心者で知識が浅く、このような場所で質問させていただきます。有識者の方々どうぞご教授願います。
0
オリジナルの動画をフレーム分割してそのフレーム画像に画像処理をいろいろ施しました。現在その画像処理を施したフレーム画像を再びつなげて動画として保存したいのですが、どのようなコードで実現することができるでしょうか?pythonは初心者で知識が浅く、このような場所で質問させていただきます。有識者の方々どうぞご教授願います。
Pythonタグを付けられていますので、OpenCVパッケージを使った方法です。
Current directory下にあるpng拡張子の画像をまとめてMP4ファイルに出力します。
(ソースは忘れましたが、python 動画作成、みたいな感じで昔ググったら出てきたと記憶しています。)
import os
import cv2
fnames = sorted([fname for fname in os.listdir(".") if ".png" in fname])
img = cv2.imread(fnames[0])
hgt, wdt, _ = img.shape
fourcc = cv2.VideoWriter_fourcc('m', 'p', '4', 'v')
video = cv2.VideoWriter('video.mp4',fourcc, 10., (wdt, hgt))
for fname in fnames:
img = cv2.imread(fname)
video.write(img)
video.release()
Python使わずにffmpegを直接叩いてもいけると思います。
回答ありがとうございます!この作成された動画は保存場所を指定などもできるでしょうか?
cv2.VideoWriter('video.mp4', fourcc, 10., (wdt, hgt))
の一つ目の引数が出力される動画ファイル名です。
その他は画像サイズ(widthとheight)やフレームレートなどを参考程度に適当に与えています。
https://docs.opencv.org/3.4/dd/d9e/classcv_1_1VideoWriter.html