1

ウェブカメラ (Logitech c210) からビデオをキャプチャし、そこからビデオ ファイルを作成しようとしています。

これは Raspbian Wheezy 2013-05-25 にあります。

カメラのライトが約 30 秒間点灯しますが、ファイルは作成されません。OpenCVウィンドウにWebカメラを表示しました。

スクリプトは -1 パラメータを使用して Windows で動作するため、これはコーデックの問題でしょうか?

もしそうなら、Raspberry Pi に推奨されるコーデックはありますか?

mpeg2 コーデックを購入した場合、動作しますか?

試したコーデックをリストしましたが、どれも機能しません。

スクリプトは次のとおりです。

import cv2
import time

def InitialiseCamera():
    camera = cv2.VideoCapture(0)
    if camera is None:
        print('Warning: unable to access camera')
    else:
        print('initialized camera')
    return camera

def InitialiseWriter():
    fps = 5
    size = (640, 480)
    destinationFile = 'video.avi'

    # These are the codecs I've tried so far
    codec = cv2.cv.CV_FOURCC('I','4','2','0')
    #codec = cv2.cv.CV_FOURCC('A','V','C','1')
    #codec = cv2.cv.CV_FOURCC('Y','U','V','1')
    #codec = cv2.cv.CV_FOURCC('P','I','M','1')
    #codec = cv2.cv.CV_FOURCC('M','J','P','G')
    #codec = cv2.cv.CV_FOURCC('M','P','4','2')
    #codec = cv2.cv.CV_FOURCC('D','I','V','3')
    #codec = cv2.cv.CV_FOURCC('D','I','V','X')
    #codec = cv2.cv.CV_FOURCC('U','2','6','3')
    #codec = cv2.cv.CV_FOURCC('I','2','6','3')
    #codec = cv2.cv.CV_FOURCC('F','L','V','1')
    #codec = cv2.cv.CV_FOURCC('H','2','6','4')
    #codec = cv2.cv.CV_FOURCC('A','Y','U','V')
    #codec = cv2.cv.CV_FOURCC('I','U','Y','V')
    #codec = -1

    video  = cv2.VideoWriter(destinationFile, codec, fps, size, True);
    if video is None:
        print('Warning: unable to create video writer')
    else:
    print('initialized writer')
    return video

def CaptureVideo(c,w):
i = 0
    while i<150:
        i+=1
        f,img = c.read()
        try:
            w.write(img)
        except:
            print "Unexpected error: ", sys.exec_info()[0]
    print('complete')
    c.release()

if __name__ == '__main__':    
    cam = InitialiseCamera()
    writer = InitialiseWriter()
    CaptureVideo(cam,writer)
4

3 に答える 3

1

この答えが遅すぎない場合は、試してください

CV_FOURCC('M','P','E','G')

Raspbianで私のために働きます。ただし、5 fps はおそらくサポートされていません。

于 2014-02-08T06:21:56.867 に答える
1

最終的に、すべての fourcc コーデックを試してみましたが、どれも機能しませんでした。

mpeg2 コーデックと同じです。

最終的に avconv を使用して、次の行でビデオを作成およびキャプチャしました。

import os
os.system("avconv -f video4linux2 -input_format mjpeg -i /dev/video0 output.avi")

os.system() は端末コマンドを実行するために使用されます。

OpenCV は、後でビデオ ファイルを処理するために引き続き使用できます。

これが誰かに役立つことを願っています。

于 2013-06-30T03:00:41.277 に答える
0

Pi での OpenCV の使用に関するチュートリアルを確認してください。

http://thinkrpi.wordpress.com/2013/05/22/opencv-and-camera-board-csi/

于 2014-02-17T20:48:11.343 に答える