音视频入门系列-协议篇(RTMP,HLS和HTTP-FLV区别)

在开始之前,我们先要明确一个问题,根据应用场景不同,流媒体协议分为: ◆ 推流协议 ◆ 拉流播放协议 RTMP可以用在双端,HLS用在拉流端,HTTP-FLV用在拉流端。

我们先放一张表格从几个维度来对比下这三种协议。

音视频入门系列-协议篇(RTMP,HLS和HTTP-FLV区别)_第1张图片

1.RTMP & HTTP-FLV

◆ 这两个协议实际上传输的数据是一样的,数据都是flv文件的tag。

◆ RTMP:实时播放服务器的 FLV 文件或服务器转发的FLV数据,本地无 FLV 缓存文件,FLV保密性好。

◆ HTTP-FLV:将 FLV 下载到本地再播放,FLV保密性不好。

2.HLS & RTMP

◆ RTMP:采用1935端口,而非HTTP80端口,在某些网络环境下可能被屏蔽。

◆ RTMP:是一种有状态协议,需要为每一个播放视频流的客户端维护状态,服务器平滑扩展难度大。

◆ HLS:基于无状态HTTP协议,客户端只需要按顺序使用下载的TS文件就可,负载均衡如同普通的HTTP文件服务器负载均衡一样。

3.HTTP-FLV

HTTP-FLV 结合了 RTMP 和 HLS 的优点,易用(HTTP协议)低延时(flv)

4.为什么 RTPM 比 HLS 快

◆ HLS拉流:服务器音视频数据切片生成 TS 文件

◆ HLS拉流:客户端必须等待服务端至少生成一个 TS 文件,通常下载完两个媒体文件后才能保证不同分段音视频间的无缝连接。

◆ HLS一直在等切片数据,RTMP不需要切片

 音视频入门系列-协议篇(RTMP,HLS和HTTP-FLV区别)_第2张图片

 

你可能感兴趣的:(流媒体服务器,Android音视频开发,音视频开发,音视频,实时音视频,网络协议,视频编解码,语音识别)