RTMP RTSP HTTP都是在应用应用层。
1.RTMP:是Real Time Message Protocol(实时信息传输协议),和RTSP是流媒体协议,RTMP协议一般传输的是flv,f4v格式流,RTSP协议一般传输的是ts,mp4格式的流,一般做直播用。
2.HTTP:即超文本传送协议(ftp即文件传输协议),将所有的数据作为文件做处理,没有特定的流,http协议不是流媒体协议。
3.RTSP:实时流传输协议,传输一般需要2-3个通道,命令和数据通道分离,HTTP和RTMP一般在TCP一个通道上传输命令和数据。
RTMP的特点如下:
1) 支持范围很好:
RTMP实际上是现在编码器输出的工业标准协议,基本上所有的编码器(摄像头之类)都支持RTMP输出。
原因在于PC市场巨大,PC主要是Windows,Windows的浏览器基本上都支持flash,
Flash又支持RTMP支持得非常好。
2) 适合长时间播放:
因为RTMP支持的很完善,所以能做到flash播放RTMP流长时间不断流,
如果换成服务器端将不同的文件转换成RTMP流,客户端就可以一直播放;
当时测试是100万秒,即10天多可以连续播放。
3)延迟较低:
比起YY的那种UDP私有协议,RTMP算延迟大的(延迟在1-3秒),
比起HTTP流的延时(一般在10秒以上)RTMP算低延时。
一般的直播应用,只要不是电话类对话的那种要求,RTMP延迟是可以接受的。
4) 有累积延迟:
技术一定要知道弱点,RTMP有个弱点就是累积误差,原因是RTMP基于TCP不会丢包。
所以当网络状态差时,服务器会将包缓存起来,导致累积的延迟;
待网络状况好了,就一起发给客户端。
这个的对策就是,当客户端的缓冲区很大,就断开重连。