Я ищу способ связать каталог файлов изображений (например, JPEG) с файлом видео (MOV, MP4, AVI) с Python. В идеале это также позволило бы мне взять несколько JPEG из этого каталога и «вставить» их в сетку, которая является одним фреймом видеофайла. Какие модули могли бы достичь этого?Python JPEG to movie
ответ
Вы можете использовать Python interface of OpenCV, в частности VideoWriter, возможно, выполнит эту работу. Из того, что я понимаю в док, следующий будет делать то, что вы хотите:
w = cvCreateVideoWriter(filename, -1, <your framerate>,
<your frame size>, is_color=1)
и, в цикле, для каждого файла:
cvWriteFrame(w, frame)
Следует заметить, что я не пробовал этот код, но Я думаю, что я правильно понял. Скажите, пожалуйста, если это сработает.
сломанная гиперлиния на ссылку VideoWriter. Можно перейти к источнику openCV, а не к третьей стороне. – EngrStudent
@EngrStudent Спасибо за отчетность. Исправлена. – agravier
вот вырезанная версия скрипта, который у меня был с кадрами из одного видео, и они меняли их (этот код вынимали) и записывались на другое видео. возможно, это поможет.
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()
Если у вас есть куча изображений, загружать их в цикле и просто написать одно изображение за другим на ваш VID.
Действительно ли вам важно, чтобы решение должно использовать python и производить фильм файл? Или это просто ваши ожидания от того, как будет выглядеть решение?
Если вы хотите просто воспроизвести кучу jpeg-файлов в качестве фильма, вы можете сделать это, не используя python или загромождать ваш компьютер файлами .avi/.mov/mp4, перейдя на vidmyfigs.com и используя вы можете выбрать файлы изображений с жесткого диска. «Видео» воспроизводится в вашем веб-браузере.
'ffmpeg', построенный с помощью libavfilters, должен быть в состоянии сделать это легко – wim
mencoder также достаточно прост для вызова с использованием подпроцесса, так как хронолапс делает именно то, что вы просите (изображения в кино, а не изображения в сетку для фильма). Вы можете использовать PIL для создания композитных изображений сетки сначала, затем скомпилировать их в фильм таким же образом. –