Live555 是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP、RTSP、SIP等的支持。Live555实现了对多种音视频编码格式的音视频数据的流化、接收和处理等支持,包括MPEG、H.263+、DV、JPEG视频和多种音频编码。同时由于良好的设计,Live555非常容易扩展对其他格式的支持。目前,Live555已经被用于多款播放器的流媒体播放功能的实现,如VLC(VideoLan)、MPlayer。
RTP:实时传输协议(Real-time Transport Protocol),分为RTP数据协议和RTP控制协议(RTCP)。
RTP是实际传输数据的协议,用于传输音频/视频数据。如果是PLAY,Server发送到Client端,如果是RECORD,可以由Client发送到Server 。
RTCP包括Sender Report和Receiver Report,用来进行音频/视频的同步以及其他用途,是一种控制协议 ,不是实际传输数据的协议。
RTSP:实时流协议(Real Time Streaming Protocol,RTSP)
RTSP的请求有DESCRIBE,SETUP,PLAY,PAUSE,TEARDOWN,OPTIONS等,起对话和控制作用 ;RTSP的对话过程中SETUP可以确定RTP/RTCP使用的端口,PLAY/PAUSE/TEARDOWN可以开始或者停止RTP的发送。
总结:RTSP发起/终结流媒体、RTP传输流媒体数据 、RTCP对RTP进行控制(同步)。