0

ウェブカメラからフレームを取得して、ビデオに書き込んでいます。それは動作し、ビデオは何かを示していますが、それは役に立たないです。

ここに私が得るビデオの例を見ることができます:

私が得る種類のビデオ

スクリプトは非常に大きいので、この問題に関連する部分を選択してみます。

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 )
4

1 に答える 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)

これはコーデック関連の問題である可能性があるため、他のコーデックでビデオを作成してみてください。

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

インストールしたものを更新することをお勧めします。

于 2012-05-10T16:20:03.893 に答える