当前位置: 首页 > news >正文

deepstream笔记

  1. 创建pipeline
pipeline = gst_pipeline_new("audio-player");
  1. 创建filesrc类型元素并命名为file-source;
GstElement *source = gst_element_factory_make("filesrc", "file-source");
  1. 通过元素名file-source获取元素对应的指针;
GstElement *source = gst_bin_get_by_name(GST_BIN(pipeline), "file-source");
  1. 为对应元素指针添加属性;
g_object_set(source, "location", "/path/to/your/audio/file.mp3", NULL);
  1. 链接元素;
sinkpad = gst_element_get_request_pad(streammux, pad_name_sink);
//这行代码从streammux元素中请求一个名为pad_name_sink的sink pad。sink pad是用于接收数据的端口。如果请求失败,sinkpad将为NULL。srcpad = gst_element_get_static_pad(decoder, pad_name_src);
//这行代码从decoder元素中获取一个名为pad_name_src的static pad。src pad是用于发送数据的端口。如果获取失败,srcpad将为NULL。gst_pad_link(srcpad, sinkpad);
//这行代码尝试将srcpad和sinkpad链接起来。如果链接失败,gst_pad_link函数将返回GST_PAD_LINK_ERROR,记录日志并退出函数,返回-1。
  1. 判断元素之间是否连接并产生链接;
gst_element_link(source, sink) != TRUE
gst_element_link_many(1,2,3,4,5);//链接多个
  1. 设置管道状态为播放;
ret = gst_element_set_state(pipeline, GST_STATE_PLAYING);
  1. 等待播放结束或发生错误
bus = gst_element_get_bus(pipeline);
msg = gst_bus_timed_pop_filtered(bus, GST_CLOCK_TIME_NONE,  GST_MESSAGE_ERROR | GST_MESSAGE_EOS);
  1. 释放
gst_message_unref(msg);
gst_object_unref(bus);
gst_element_set_state(pipeline, GST_STATE_NULL);
gst_object_unref(pipeline);
http://www.lryc.cn/news/509405.html

相关文章:

  • Pinpoint 是一个开源的分布式追踪系统
  • H3C交换机远程登录基本配置
  • python关闭线程池来关闭线程
  • 生成式AI:药学科普的新引擎
  • 洛谷 p3392 涂条纹
  • 64.基于SpringBoot + Vue实现的前后端分离-新闻资讯系统(项目 + 论文)
  • Y3编辑器教程8:资源管理器与存档、防作弊设置
  • 智慧社区电子商务系统:实现社区资源的数字化管理
  • 精准提升:从94.5%到99.4%——目标检测调优全纪录
  • 【LLM论文日更】| 训练大型语言模型在连续潜在空间中进行推理
  • 智能家居实训室中,STC单片机驱动的“互联网+”智能家居系统设计
  • 《C++ 赋能强化学习:Q - learning 算法的实现之路》
  • 三维模型中的UV展开是什么意思?它有什么优势?
  • 怎么在ubuntu系统上安装qt项目的打包工具linuxdeployqt
  • SQL语句整理五-StarRocks
  • 【C#】try-catch-finally语句的执行顺序,以及在发生异常时的执行顺序
  • 【vue】vite + ts +vue3 安装pinia
  • PointPillars:数据预处理
  • node.js的异步工作之---回调函数与回调地狱
  • Mac Android studio 升级LadyBug 版本,所产生的bug
  • stm32 hex文件烧写
  • 【编译原理】编译原理知识点汇总·属性文法和语法制导翻译
  • 【unity c#】深入理解string,以及不同方式构造类与反射的性能测试(基于BenchmarkDotNet)
  • VSCode 插件开发实战(八):创建和管理任务 Task
  • 在 Node.js 中正确处理 `async/await` 及数组迭代
  • 本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——13使用Resnet-Bin
  • FFmpeg第三话:FFmpeg 视频解码详解
  • 解决 vue3 中 echarts图表在el-dialog中显示问题
  • C++ OpenGL学习笔记(4、绘制贴图纹理)
  • 关于我的Java考试被老师挂掉的这件事......