当前位置: 首页 > 知识库问答 >
问题:

用罗技C920在OpenCV上捕获H264

荣沈义
2023-03-14

我一直在尝试用OpenCV(在Raspberry Pi 2上)从我的两台C920罗技相机捕获一个H264流。我得出的结论是,这是不可能的,因为它还没有执行。我在opencv/modules/highgui/cap_libv4l.cpp中看了一下,发现“videocapture-function”总是将pixelformat转换为bgr24。我试着把这个改成h264,但只得到了黑屏。我想这是因为它没有被正确地解码。

所以我做了一个变通方法:

    null

我使用的gstreamer命令是:

gst-launch-0.10 rtspsrc location=rtsp://admin:pi@127.0.0.1:8554/unicast!解码器!v4l2sink设备=/dev/video4

或者你知道我会在opencv highgui代码中做些什么,以便能够直接从我的设备中捕获h264,而不需要使用虚拟设备吗?那就太棒了!

    null

共有1个答案

仲孙子辰
2023-03-14

我不知道您需要在OpenCV中更改哪些地方,但最近我开始在Raspberry PI上使用视频进行编码。

我会和你分享我的发现。

到目前为止我得到的是:

    null
    device.streamON();
    v4l2_buffer bufferQueue;
    while (!exit_requested){
        //capture code
        device.dequeueBuffer(&bufferQueue);
        // use the h264 buffer inside bufferPtr[bufferQueue.index]
        ...
        device.queueBuffer(bufferQueue.index, &bufferQueue);
    }
    device.streamOFF();

使用OpenMax IL解码h264:

     BroadcomVideoDecode decoder;
     while (!exit_requested) {
        //capture code start
        ...
        //decoding code
        decoder.writeH264Buffer(bufferPtr[bufferQueue.index],bufferQueue.bytesused);
        //capture code end
        ...
    }
 类似资料:
  • 硬件: 1.树莓派2 2.树莓派相机 软件: 1。OpenCV 2.4。11 2。用C语言编程 我有以下简单的代码,可以从摄像机捕获视频并在窗口中显示 帧大小始终为640 x 480,尝试更改帧的宽度和高度(如注释行所示)没有帮助,并且保持为640 x 480。 我正在寻找一种方法,将帧的宽度和高度从我的代码(而不是外壳)更改为1920 x 1080 如果可以通过OpenCV或V4l2驱动程序完成

  • 在OpenCV上使用class VideoCapture时如何旋转摄像头?(Android上的人脸检测示例)。我正在旋转画布: 但摄像机的图像并没有旋转:人脸检测不起作用。 摄像头从以下位置接收流: 我做了以下更新: 但这是行不通的。当我以portret方向运行程序时(在android设备上)——当我以横向方向运行程序时,程序不会启动——程序工作,但当我旋转设备时,程序工作,但显示屏上的图像不会旋

  • 我尝试用全高清分辨率的罗技C920摄像头捕捉视频。它提供30 fps与此分辨率。 它以30 fps的速度与windows摄像头应用程序配合使用,但无论我如何尝试,我都无法通过opencv videoCapture获得这种fps速度。 注意:我使用windows 10和vs15。我尝试了不同的usb端口,opencv版本和编解码器。结果是相同的,〜5 fps。 我测量fps忽略前10帧。下面是我的计

  • 我正在使用Python 2.7和OpenCV 2.4。9 我需要捕获显示给用户的当前帧,并将其加载为Python中的cv::Mat对象。 你们知道一种快速递归的方法吗? 我需要像下面的例子中所做的那样,从网络摄像头递归地捕获Mat帧: 在本例中,它使用了VideoCapture类来处理从网络摄像头捕获的图像。 用视频捕捉。read()新帧总是被读取并存储到Mat对象中。 我可以将“打印屏幕流”加载

  • 我正在尝试通过使用open CV连接cp plus ip camera到我的应用程序。我试了很多方法来捕捉画面。帮助我捕捉帧使用“RTSP”协议。IP cam的URL是“rtsp://admin:admin@192.168.1.108:554/videoinput/1/mpeg4/1”。我用VLC播放器试过这个。起作用了。如果有方法通过libvlc捕获帧并传递到open CV中,请提及该方法。

  • 我正试图从IP摄像机实时捕捉图像。该流在VLC中工作得非常好,但是OpenCV的似乎混淆并损坏了传入的图像,以至于无法识别。 同样,从文件捕获工作很好,但不是实时流。如果它有不同,我使用rtsp连接URL;我也尝试了两个不同型号的相机(不同品牌),问题仍然存在。 此外,(我假设)编解码器正在输出以下几种错误:和。 我能做什么?