文章目录
前言
软硬件环境
软件:ubuntu18.04
硬件:PC(笔记本带摄像头)
本文主要介绍如何通过代码来调用gstreamer相关的插件,这里不讨论命令行模式(gst-launch-1.0),将通过一个最简单的应用实例来进行描述如何通过代码来使用gstreamer插件
一、gstreamer pipeline的建立
使用gstreamer的核心就是建立pipeline,pipeline既可以通过命令行来建立,也可以通过编写代码来建立
1.命令行模式建立pipeline
通过命令行模式(gst-launch-1.0 v4l2src ! videoconvert ! waylandsink), 就建立了如下图所示的pipeline,其中source 和 v4l2src对应,filter和videoconvert对应,sink和waylandsink对应,所谓的pipeline就是建立从source element到sink element的数据链路(filter element不是必须的,可以不需要)
执行 gst-launch-1.0 v4l2src ! videoconvert ! waylandsink命令后,结果如下图,就可以看到笔记本摄像头拍摄的画面显示在wayland窗口里了(前提条件是笔记本摄像头正常连接,并且weston已经运行了)
2. 通过编写代码来建立pipeline
通过通过编写代码来建立pipeline分为以下两种方式
1. 调用gst_parse_launch()函数来自动建立pipeline
如下图所示,调用gst_parse_launch()函数其实质就和命令行模式是一样的,优点是代码操作简单
2. 手动建立pipeline
通过调用gst_pipeline_new(), gst_element_factory_make(), gst_bin_add_many(),
gst_element_link_many()等接口来手动建立pipeline,优点是代码可操作行强
二、代码实例
1. 自动建立pipeline(gst_parse_launch())
代码如下(示例):
#include <gst/gst.h>
int ma