一文看懂音视频流媒体协议及信令技术
发布网友
发布时间:2024-10-11 06:58
我来回答
共1个回答
热心网友
时间:2024-11-26 09:18
音视频通信的流程包括采集、编码、前后处理、传输、解码、缓冲、渲染等环节。
在这些细分环节中,还有更深入的技术模块。例如,前后处理环节包括美颜、滤镜、回声消除、噪声抑制等,采集有麦克风阵列等,编解码有H.263、H.264、H.265等,传输则涉及本文重点介绍的RTSP/RTMP/RTP/RTCP等流媒体协议以及相关的信令技术。
流媒体协议分为传输控制报文协议和传输媒体数据协议。传输控制报文协议通常用于协商流媒体通信建立的参数,如SIP、RTSP等协议。传输媒体数据报文通常用于传输音视频媒体数据,如RTP/RTCP/SRTP/SRTCP等协议。此外,也有部分协议将控制信令和媒体信令放在一个连接里传输,如RTMP等协议。
SIP(Session Initiation Protocol,会话初始协议)是由IETF(Internet Engineering Task Force,因特网工程任务组)制定的多媒体通信协议。它是一个基于文本的应用层控制协议,用于创建、修改和释放一个或多个参与者的会话。SIP是一种源于互联网的IP语音会话控制协议,具有灵活、易于实现、便于扩展等特点。
RTMP(Real Time Messaging Protocol,实时消息传输协议)是由Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的开放协议。RTMP是基于TCP协议的一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。
RTSP(Real Time Streaming Protocol,实时流传输协议)是基于TCP或UDP的一个应用层协议,由哥伦比亚大学、网景和RealNetworks公司提交的IETF RFC标准。该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。SIP作为控制信令一般要和RTP/RTCP媒体信令配合起来用在音视频媒体传输上。
RTP(real-time transport protocol,实时传输协议)在多点传送或多点传送的网络服务上,提供端对端的网络传输功能,适合应用程序传输实时数据,如音频、视频或者仿真数据。RTP没有为实时服务提供资源预留的功能,也不能保证QoS(服务质量)。
RTCP(Real-time Transport Control Protocol或RTP Control Protocol,实时传输控制协议)是实时传输协议(RTP)的一个姐妹协议,由RFC 3550定义(取代作废的RFC 1889)。
SRTP(Secure Real-time Transport Protocol,安全实时传输协议)是在实时传输协议RTP基础上所定义的一个协议,旨在为单播和多播应用程序中的实时传输协议的数据提供加密、消息认证、完整性保证和重放保护。
目前主流的音视频方案商都会提供包括流媒体信令协议在内的音视频方案SDK,不需要开发者重新移植开发流媒体协议。
一般厂商会同步提供端侧和云侧的SDK,SDK使用的流媒体协议可能是SIP/RTMP/RTSP/RTCP/SRTP/SRTCP等协议,也可能是厂商私有自定义的协议,但基本流媒体协议的原理几乎都是类似的。
大多数时候,只需要在厂商SDK的流媒体协议的基础上做信令的开发,就可以完成一个完整的流媒体通信。