1. 程式人生 > >Qt使用opencv呼叫攝像頭錄製視訊並儲存檔案

Qt使用opencv呼叫攝像頭錄製視訊並儲存檔案

首先需要說的是我的筆記本攝像頭是WebCam SCB-0355N,因為按照網上的方法錄製的視訊一直無法開啟,後來想到可能跟攝像頭錄製格式有關,於是用系統自帶的錄製軟體錄製並儲存,發現儲存的是.wmv檔案,編碼格式是WMV2,真的是恍然大悟啊!!把
CV_FOURCC('M','J','P','G')
改為
CV_FOURCC('W','M','V','2')
就可以了,折騰了一天!
關鍵程式碼

    cv::VideoCapture m_cap;
    m_cap.open(0);
    assert(m_cap.isOpened());

    int rate = m_cap.get
(CV_CAP_PROP_FPS); cv::Mat frame; m_cap>>frame; cv::VideoWriter videowriter; videowriter.open("test.wmv",CV_FOURCC('W','M','V','2'),30,cv::Size(frame.cols,frame.rows)); assert(videowriter.isOpened()); char keycode; while ((keycode = cvWaitKey(30))) { if (keycode == 27
) { break; } if (!m_cap.grab()) { break; } m_cap>>frame; videowriter<<frame; } videowriter.release();

如果大家遇到錄製視訊無法開啟的情況,除了檢查程式碼之外,記得考慮下攝像頭的編碼格式。