RTMP协议和RTSP协议的区别

  • Post author:
  • Post category:其他


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流,又可以解析编码后的视频数据。