【发布时间】:2014-12-10 02:36:09
【问题描述】:
我正在为我的项目使用新的罗技相机 c920 进行物体识别。
我的相机可以支持 H264 编解码器,并且可以显示 H264 高清输出。
但是我如何在下面的代码中将 CODEC 类型设置为 H264 以输出为 H264 DECODED STREAM
通过使用 OpenCV 指令。
我正在使用以下逻辑捕获视频:ref: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;
}
【问题讨论】:
-
您可以使用
imencode编码到内存或使用FOURCC 代码创建VideoWriter类。但据我所知,许多预编译的 openCV 发行版不支持 H.264 编码,因此您可能必须在启用 x264 库的情况下自行编译。 -
啊...再次阅读您的问题...我很确定
cap >> frame已经提供解码图像。您想对其进行编码还是想直接从相机获取编码流?我认为使用 openCV 函数是不可能的,也许你的相机驱动程序给了你合适的方法?!? -
感谢 Micka 的重播。我现在知道 cap>>frame 是使用 FFMPEG 编解码器在内部解码。所以不需要显式使用其他编解码器。你知道如何捕获来自罗技相机的原始数据并存储在普通比特流中??
-
抱歉没有使用这些摄像头的经验