GStreamer 故障排查 & 稳定性
📚 30 章 · 实战指南
v2.4
01
GStreamer 基础回顾
管道与元素
数据流与缓冲区
总线与消息
02
调试环境搭建
GST_DEBUG
gst-launch-1.0
日志启用
03
常见错误类型分析
协商失败
资源锁定
状态转换
时钟同步
04
日志分析技巧
解读 GST_DEBUG
过滤日志
GST_DEBUG_FILE
05
管道图可视化
GST_DEBUG_DUMP_DOT_DIR
Graphviz
06
元素协商问题排查
Caps协商
negotiation调试
CapsFilter
07
缓冲区与内存管理
泄漏排查
内存池
GST_ALLOCATOR
08
时钟与同步问题
时钟选择
QoS事件
丢帧与延迟
09
状态转换故障
状态机
异步转换
PAUSED→PLAYING
10
多线程与并发问题
线程模型
Pad阻塞
锁竞争
11
插件加载与依赖问题
插件路径
依赖缺失
版本冲突
12
硬件加速与编解码器
VAAPI/NVDEC
DRM/KMS
协商失败
13
网络流媒体问题
RTP/RTSP
丢包重传
缓冲策略
14
文件封装与解封装
MP4/MKV/TS
索引损坏
moov box
15
音频处理问题
格式协商
采样率转换
同步
16
视频处理问题
分辨率/帧率
色彩空间
滤镜性能
17
性能分析与优化
GST_TRACER
CPU/GPU
内存带宽
18
内存泄漏排查
Valgrind
引用计数
对象生命周期
19
死锁与竞态条件
锁机制
死锁检测
线程安全
20
自定义元素开发调试
元素模板
Pad模板
transform调试
21
应用程序集成问题
Qt/GTK
GLib主循环
信号与槽
22
嵌入式系统部署
交叉编译
内存优化
无头系统
23
容器化部署
Docker
GPU透传
音频映射
24
稳定性测试方法
压力测试
长稳测试
异常注入
25
错误恢复与容错机制
错误信号
管道重建
降级播放
26
日志与监控系统集成
结构化日志
Prometheus
健康检查
27
版本升级与兼容性
API变更
ABI兼容
配置迁移
28
常见平台问题
ALSA/PulseAudio
DirectShow
CoreAudio
29
社区资源与工具
官方文档
IRC/Matrix
git-bisect
30
综合案例实战
崩溃日志修复
性能瓶颈
复杂管道稳定性