RTMP协议:
1、是流媒体协议
2、RTMP是Adobe的私有协议,没有完全公开
3、RTMP协议一般传输的是flv、f4v格式流
4、RTMP协议一般在TCP的一个通道传输命令和数据
RTSP协议:
1、是流媒体协议
2、RTSP协议是公有协议,有专门的机构维护
3、RTSP协议一般传输的是ts、mp4格式流
4、RTSP协议一般需要2-3个通道,命令和数据通道分离
二、
1.视频传输
从网络上接收视频时首先要解协议(RTSP/RTMP/HTTP),
然后是解格式(MKV,RMVB),之后才是将视频(H264)和音频(AAC)格式数据分别解码为图像(RGB/YUV)和声音(PCM),再根据时间戳同步播放。
RTSP+RTP主要用于IPTV,原因是传输数据使用的是
UDP
,在网络环境比较稳定的情况下,传输效率是比较高的;
RTMP主要用于互联网音视频传输,它使用的是
TCP传输
,因为互联网环境相对较差,采用RTMP保证了视频的传输质量,但是其传输延迟相对较高,传输效率相对较低。
使用RTMP技术的流媒体系统有一个非常明显的特点:
早期使用flash支持;现在直播服务普遍采用了RTMP作为流媒体协议,FLV作为封装格式,H.264作为视频编码格式,AAC作为音频编码格式。
FLV是RTMP使用的封装格式
,H.264是当今实际应用中编码效率最高的视频编码标准,AAC则是当今实际应用中编码效率最高的音频编码标准。
librtmp是RTMP协议的实现,可以使用librtmp来实现协议的解析和数据的收发。直播服务器可以基于nginx+rtmp实现;直播客户端方面采用librtmp负责推流,FFmpeg负责编码;收看客户端采用VLC即可,因为VLC本身既可以解析RTMP流,又可以解析编码后的视频数据。