5
我有一個支持UYVU編解碼器視頻錄製的e-con系統的相機。當我使用自己的軟件(QTCam)錄製視頻時,它會使用YUY2編解碼器以avi格式錄製視頻,該視頻將在VLC中完美顯示並運行。在Opencv的UYVY編解碼器中錄製視頻
現在,我試圖通過opencv實現VideoWrtiter錄製視頻()。 我用這個命令來設置Camera屬性來讀取UYVY Codec視頻。
camera1.set(CV_CAP_PROP_FOURCC,CV_FOURCC('U','Y','V','Y'));
並且還使用VideoWriter以AVI文件格式記錄視頻。
video1.open("/home/camera1UYVY.avi",CV_FOURCC('Y','U','Y','2'),30,s1,true);
來自相機的信息正在工作,我用imshow()進行了檢查。但錄製的視頻不能在VLC中播放,因爲它可以用於從QTCam錄製的視頻。
即使記錄所記錄的OpenCV具有相同的編解碼器
我的代碼低於
#include <opencv2/core/core.hpp>
#include <opencv2/video/video.hpp>
#include <opencv2/imgcodecs/imgcodecs.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/videoio/videoio.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main(int argc, char **argv) {
VideoCapture camera1;
Mat frame1;
camera1.open(0);
camera1.set(CV_CAP_PROP_FOURCC,CV_FOURCC('U','Y','V','Y'));
camera1.set(CV_CAP_PROP_FRAME_WIDTH,1280);
camera1.set(CV_CAP_PROP_FRAME_HEIGHT,720);
cout << "FPS:" << camera1.get(CV_CAP_PROP_FPS) << endl;
camera1.set(CV_CAP_PROP_FPS,30);
cout << "FPS:" << camera1.get(CV_CAP_PROP_FPS) << endl;
cout << "Camera -1 Codec: " << (int)camera1.get(CV_CAP_PROP_FOURCC) << endl;
VideoWriter video1;
cout << camera1.get(CV_CAP_PROP_FRAME_WIDTH) << endl;
cout << camera1.get(CV_CAP_PROP_FRAME_HEIGHT) << endl;
Size s1 = Size((int)camera1.get(CV_CAP_PROP_FRAME_WIDTH),(int)camera1.get(CV_CAP_PROP_FRAME_HEIGHT));
video1.open("/home/camera1UYVY.avi",CV_FOURCC('Y','U','Y','2'),30,s1,true);
while(!camera1.isOpened()){
cout << "Camera not opened" << endl;
continue;
}
while(1){
if(!video1.isOpened()){
cout << "Error opening video" << endl;
}
camera1.read(frame1);
imshow("Display1",frame1);
video1.write(frame1);
cout << frame1.data << endl;
if(waitKey(1) == 27){
break;
}
}
video1.release();
camera1.release();
return 0;
} 請告訴我,我要去哪裏錯了。我想從相機錄製未壓縮的視頻並將其保存爲視頻文件(可在VLC或任何其他視頻播放器中打開)
不知道如果我明白這一點 - 但我不是視頻專家。你似乎在閱讀「UYVY」數據並寫出完全相同的未經修改的數據,並突然聲稱它是'YUY2' ...? –
實際上,我正在閱讀UYVY數據並使用UYVY編寫Avi文件,並使用YUV2編解碼器。兩者都給出了相同的結果。它不在任何媒體播放器上播放。 –
我會先檢查一下CAP_PROP_FORMAT和CAP_PROP_CONVERT_RGB的設置。 – zeFrenchy