常用的重要接口
官方示例1的链接:
https://gstreamer.freedesktop.org/documentation/tutorials/basic/hello-world.html?gi-language=c
gst_init() 初始化GS,并接收输入的argc argv
gst_parse_launch() 快速创建简单pipe的接口
gst_element_set_state()设置管道状态,例如设置为GST_STATE_PLAYING开始播放
gst_element_get_bus()获取管道的状态变量(一个指针?)
gst_bus_timed_pop_filtered ()基于管道的状态进行过滤,满足条件则取消阻塞的状态
//这四个函数用来回收之前所用的资源,在程序退出时调用
gst_message_unref (msg);
gst_object_unref (bus);
gst_element_set_state (pipeline, GST_STATE_NULL);
gst_object_unref (pipeline);
gst_element_factory_make(); 创建一个元素
gst_pipeline_new();创建一个空管道
gst_bin_add_many();向管道中添加元素
gst_element_link();将元素彼此连接
g_object_set () //这个是对一个元素设置属性的重要接口,会经常用到。
例如:
g_object_set(v4l2_src,"device","/dev/video2",NULL);
用来设置调用哪个摄像头,具体属性的查询,在GS官方的组件中查询,
例如v4l2的链接:https://gstreamer.freedesktop.org/documentation/video4linux2/v4l2src.html?gi-language=c#v4l2src
可以找到“device”这个属性的值是什么意义。
常见问题
1、在运行示例代码时,报缺少头文件,此时不要着急将头文件加入编译,优先查看是否安装了指定头文件的软件包。
例如找不到gtk.h,需要安装apt-get install libgstreamer-plugins-base1.0-dev之后就能用了。