GStreamer API学习记录(四)

GStreamer API学习记录(四)

基于IMX开发板nxp提供了基于硬件IPU等的gst元件供使用,源码
用imxg2dcompositor混流。

调试使用的pipeline

imxg2dcompositor name=c background-color=0xff border-alpha=0 \
sink_0::xpos=150 sink_0::ypos=0 sink_0::width=384 sink_0::height=288 sink_0::zorder=55 \
sink_0::fill_color=0x00ff00ff sink_0::alpha=0.7 sink_0::rotation=0 \
sink_1::xpos=0 sink_1::ypos=0 sink_1::width=640 sink_1::height=480 ! \
queue2 ! video/x-raw, width=640, height=480,format=RGBA ! \
glupload ! qmlglsink sync=false  show-preroll-frame=false name=qmlsink \
imxv4l2videosrc device=/dev/video0 ! hzncchytransform pseudo-color=1 ! \
video/x-raw, width=384,height=288,format=RGBA,pixel-aspect-ratio=1/1 !c.sink_0 \
imxv4l2videosrc device=/dev/video1 ! c.sink_1

用IPU混合流后,输出两路流:appsink用来处理温度数据回调、qmlglsink用来显示混合后的图像

imxg2dcompositor name=c background-color=0x000000 border-alpha=0 \
sink_0::xpos=0 sink_0::ypos=0 sink_0::width=320 sink_0::height=480 sink_0::zorder=55 \
sink_0::fill_color=0xff00ff00 sink_0::alpha=0.7 sink_0::rotation=0 \
sink_1::xpos=320 sink_1::ypos=0 sink_1::width=640 sink_1::height=480 ! \
queue2 ! video/x-raw, width=640, height=480,format=RGBA ! \
glupload ! qmlglsink sync=false  show-preroll-frame=false name=qmlsink \
imxv4l2videosrc device=/dev/video0 ! tee name=t ! queue ! hzncchytransform pseudo-color=1 ! \
video/x-raw, width=384,height=288,format=RGBA,pixel-aspect-ratio=1/1 ! c.sink_0 \
t. ! queue ! appsink name=myappsink \
imxv4l2videosrc device=/dev/video1 ! c.sink_1

命令直接运行:

gst-launch-1.0   \
imxg2dcompositor name=c background-color=0x000000 border-alpha=0 \
sink_0::xpos=0 sink_0::ypos=0 sink_0::width=320 sink_0::height=480 sink_0::zorder=55 \
sink_0::fill_color=0xff00ff00 sink_0::alpha=0.7 sink_0::rotation=0 \
sink_1::xpos=320 sink_1::ypos=0 sink_1::width=640 sink_1::height=480 ! \
queue2 ! video/x-raw, width=640, height=480,format=RGBA ! \
overlaysink \
imxv4l2videosrc device=/dev/video0 ! tee name=t ! queue ! hzncchytransform pseudo-color=1 ! \
video/x-raw, width=384,height=288,format=RGBA,pixel-aspect-ratio=1/2 ! c.sink_0 \
t. ! queue ! fakesink  \
imxv4l2videosrc device=/dev/video1 ! c.sink_1

imxg2dcompositor元件

gstreamer1.0 (1.12.2) + imx_plugin
其中imx_plugin为nxp最新的plug-imx编译出来的,支持zero-copy和imxg2dcompositor特性;
我使用的plug-imx源码地址为:gstreamer-imx-master

hzncchytransform元件

其中hzncchytransform元件为自己编写的插件用来处理红外的特殊数据,tee用来分离红外温度数据和8位灰度图像数据。

详细参考:
自定义插件

posted @ 2021-02-22 14:34  wuya178  阅读(430)  评论(0)    收藏  举报