如何从一组图像中编写电影的脚本?

时间:2009-06-03 14:54:29

标签: python macos video

我设法使用Python加载了一组图像。

我希望我的脚本能够拍摄这一系列图像(以我需要的任何格式),并从中创建视频。所有这一切的最大限度是我正在寻找一些简单易用的安装方法。理想情况下,使用标准OS X安装过程:

  • 下载.dmg
  • 点击
  • 进入应用程序文件夹

我不想花费很多精力来安装视频编辑程序。只是简单易用的东西。


问题

  1. 我的目标是什么格式?我需要我的视频可以在Linux,Mac和Windows系统上播放。图像是图形,所以我们说的是谨慎的图像,而不是照片。压缩它应该很容易。将有大约1000张图片,所以这将是一部短片。

  2. 我应该使用哪些工具制作实际视频?我需要使用为此目的设计的库直接从Python中执行此操作,或者通过脚本编写从Python调用的命令行工具。

3 个答案:

答案 0 :(得分:21)

如果您不反对使用命令行,则可以使用ImageMagick包中的convert命令。它适用于Mac,Linux,Windows。请参阅http://www.imagemagick.org/script/index.php

它支持大量图像格式,您可以将电影输出为mpeg文件:

convert -quality 100 *.png outvideo.mpeg

或用作上传到网页的GIF动画:

convert -set delay 3 -loop 0 -scale 50% *.png animation.gif

此处提供了convert命令的更多选项:ImageMagick v6 Examples - Animation Basics

答案 1 :(得分:9)

您可以使用OpenCV。它可以安装在Mac上。此外,它还有python interface

我稍微修改了从here获取的程序,但不知道它是否编译,并且无法检查它。

import opencv
from opencv.cv import *
from opencv.highgui import *

isColor = 1
fps     = 25  # or 30, frames per second
frameW  = 256 # images width
frameH  = 256 # images height
writer = cvCreateVideoWriter("video.avi",-1, 
fps,cvSize(frameW,frameH),isColor)

#-----------------------------
#Writing the video file:
#-----------------------------

nFrames = 70; #number of frames
for i in range(nFrames):
    img = cvLoadImage("image_number_%d.png"%i) #specify filename and the extension
     # add the frame to the video
    cvWriteFrame(writer,img)

cvReleaseVideoWriter(writer) #

答案 2 :(得分:4)

你必须使用python吗?还有其他工具只是为了这些目的而创建的。例如,要使用ffmpeg or mencoder