📽️ GStreamer 插件开发 · 全流程实战
📚
30 章 · 从入门到部署
01
GStreamer初探
核心概念
多媒体框架、bin/element/pad、插件系统概述
02
开发环境搭建
工具链
Linux环境、Meson构建、gst-launch/gst-inspect
03
GObject基础
基石
类型系统、信号与槽、属性系统,为插件打基础
04
第一个插件
实战
编写identity插件、模板、注册、gst-launch测试
05
插件模板详解
结构
GstElement、_class_init、pad模板、元数据
06
Pad与Caps
核心
Pad方向、Caps协商、固定/可变Caps
07
Buffer与数据流
内存
GstBuffer、引用计数、BufferPool
08
事件系统
异步
GstEvent类型、上游/下游事件、处理函数
09
查询机制
交互
位置/时长查询、格式转换、自定义查询
10
状态管理
状态机
NULL→READY→PAUSED→PLAYING、PREROLL
11
时钟与同步
时间
GstClock、时间戳、QoS、实时性
12
调度模式
驱动
push/pull模式、chain/loop函数
13
元数据与标签
信息
GstTagList、标签注册、专辑封面
14
视频处理插件
滤镜
视频滤镜、像素格式转换、帧处理、性能优化
15
音频处理插件
效果
音频效果、采样格式、重采样、延迟控制
16
多线程与队列
并发
GstQueue、线程安全、数据竞争、死锁
17
自定义数据类型
扩展
注册Caps、私有结构体、序列化
18
参数与属性
配置
GObject属性、范围控制、通知、GUI绑定
19
信号与通知
通信
自定义信号、发射、连接、跨线程安全
20
插件配置与工厂
注册
GstPluginFeature、工厂、优先级、版本
21
调试与日志
诊断
GST_DEBUG、自定义类别、性能分析
22
单元测试
质量
GStreamer测试框架、check、模拟管道、内存泄漏
23
性能优化
加速
零拷贝、内存池、SIMD、GPU加速
24
硬件加速集成
硬编
V4L2、VA-API、CUDA/NVDEC、DRM/KMS
25
网络流插件
传输
RTSP源、RTP处理、抖动缓冲、丢包重传
26
复用器/解复用器
容器
Muxer/Demuxer、格式解析、Seek实现
27
编码器/解码器封装
编解码
封装第三方库、Codec API、硬件适配
28
插件打包与发布
分发
Meson构建、跨平台、依赖、二进制分发
29
GStreamer 1.20+ 新特性
前沿
新API、性能改进、迁移指南
30
综合实战
项目
完整视频处理管道、自定义插件集成、调优部署