python image frames to video

夙愿已清 提交于 2020-01-14 09:09:16

问题


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 using PIL, but for the convert to video part, I'm stuck. I've found pyffmpeg but that just seems to do decoding of videos to frames, not the other way around. Although I may have missed something. I've also heard that pythonMagick (imagemagick wrapper) can do this, but I can't seem to find anything about encoding in the docs.

This is running on a linux server and must be python (since that is what the application is in).

What should I use?


回答1:


Use OpenCV and python binding. There is cv.WriteFrame function. Similar question and answer




回答2:


First install ffmpeg using the following command: sudo apt install ffmpeg

import os
os.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.




回答3:


You could use Popen just to run the ffmpeg in a subprocess.




回答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()


来源:https://stackoverflow.com/questions/5585872/python-image-frames-to-video

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!