从单个帧创建视频

时间:2018-09-26 06:27:46

标签: opencv computer-vision cv2

我能够成功地将视频拆分为组成的图像帧,并使用keras RESNet50模型对其进行了分析。我还能够将预测的叠加层添加到这些单独的图像中。现在,我想通过将这些经过处理的带有叠加层的图像放回mp4文件中来重新创建原始视频。

如何按顺序从单个jpg图像帧创建视频?

我正在尝试使用cv2.VideoWriter将这些图像写回到单独的视频文件中。

uname -a给了我以下输出

  

Linux myhost 4.15.0-1023-azure#24〜16.04.1-Ubuntu SMP 8月29日星期三   12:54:36 UTC 2018 x86_64 x86_64 x86_64 GNU / Linux

我的前11帧通过frame-0011.jpg命名为frame-0000.jpg

2 个答案:

答案 0 :(得分:3)

最简单的方法是在终端机中使用ffmpeg

ffmpeg.exe -f image2 -r 30 -i frame-%04d.jpg -codec:v libx264 -crf 23 video.mp4

答案 1 :(得分:1)

  

如何按顺序从单个jpg图像帧创建视频?

您可以使用此代码从jpg图像逐帧创建视频。这些图像将从该脚本所在的文件夹中读取。

import cv2 #Import of openCV library
import os 
#Create video, with name 'video.mp4', MP4 codec, 60 fps, width 1280 and height of 1024
video = cv2.VideoWriter('video.mp4',cv2.VideoWriter_fourcc(*'MP4V'),60,(1280,1024))
for file in os.listdir('./'): #List every file in this folder
    if ".jpg" in file: #Filter only jpg files
        image = cv2.imread(file) #Load image from disk
        video.write(image) #Put image into video.
video.release() #Save video to disk.

您可以修改此代码,以从应用程序或某个数组中加载图像。

编辑:添加了评论