音视频传输协议总结

1,179 阅读3分钟

背景

最近项目是音视频,用到大量websocket和webrtc知识,边学习边总结。

实时音视频数据传输

音视频通讯=音视频处理+网络传输。包括采集、编码、网络传输、解码、播放。其中采集、编解码和播放是不受网络影响的,只受限于编解码算法,播放策略等因素。而网络传输的丢包、抖动和乱序对实时音频应用的影响最大。

音视频传输的协议

RTP 协议

Real-time Transport Protocol

  • 用于internet上针对多媒体数据流的一种传输协议,说明了传递音频和视频的标准数据包格式
  • 常用于流媒体系统,视频会议和一键通(Push to talk 配合H.323或SIP)
  • RTP本身没有提供按时发送机制或者其他服务质量(QoS)保证,依赖于底层服务去实现这一过程。

RTCP协议

Real-time Transport Control Protocol

  • RTCP本身不传输数据,但和RRTP一起协作将多媒体数据打包和发送
  • RTCP的主要功能是为RTP所提供的服务质量(Quality of Service)

SRTP、SRTCP协议

安全实时传输协议(Secure Real-time Transport Protocol)是在实时传输协议(Real-time Transport Protocol)基础上所定义的一个协议,旨在为单播和多播应用程序中的实时传输协议的数据提供加密、消息认证、完整性保证

  • 在使用安全传输控制协议时,必须要用到其消息认证特性

RTSP协议

该协议定义了一个一对多应用程序如何有效通过IP网络传送多媒体数据。

  • 可扩展框架、使实时数据,如音频与视频的受控、点播成为可能
  • 数据源包括现场数据与存储在剪辑中的数据
  • 目的在于控制多个数据发送连接,为选择发送通道,如UDP、多播UDP与TCP提供途径,并为选择基于RTP上发送机制提供方法
  • 用来控制声音或影像的多媒体串流协议,传输时所用的网络通讯协定并不在其定义范围内,服务端可以选择TCP/UDP
  • 其运作方式和HTTP1.1类似

RTSP和RTP的关系

RTP 以固定的数据率在网络上发送数据,客户端也是按照这种速度观看影视文件

RTSP 双向实时数据传输协议,允许客户端项服务端发送请求,如回放、快进、倒退等操作。RTSP可基于RTP来传送数据,还可以选择UDP、TCP、组播UDP等通道来发送数据。

RTMP/RTMPS 协议

RTMP(Real Time Messaging Protocol)实时消息传送协议时AdobeSystem公司为Flash播放器和服务器之间音频、视频和数据传输开发的开放协议

  • 工作在TCP之上的明文协议,使用端口1935
  • RTMPT封装在HTTP请求之中,可穿越防火墙
  • RTMPS类似RTMPT,但是使用的是HTTPS连接

MMS协议

Microsoft Media Server Protcol ,是微软用来访问并流式接收Windows Media服务器中.asf文件的一种协议。

HLS协议

HTTP Live Streaming 是苹果公司实现的基于HTTP的流媒体传输协议,可实现流媒体的直播和点播,主要用在IOS系统,为ios设备提提供音视频直播和点播方案。

  • 直播客户端获取到的不是一个完整的数据流,该协议在服务端将直播吧睡流存储为连续的,很短时长的媒体文件(MPEG-TS),客户端不断的下载即可
  • 延迟总是高于普通的流媒体直播协议

小结

主流的传输协议大概就这么多,后续会持续更新。