视频流的简要学习
·
整体流程
1、采集与编码:摄像头/显卡/CPU 把原始帧编码成 H.264/H.265/AV1,音频多为 AAC/Opus。
2、打包封装:把编码后的帧封进容器或分片(MPEG-TS、MP4/fMP4、FLV,或直接裸流)。
3、传输协议:基于 UDP/TCP/HTTP/QUIC 的不同协议把数据发出去。
4、接收端:解封装/去包 → 解码 → 渲染;期间有抖动缓冲、同步与重传等策略。
基于 RTSP RTP WebRTC进一步学习
- RTSP:负责“控制/会话”。通过 DESCRIBE/SETUP/PLAY 获取并建立会话,拿到相机端的 SDP(描述编解码与 RTP 参数)。
- RTP 承载真实媒体(H.264/H.265 等视频帧、AAC/PCMU 等音频)。
- 传媒体的是 SRTP(加密的 RTP),并带 ICE/STUN/TURN、DTLS、拥塞控制、NACK/PLI/FIR/FEC 等。
配合的本质:在中间层把“RTSP 拉到的 RTP 媒体”和“WebRTC 的 SRTP + SDP/ICE 信令体系”对接起来,形成浏览器可解的实时流。
一句话概况:RTSP 提供控制与 SDP;相机用 RTP 输出真实媒体;中间层据此把媒体重打包为 WebRTC 的 SRTP,并生成浏览器可接受的 SDP/ICE 会话。这样,RTP/RTSP 与 WebRTC 并不是直接互通,而是通过“中间层的协议/封装与信令桥接”实现浏览器预览。而这边中间件就是我们要做的。
额外学习:
- H.264(又名 AVC):一种视频压缩编码标准/算法(Codec),把原始画面压缩成码流(帧里有 I/P/B,含 SPS/PPS 等参数)。
- SPS 管“全局/序列级参数”,PPS 管“图像/片级参数”;两者提供解码所需的“说明书”。
- IDR(即时解码刷新帧):一种特殊的 I 帧,标记随机接入点,自包含的关键帧,不依赖其他帧。解码器在此清空参考,IDR 之后的帧不会再引用 IDR 之前的帧,便于“中途加入/首开/快进定位”。
- P、B 都是“参考预测帧”类型;P 只看过去,B 看过去+未来。B 提效但增延迟,低延迟预览通常少用或禁用 B 帧。
- MP4:一种容器/封装格式(Container),用来“打包”音视频码流与元数据(时间戳、索引),便于存储和传输。
编码”和“封装”是两层:
H.264(把画面压缩成视频码流)
H.264 以 NAL 单元形式装进 RTP 包
MP4/TS/FLV(把视频码流+音频码流+时间戳打包)
把 H.264 作为一个 avc1/avc3 轨道存进去,参数在 avcC box(含 SPS/PPS),按 sample/chunk 组织并带完整时间轴(PTS/DTS)、索引(moov)。
更多推荐



所有评论(0)