Python JPEG到电影

Python JPEG到电影,python,image,video,Python,Image,Video,我正在寻找一种方法来连接一个目录的图像文件,例如,JPEG到电影文件MOV,MP4,AVI与Python。理想情况下,这还允许我从该目录中获取多个JPEG,并将它们粘贴到一个网格中,该网格是电影文件的一帧。哪些模块可以实现这一点?您可以使用,尤其是a模块可能可以完成这项工作。根据我对该文件的理解,以下内容将满足您的要求: w = cvCreateVideoWriter(filename, -1, <your framerate>, &

我正在寻找一种方法来连接一个目录的图像文件,例如,JPEG到电影文件MOV,MP4,AVI与Python。理想情况下,这还允许我从该目录中获取多个JPEG,并将它们粘贴到一个网格中,该网格是电影文件的一帧。哪些模块可以实现这一点?

您可以使用,尤其是a模块可能可以完成这项工作。根据我对该文件的理解,以下内容将满足您的要求:

w = cvCreateVideoWriter(filename, -1, <your framerate>, 
                        <your frame size>, is_color=1)

请注意,我没有尝试过这段代码,但我认为我的想法是正确的。请告诉我它是否有效。

这是一个精简版的脚本,我从一个视频中提取了帧,并对其进行了修改,然后将代码取出,写入另一个视频。也许会有帮助

import cv2

fourcc = cv2.cv.CV_FOURCC(*'XVID')
out = cv2.VideoWriter('out_video.avi', fourcc, 24, (704, 240))

c = cv2.VideoCapture('in_video.avi')

while(1):
  _, f = c.read()
  if f is None:
    break

  f2 = f.copy() #make copy of the frame
  #do a bunch of stuff (missing)

  out.write(f2)  #write frame to the output video

out.release()
cv2.destroyAllWindows()
c.release()

如果您有一组图像,将它们装入循环,然后将一个图像接着一个图像写入您的视频。

解决方案使用python并生成电影文件对您来说真的很重要吗?或者这些只是您对解决方案的期望


如果您只想将一组jpeg文件作为电影播放,您可以通过转到并使用鼠标从硬盘中选择图像文件来做到这一点,而无需使用python或将计算机与.avi/.mov/mp4文件混在一起。电影将在您的Web浏览器中播放。

我终于进入了一个项目的工作版本,这让我陷入了这个问题。 现在我想用我学到的知识来贡献自己。 这是我的解决方案,用于获取当前目录中的所有图片,并将其转换为视频,然后集中在黑色背景中,因此此解决方案适用于不同大小的图像

导入glob 进口cv2 将numpy作为np导入 所需尺寸=800600 滑动时间=每张图像5秒 FPS=24 fourcc=cv2.VideoWriter.fourcc*'X264' writer=cv2.VideoWriter'output.avi',fourcc,FPS,所需大小 对于glob.iglob'*.jpg'中的文件名: img=cv2.imreadfile\u名称 调整图像大小以适合所需大小 高度、宽度、形状 比例=所需尺寸[0]/宽度,所需尺寸[1]/高度 新尺寸=宽度*比例,宽度*比例 img=cv2.resizeimg,新尺寸 将图像集中在具有所需大小的黑色边框中 target_size_img=np.zerosDESIRED_size[1],DESIRED_size[0],3,dtype='uint8' 宽度\u偏移=所需的\u大小[0]-新的\u大小[0]//2 高度\u偏移=所需的\u大小[1]-新的\u大小[1]//2 目标尺寸img[高度偏移:高度偏移+新尺寸[1], 宽度偏移:宽度偏移+新尺寸[0]=img 对于uu范围内的幻灯片u时间*FPS: writer.writeTargetGet\u size\u img 作家释放
使用libavfilters构建的ffmpeg应该能够做到这一点,easilymencoder也很容易使用subprocess调用,这正是chronolapse实现图像到电影,而不是图像到网格到电影的方式。您可以使用PIL先创建复合网格图像,然后以相同的方式将它们编译成电影。断开的超行到VideoWriter参考。可能会转到openCV源代码,而不是第三方。@EngrStudent感谢您的报道。固定的
import cv2

fourcc = cv2.cv.CV_FOURCC(*'XVID')
out = cv2.VideoWriter('out_video.avi', fourcc, 24, (704, 240))

c = cv2.VideoCapture('in_video.avi')

while(1):
  _, f = c.read()
  if f is None:
    break

  f2 = f.copy() #make copy of the frame
  #do a bunch of stuff (missing)

  out.write(f2)  #write frame to the output video

out.release()
cv2.destroyAllWindows()
c.release()