python image frames to video

前端 未结 4 1599
长发绾君心
长发绾君心 2021-01-12 03:55

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.

相关标签:
4条回答
  • 2021-01-12 04:00

    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.

    0 讨论(0)
  • 2021-01-12 04:09

    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()
    
    0 讨论(0)
  • 2021-01-12 04:18

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

    0 讨论(0)
  • 2021-01-12 04:22

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

    0 讨论(0)
提交回复
热议问题