gpt4 book ai didi

raspberry-pi - 如何让 Gstreamer1.0 与 v4l2 raspicam 驱动程序一起工作

转载 作者:行者123 更新时间:2023-12-04 05:15:59 24 4
gpt4 key购买 nike

在过去的 4 天里,我试图让 gstreamer1.0 与适用于 Raspberry Pi 相机的 v4l2 驱动程序一起工作,但没有成功。

我正在运行最新的 Raspbian 镜像(从 19.9.2014 开始),并启用了 raspicam。
Raspicam bcm2835_v4l2 驱动程序使用 modprobe 命令启动并成功测试,均使用 qv4l2 gui 界面(预览版工作正常),以及直接从设备使用 dd 命令:

dd if=/dev/video0 of=test.jpeg count=1 bs=11M

Gstreamer 也可以使用基本的“Hello world”命令正常工作:
gst-launch-1.0 videotestsrc ! ximagesink

但是,我无法弄清楚如何使用 Gstreamer 从 v4l2 raspicam 源成功显示视频预览(使用一些基本的接收器,如 ximagesink 或 autovideosink)。

以下管道都没有工作(对不起,如果其中一些完全是胡说八道,我是 gstreamer 菜鸟):
  • 将 v4l2-ctl 像素格式设置为 H264(这就是“v4l2-ctl -V”命令返回的内容)我尝试过:
    gst-launch-1.0 v4l2src device=/dev/video0 ! 'video/x-h264,width=640,height=480,framerate=25/1' ! h264parse ! omxh264dec ! videoconvert ! ximagesink
    gst-launch-1.0 v4l2src device=/dev/video0 ! 'video/x-h264,width=640,height=480,framerate=25/1' ! h264parse ! omxh264dec ! videoconvert ! autovideosink
  • 将 v4l2-ctl 像素格式设置为 YU12(4:2:0,打包 YUV)我尝试过:
    gst-launch-1.0 v4l2src device=/dev/video0 ! autovideosink
    gst-launch-1.0 v4l2src device=/dev/video0 ! ximagesink

  • 所以上述命令都不起作用,摄像头 LED 没有打开并且 gstream 返回:
    Setting pipeline to PAUSED ...
    Pipeline is live and does not need PREROLL ...
    Setting pipeline to PLAYING ...
    New clock: GetSystemClock
    glGetError 0x505
    ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data flow error
    Additional debug info:
    gstbasesrc.c(2865): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
    streaming task paused, reason error (-5)
    Execution ended after 0:00:16.843337147
    Setting pipeline to PAUSED ...
    Setting pipeline to READY ...
    Setting pipeline to NULL ...
    Freeing pipeline ...

    请告诉我通过 Gstreamer 获得基本预览的正确方向。

    我的最终目标是让 raspicam/gstreamer 与 Python/Pyside/Phonon 一起工作

    编辑:
    “xvinfo”命令告诉我“没有适配器存在”并且 xvimagesink 从一开始就无法工作。我不确定这是否与问题有关。
    Raspbian 正在运行 X.Org 版本 1.12.4

    最佳答案

    似乎在 raspicam v4l2 驱动程序和 gstreamer 之间同意支持的分辨率时存在错误。您可以在官方RasPi forum上找到更多信息.
    感谢 Raspberry Pi Foundation 的优秀开发人员,还有一个解决方法/修复程序。

    加载驱动程序时,只需添加“gst_v4l2src_is_broken=1”标志,如下所示:

    sudo modprobe bcm2835-v4l2 gst_v4l2src_is_broken=1

    希望这也能帮助其他人。

    关于raspberry-pi - 如何让 Gstreamer1.0 与 v4l2 raspicam 驱动程序一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25941171/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com