2015-07-28 41 views
1

我是新手opencv及其開發。我正在使用相機供稿,並將該供稿轉換爲AVI格式的視頻文件。當我嘗試使用VLC播放器打開該文件時。沒有任何東西顯示給我。請在下面找到我使用的代碼。任何幫助表示讚賞。(文件被寫入文件,但我認爲它與文件格式的問題)Mac OS X打開cv寫入視頻文件。錯誤

int main(int argc, char** argv){ 


     VideoCapture vcap(0); 
    if(!vcap.isOpened()){ 
     cout << "Error opening video stream or file" << endl; 
     return -1; 
    } 

    // VideoWriter video("/Users/venushka/Desktop/pre/ou.avi",vcap.get(CV_CAP_PROP_FOURCC),vcap.get(CV_CAP_PROP_FPS), 
        // cv::Size(vcap.get(CV_CAP_PROP_FRAME_WIDTH), vcap.get(CV_CAP_PROP_FRAME_HEIGHT))); 

    const int fps = 30.0; 
    vcap.set(CV_CAP_PROP_FPS, fps); 


    VideoWriter video("/Users/venushka/Desktop/pre/ou.avi", vcap.get(CV_CAP_PROP_FOURCC), fps, 
         cv::Size(vcap.get(CV_CAP_PROP_FRAME_WIDTH), vcap.get(CV_CAP_PROP_FRAME_HEIGHT))); 

    for(;;){ 

     Mat frame; 
     vcap >> frame; 
     video.write(frame); 
     imshow("Frame", frame); 
     char c = (char)waitKey(33); 
     if(c == 27) break; 
    } 
return 0; 
    } 

image of video file

回答

0

CV_CAP_PROP_FPS僅適用於視頻,據我所知,從相機返回0。

手動設置你的FPS如下:

const int fps = 30.0; 
vcap.set(CV_CAP_PROP_FPS, fps); 

VideoWriter video("<path to avi>", vcap.get(CV_CAP_PROP_FOURCC), fps, 
        cv::Size(vcap.get(CV_CAP_PROP_FRAME_WIDTH), vcap.get(CV_CAP_PROP_FRAME_HEIGHT))); 
+0

對不起,仍然沒有工作。我處理的上限無法通過VLC播放器打開。謝謝。 –

+0

我在我的iMac上試過了,它能正常工作。高度和寬度> 0? –