c_cpp GStreamer的学习

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp GStreamer的学习相关的知识,希望对你有一定的参考价值。

#include <gst/gst.h>
int main(int argc, char *argv[])
{
  gst_init(&argc,&argv);//命令行输入的参数传递给GStreamer函数库
  
  GstElement *pipeline, *filesrc, *decoder, *audiosink;//创建三个远见
  
  pipeline = gst_pipeline_new("pipeline");//创建用于容纳元件的新管道
  
  /*创建数据源元件*/
  filesrc = gst_element_factory_make("filesrc","disk_source");
  g_object_set(G_OBJECT(filesrc), "location", argv[1],NULL);
  
  /*创建过滤器元件*/
  decoder = gst_element_factory_make("mad","decoder");
  
  /*创建接收器元件*/
  audiosink = gst_element_factory_make("audiosink","play_audio");
  
  /*添加元件到管道中*/
  gst_bin_add_many(GST_BIN(pipeline), filesrc, decoder, audiosink, NULL);
  /*通过Pad连接元件element*/
  gst_element_link_many(filesrc,decoder,audiosink,NULL);
  
  /*启动管道,管道一般有四个状态NULL,READY,PAUSED,PLAYING*/
  gst_element_set_state(pipeline, GST_STATE_PALYING);
  
  /*如果没有使用线程,则不停查询来判断处理是否结束*/
  while(get_bin_iterate(GET_BIN(pipeline)));
  
  /*终止管道*/
  gst_element_set_state(pipeline, GST_STATE_NULL);
  
  /*释放资源*/
  gst_object_unref(GST_OBJECT(pipeline));
}

以上是关于c_cpp GStreamer的学习的主要内容,如果未能解决你的问题,请参考以下文章

deepstream学习笔记:gstreamer与deepstream-test1说明

GStreamer应用开发手册学习笔记之二

GStreamer应用开发手册学习笔记之二

gstreamer学习教程系列

编写一个GStreamer插件

如何安装gstreamer