实时流式协议RTSP和RTMP
共同点:
RTSP RTMP HTTP都是在应用层。
区别:
- RTSP+RTP主要用于IPTV,原因是传输数据使用的是UDP,在网络环境比较稳定的情况下,传输效率是比较高的;
- RTMP主要用于互联网音视频传输,它使用的是TCP传输,因为互联网环境相对较差,采用RTMP保证了视频的传输质量,但是其传输延迟相对较高,传输效率相对较低。
librtmp是RTMP协议的实现,可以使用librtmp来实现协议的解析和数据的收发。直播服务器可以基于nginx+rtmp实现;直播客户端方面采用librtmp负责推流,FFmpeg负责编码;收看客户端采用VLC即可,因为VLC本身既可以解析RTMP流,又可以解析编码后的视频数据。
使用RTSP的媒体服务器的工作工程:
需要注意的是:最开始使用RTSP协议与流媒体服务器建立连接和发送PLAY报文,开始播放,以及后面的暂停和释放;之后就使用RTP协议,而RTP分组只包含RTP数据,控制是由另一个配套使用的RTCP协议提供的。