Как я могу создать сценарий создания фильма из набора изображений? - PullRequest
9 голосов
/ 03 июня 2009

Мне удалось получить набор изображений, загруженных с помощью Python.

Я бы хотел, чтобы мой сценарий взял эту серию изображений (в любом нужном мне формате) и создал из них видео. Большим ограничением во всем этом является то, что я ищу что-то простое и простое в установке. В идеале, используя стандартную процедуру установки OS X:

  • скачать .dmg
  • нажмите
  • перейти в папку приложения

Я не хочу тратить много сил на установку программы для редактирования видео. Просто что-то простое, что работает.


Вопросы

  1. В каком формате я должен стремиться? Мне нужно, чтобы мое видео воспроизводилось в системах Linux, Mac и Windows. Изображения являются графиками, поэтому мы говорим о дискретных изображениях, а не о фотографиях. Это должно быть довольно легко сжать это. Будет около 1000 изображений, так что это будет короткий фильм.

  2. Какие инструменты я должен использовать для создания реального видео? Мне нужно сделать это непосредственно из Python, используя библиотеку, разработанную для этой цели, или с помощью инструментов командной строки, вызываемых из Python.

Ответы [ 3 ]

21 голосов
/ 03 июня 2009

Если вы не против использования командной строки, есть команда convert из пакета ImageMagick. Это доступно для 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 - Основы анимации

9 голосов
/ 03 июня 2009

Вы можете использовать OpenCV. И это может быть установлено на Mac. Кроме того, он имеет интерфейс Python .

Я немного изменил программу, взятую из здесь , но не знаю, компилируется ли она, и не могу ее проверить.

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) #
4 голосов
/ 03 июня 2009

Вы должны использовать Python? Есть и другие инструменты, которые созданы именно для этих целей. Например, чтобы использовать ffmpeg или mencoder .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...