Skip to content

gesanqiu/gstreamer-example

Repository files navigation

GStreamer-example

GStreamer是一个非常强大和通用的用于开发流媒体应用程序的框架。GStreamer框架的许多优点都来自于它的模块化:GStreamer可以无缝地合并新的插件模块,但是由于模块化和强大的功能往往以更大的复杂度为代价,开发新的应用程序并不总是简单。

出于以下两点原因,让我萌生了发起这个项目的想法:

  • 网络上关于GStreamer的开发文档比较少,几乎只能依靠官方的API ReferenceTutorials英文文档;
  • 目前项目只有我一个人在维护,因此更多是出于我个人开发的学习记录,但欢迎各位的加入。

更新日志

  • 2022.02.06:更新interfaces教程。
  • 2022.02.06:解决ai_intergration pipeline bugs。
  • 2022.02.03:更新ai_integration pipeline ver2.0,增加usb camera和rtmp推流支持。
  • 2022.01.26:更新meradata教程。
  • 2022.11.06:更新threads教程。
  • 2022.09.12:更新uridecodebin源码剖析①。
  • 2022.09.10:更新rtspsrc源码剖析①。
  • 2022.07.17:更新基于deepstream-6.1开发的pipeline,后续用于集成yolov5s.trt模型。
  • 2022.02.10:增加更新日志,修改更新计划,整理已更新内容,删除多余的初始化文档,后续随缘更新。
  • 2022.01.25:将Tutorial文档merge进来。
  • 2021.10.31:更新nvdsosd插件教程。
  • 2021.09,09:更新GstPadProbe教程。
  • 2021.09.04:增加audio轨道处理分支。
  • 2021.08.31:更新uridecodebin插件教程。
  • 2021.08.29:更新appsink/appsrc插件教程。
  • 2021.08.27:更新pipeline构建教程。
  • 2021.08.26:更新qtioverlay插件教程。
  • 2021.08.24:初始化提交。

更新计划‌

基础理论

本章节主要是GStreamer Tutorial的翻译。

应用开发

本章节将结合我的开发经历,讲解使用GStreamer开发一个视频流应用会需要用到的基础技术。

  • 构建pipeline的两种方式:gst_parse_launch()gst_element_factory_make()(done)
  • uridecodebin详解(done)
  • appsink/appsrc(done)
  • GstPadProbe(done)
  • 自定义plugin

平台定制plugins

本章节将介绍QualcommNvidia两个平台的一些定制插件,由于我现在更多在Qualcomm平台上进行开发,并且Nvidia有相对健全的Issue机制和论坛维护,因此Nvidia仅作为补充内容,更新计划待定

:作者才疏学浅,如有纰漏,欢迎指正。

贡献者

翻译:@Yinan Fu

校对:@thetffs

联系方式‌