【目的】
硬件平台的视频流混合,方便讲2条视频流或者多条视频流混合输出为一条视频流,输出可以以RTSP形式输出,也可以直接显示LCD,也可以通过qmlglsink给qt的UI显示。
【意义】
使用基于G2D的硬件视频流混合,比纯软件混合(比如gstreamer的videomixer)占用CPU资源要少的多。
【硬件平台】
Imx6q-arm的硬件平台,video0和video1两个摄像头输入,其中video0是红外摄像头,DVP接IPU;video1是OV摄像头,MIPI接IPU;
【系统平台】
kernel4.9.88 + linux文件系统。
【多媒体框架软件】
gstreamer1.0 (1.12.2) + imx_plugin
其中imx_plugin为nxp最新的plug-imx编译出来的,支持zero-copy和imxg2dcompositor特性;
我使用的plug-imx源码地址为:https://github.com/freescale/gstreamer-imx/
其readme.md里面明确说明了其硬件支持的新特性。
【问题抛出-imxg2dcompositor使用局限性】
在板子上使用该元件来做硬件视频融合,如果摄像头为标准摄像头,比如2个都为可见光标准输出格式的摄像头,则可以直接使用,只要摄像头输出格式满足imxg2dcompositor的输入格式需求;
但在本人的需求中,红外摄像头数据是自定义数据格式,每帧数据包含了gray8图像数据和温度数据,这样的场景就需要通过自己写gstreamer元件来实现红外摄像头的图像数

最低0.47元/天 解锁文章
4057





