我能够成功地将视频拆分为组成的图像帧,并使用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
答案 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.
您可以修改此代码,以从应用程序或某个数组中加载图像。
编辑:添加了评论