📡 GStreamer · RTSP 流媒体
30 章
🎯 风格 · 紧凑目录
01
GStreamer 初探:什么是GStreamer?核心设计理念?为什么选择它做流媒体?
理念 · 优势
📄
02
环境搭建:在Ubuntu上安装GStreamer开发环境,验证基础工具链。
安装 · 工具链
📄
03
GStreamer 核心概念:Element、Pad、Bin、Pipeline,它们怎么配合?
核心抽象
📄
04
第一个Pipeline:用gst-launch-1.0 构建一个简单的音视频播放管道。
gst-launch
📄
05
深入Element:Element分类(Source、Filter、Sink),代码创建和配置。
分类 · 编程
📄
06
Pad 与 Capabilities:静态/动态Pad,Capabilities协商机制。
协商 · 属性
📄
07
Bin 与 Pipeline:Bin管理复杂逻辑,Pipeline状态机 (NULL→PLAYING)。
状态机
📄
08
Bus 与 消息机制:监听Pipeline中的错误、状态变化、EOS等消息。
消息总线
📄
09
GStreamer 日志系统:用好GST_DEBUG,快速定位管道问题。
调试 · 日志
📄
10
常用插件介绍:coreelements、good、bad 的区别与使用。
插件层级
📄
11
视频采集:从V4L2摄像头采集视频,构建采集管道。
V4L2
📄
12
音频采集:从ALSA/ PulseAudio采集音频,构建采集管道。
ALSA · Pulse
📄
13
视频编码:H.264 (x264enc) 与 H.265 (x265enc) 配置与参数调优。
编码调优
📄
14
音频编码:AAC (voaacenc) 与 MP3 (lamemp3enc) 的配置。
AAC · MP3
📄
15
封装格式:MP4 (mp4mux)、TS (mpegtsmux)、FLV (flvmux) 容器选择。
容器 · mux
📄
16
RTSP 协议基础:OPTIONS、DESCRIBE、SETUP、PLAY、TEARDOWN,SDP。
RTSP 方法
📄
17
GStreamer RTSP Server 库:认识gst-rtsp-server,核心API。
库 · API
📄
18
构建第一个RTSP Server:用gst-rtsp-server搭建简单视频点播。
点播服务
📄
19
动态媒体工厂:MediaFactory,客户端请求时动态创建媒体管道。
动态工厂
📄
20
实时直播源:将摄像头实时流通过RTSP Server推送给客户端。
直播推送
📄
21
文件点播:实现MP4文件点播,支持seek、暂停、播放控制。
点播控制
📄
22
多客户端支持:RTSP Server并发模型,处理多个客户端请求。
并发
📄
23
鉴权与安全:为RTSP服务添加Basic认证,限制非法访问。
认证
📄
24
传输协议选择:TCP (interleaved) vs UDP 传输模式,配置切换。
TCP/UDP
📄
25
延迟优化:编码参数、传输缓冲、网络抖动降低端到端延迟。
低延迟
📄
26
录制与回放:RTSP服务集成录制功能,边推流边保存文件。
录制
📄
27
WebRTC 转 RTSP:将WebRTC流转换为RTSP流,跨协议互通。
WebRTC
📄
28
性能监控与调优:GStreamer统计信息,监控CPU、内存、带宽。
监控
📄
29
容器化部署:RTSP服务打包Docker镜像,快速部署与扩展。
Docker
📄
30
综合实战:构建完整直播监控系统,采集、编码、RTSP分发、录制、Web管理。
实战项目
📄