Python Image Frames To Video
I am writing a python/django application and it needs to do image manipulation and then combine the images into a video (each image is a frame). Image manipulation is easy. I'm usi
Solution 1:
First install ffmpeg using the following command: sudo apt install ffmpeg
import osos.system("ffmpeg -f image2 -r 1/5 -i ./images/swissGenevaLake%01d.jpg -vcodec mpeg4 -y ./videos/swissGenevaLake.mp4")
Details:
The aforementioned code creates a video from three images file, stored in the images folder. Each image plays for 5 seconds in the video (because of the argument: -r 1/5). The three files names are: "swissGenevaLake1.jpg", "swissGenevaLake2.jpg" and "swissGenevaLake3.jpg" in images folder.
Hope this helps.
Solution 2:
Use OpenCV and python binding. There is cv.WriteFrame
function. Similar question and answer
Solution 3:
You could use Popen just to run the ffmpeg in a subprocess.
Solution 4:
If u have a folder of images to be framed as video. You can tune the parameters and arrange the frames in sorted manner.
import cv2
import os
from tqdm import tqdm
import glob
#TODO
image_folder = '<Enter your target frames folder here>/*'
video_name = 'Dir to store the video'#save as .avi#is changeable but maintain same h&w over all frames
width=640
height=400#this fourcc best compatible for avi
fourcc = cv2.VideoWriter_fourcc('M','J','P','G')
video=cv2.VideoWriter(video_name,fourcc, 2.0, (width,height))
for i in tqdm((sorted(glob.glob(image_folder),key=os.path.getmtime))):
x=cv2.imread(i)
video.write(x)
cv2.destroyAllWindows()
video.release()
Post a Comment for "Python Image Frames To Video"