流媒体协议基础
流媒体协议基础
流媒体协议基础
一般分为指令控制(tcp传输),和数据传输(udp传输)两类协议,分开工作。
流媒体协议标准
- GB28181 适用大规模监控系统。使用SIP作为信令协议,通过RTP/RTCP实现流控制和反馈。除了规范流媒体传输,还做了通道信息级联同步等规范定义。
流媒体协议分类
常见的有
- RTMP (应用层,绑定依赖浏览器的Flash播放器插件。可用于推、拉流)
- RTSP(应用层,控制协议,播放、暂停、终止等指令控制。可用于推、拉流)参考
- RTP (传输层,数据包传输) rfc规范
- RTCP (传输层,控制协议,数据包流量控制)
- http-flv (基于html5技术,无需浏览器插件。使用http请求+flv格式容器。用于拉流播放)
- ws-flv (同http-flv,传输改用websocket)
- webrtc (谷歌主导技术)
- hls (苹果主导技术,切片有延时。用于拉流播放)
- onvif 私有协议
控制协议内容基本基于纯文本,抓包可以看到。
常见概念
- SIP Session Initiation Protocol,信令协议,控制协议。包含SIP域(SIP Domain)和SIP ID(SIP Identifier)用户或设备唯一标识符。
- SSRC Synchronization Source Identifier,同步信源标识符。指产生媒体流的信源,例如麦克风、摄像机、RTP混合器等。它通过RTP报头中的一个32位数字SSRC标识符来标识,而不依赖于网络地址,接收者将根据SSRC标识符来区分不同的信源,进行RTP报文的分组。
容器格式
- .ts文件 Transport Stream传输流 文件层层嵌套,包含TS层(Transport Stream)、PES层(Packet Elemental Stream)、ES层(Elementary Stream)。
此外还有flv、mp4等。
压缩编解码
比如h264、h265等。
参考
本文由作者按照 CC BY 4.0 进行授权