2012-05-10 2 views
0

Я пытаюсь захватить кадры с веб-камеры, а затем записывать их в видео. Он работает, и видео показывает что-то, но оно бесполезно.OpenCV: Написание видео с камеры, странные результаты (Python и Mac)

Здесь вы можете увидеть пример видео я получаю:

The kind of video I get

Сценарий довольно большой, поэтому я постараюсь подобрать соответствующие части для этой проблемы:

import cv 
capture = cv.CaptureFromCAM(1) # from webcam 
frame = cv.QueryFrame(capture) 
newvideo = 'Videos/%d_%d_%d_%d_%d_%d.avi' % (localtime()[0],localtime()[1],localtime()[2],localtime()[3],localtime()[4],localtime()[5]) 
video = cv.CreateVideoWriter(newvideo, cv.CV_FOURCC('D','I','V','X'), 30, cv.GetSize(frame), 1) 

while(1): 
frame = cv.QueryFrame(capture) 
cv.WriteFrame(video, frame) 
key = cv.WaitKey(int((1/30.)*1000)+1) 

ответ

1

Совет: начните кодирование в защищенном режиме и проверьте возврат сделанных вами звонков. Например:

video = cv.CreateVideoWriter(newvideo, cv.CV_FOURCC('D','I','V','X'), 30, cv.GetSize(frame), 1)  
if not video : 
    print "Error in creating video writer" 
    sys.exit(1) 

Это может быть проблема, связанная с кодеком, поэтому постарайтесь, чтобы создать видео с other codecs:

video = cv.CreateVideoWriter(newvideo, cv.CV_FOURCC('F','L','V','1'), 30, cv.GetSize(frame), 1) 

Это может быть хорошей идеей, чтобы обновить те, которые вы уже установлены.

+0

Я пробовал все комментарии и получал такой же выход. Он не возвращает ошибку. Я обновил свои кодеки, используя «perian pack» или даже официальный пакет Divx, и тот же вывод. Так что я думаю, что я что-то делаю неправильно. –

Смежные вопросы