前言
最近项目需要,需要在视频流上叠加一些自己的东西,基于C去操作yuv数据来实现又好麻烦(虽然项目之前一些简单叠加是通过这样来实现的,再有appsrc通道来转换为视频流),不重复造轮子了,在网上找找有没有现成的东西可以用,最终GStreamer里面找到了textoverlay和gdkpixbufoverlay 这两个遮罩控件。
textovelray
我们首先在终端下利用gst-inspect工具查看textoverlay插件的用法
gst-inspect-1.0 textoverlay
内容过多这里就不过多展示了,可以自行输入细看,通过这个我们知道可以用它来实现在视频流上插入text文本,具体要什么效果就看你的使用啦,要多么花里胡哨就看你的本事了。
下面贴一个使用效果
gst-launch-1.0 videotestsrc ! video/x-raw,width=640,height=480 ! textoverlay text="Towel ROll GStreamer textoverlay" ! videoconvert ! autovideosink
可以通过修改Element Properties 来实现想要的效果。
gdkpixbufoverlay
gst-inspect-1.0 gdkpixbufoverlay
gst-launch-1.0 videotestsrc ! gdkpixbufoverlay location=Desktop/1.jpg overlay-height=100 overlay-width=100 alpha=0.8 ! videoconvert ! autovideosink
总结
更多的用法可以自己研究,还是挺方便的这两个插件,可以实现很多功能。
gst-launch-1.0 videotestsrc ! textoverlay text="GoodBye" ! gdkpixbufoverlay location=Desktop/1.jpg overlay-height=100 overlay-width=100 alpha=0.8 ! videoconvert ! autovideosink