1
내 프로젝트에서 객체 인식을 위해 새로운 Logitech 카메라 c920을 사용하고 있습니다.
내 카메라는 H264 코덱을 지원할 수 있으며 H264 HD 출력을 표시 할 수 있습니다.
하지만 OpenCV 명령어를 사용하여 H264 디코드 스트림 을 넣으려면 아래 코드에서 H264로 코덱 유형을 설정할 수 있습니다. REF :H264 코덱을 사용한 OpenCV VideoCapture
나는 논리 아래 사용하여 비디오를 캡처하고 this link
#include "opencv2/opencv.hpp"
using namespace cv;
int main(int, char**)
{
VideoCapture cap(0); // open the default camera
if(!cap.isOpened()) // check if we succeeded
return -1;
for(;;)
{
Mat frame;
cap >> frame; // get a new frame from camera
imshow("display", frame);
if(waitKey(30) >= 0) break;
}
// the camera will be deinitialized automatically in VideoCapture destructor
return 0;
}
당신은 메모리로 인코딩하거나 FOURCC 코드로'VideoWriter' 클래스를 생성하기 위해'imencode'를 사용할 수 있습니다. 그러나 많은 미리 컴파일 된 openCV 배포판은 내가 아는 한 H.264 인코딩을 지원하지 않으므로 x264 라이브러리가 활성화 된 상태에서 스스로 컴파일해야 할 수도 있습니다. – Micka
아 ... 질문을 다시 읽으십시오. 나는'cap >> frame'이 이미 DECODED 이미지를 전달하고 있다고 확신합니다. 인코딩하거나 인코딩 된 스트림을 카메라에서 직접 가져 오시겠습니까? 나는 openCV 함수로 가능하다고 생각하지 않는다. 카메라 드라이버가 피팅 메소드를 제공 할까? – Micka
재생을위한 Micka에게 감사드립니다. cap >> 프레임이 FFMPEG 코덱을 사용하여 내부적으로 디코딩되었으므로 같은 사실을 알게되었습니다. 다른 코덱을 명시 적으로 사용할 필요가 없습니다. Logitech 카메라에서 원시 데이터를 캡처하는 방법을 알고 있습니까? 정상적인 비트 스트림 안에 저장되어 ?? – Ashwin