Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有任何方法可以显示摄像头流并在其上绘制一些东西(在linux中)?_Linux_Opengl Es_Arm_Gstreamer - Fatal编程技术网

是否有任何方法可以显示摄像头流并在其上绘制一些东西(在linux中)?

是否有任何方法可以显示摄像头流并在其上绘制一些东西(在linux中)?,linux,opengl-es,arm,gstreamer,Linux,Opengl Es,Arm,Gstreamer,我正在使用飞思卡尔gpu sdk、用于绘图的OpenGLES API和用于ARM架构的摄像头流媒体的Gstreamer API。这是可能的,在我的情况下,他们分开做,但我想知道有没有任何方法来显示相机流,并在它上面画一些东西 提前感谢。飞思卡尔的一些处理器(如imx6)具有多帧缓冲区覆盖(/dev/fb0、/dev/fb1、/dev/fb2,…)。 例如,您可以在fb1上流式传输摄影机内容,并在fb0上绘制。 知道所有这些frambuffer都不是默认激活的 事实上,我并不真正了解X11的行为。

我正在使用飞思卡尔gpu sdk、用于绘图的OpenGLES API和用于ARM架构的摄像头流媒体的Gstreamer API。这是可能的,在我的情况下,他们分开做,但我想知道有没有任何方法来显示相机流,并在它上面画一些东西


提前感谢。

飞思卡尔的一些处理器(如imx6)具有多帧缓冲区覆盖(/dev/fb0、/dev/fb1、/dev/fb2,…)。 例如,您可以在fb1上流式传输摄影机内容,并在fb0上绘制。
知道所有这些frambuffer都不是默认激活的

事实上,我并不真正了解X11的行为。这就是为什么我建议您禁用X11,并在两个帧缓冲区之一上通过openGL DRI(直接渲染基础设施)驱动程序和DRM(直接渲染管理器)使用openGL进行直接渲染,并在另一个帧缓冲区上对相机进行流式渲染。(可能是我错了,如果是这样,我希望其他人会纠正我)

我过去已经面对过这个问题。 我必须用GStreamer流式传输视频,用pango画文本。我做的第一件事是生成一个最小映像(当然启用了GStreamer),但没有任何X11库。对我来说(可能在您的模块上有所不同),GStreamer默认使用/dev/fb1节点,然后我使用/dev/fb0进行pango渲染


经过几次测试后,很容易做到这一点。因此,我也建议您进行测试,尝试不同的方法,尝试不同的事情,我希望它能按照您的意愿工作。

这取决于您具体的根文件系统,但如果您使用的是由Freescale Yocto为I.MX6生成的文件系统,默认配置为/usr/share/vssconfig

在该文件中,您可以指定gstreamer使用的帧缓冲区。默认情况下,/dev/fb0是背景帧缓冲区,/dev/fb1是前景帧缓冲区


在使用cairo over/dev/fb1(mmap/dev/fb1和cairo_image_surface_create_for_data)绘制时,您可以使gstreamer在/dev/fb0中绘制,并使用ioctls()over/dev/fb1控制透明度级别。

谢谢John madieu。检查时,我有两个设备节点,/dev/fb0和/dev/fb1。我正在使用支持X11的映像。据我所知,X11在内部使用/dev/fb0。如果我错了,请纠正我。我想要的东西能用在这张照片上吗?谢谢约翰。您能帮助我将视频定向到/dev/fb1吗?例如,我将如何设置/dev/fb1用于摄影机流媒体,如何设置/dev/fb0用于图形渲染?我对这个完全陌生