RTMP & HLS

今天,我们来聊聊 RTMP 和 HLS 协议。

1.RTMP

RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。

◆ 应用层协议,依靠TCP保证可靠传输。rtsp基于udp传输。

◆ 默认端口:1935,可能被防火墙屏蔽。

◆ 在流媒体/交互服务器之间进行音视频和数据通信。

2.HLS(HTTP Live Streaming)

HLS是一个由苹果公司提出的基于HTTP的流媒体网络传输协议。

它的工作原理是把整个流分成一个个小的基于HTTP的TS文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。

HLS请求基本的HTTP报文,与实时传输协议(RTP)不同,HLS可以穿过任何允许HTTP数据通过的防火墙或者代理服务器。它也很容易使用内容分发网络来传输媒体流。

HLS规范:

        ◆ 视频的封装格式是TS。

        ◆ 音视频采用H264编码和AAC编码。

        ◆ 除了TS视频文件本身,还定义了用来控制播放的m3u8索引文件。

3.对比RTMP,HLS和HTTP-FLV

根据应用场景不同,流媒体协议分为:

        ◆ 推流协议。 摄像机等推流到服务器。

        ◆ 拉流播放协议。手机等从服务器拉流。

RTMP可以用在双端,即是推流又是拉流,HLS用在拉流端,HTTP-FLV用在拉流端。

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

RTMPHTTP-FLVHLS
传输协议TCPHTTPHTTP
视频封装格式flvflvts
延时1-3秒1-3秒5-20秒
Web支持H5需要使用插件H5中需要使用插件支持H5
数据连续流连续流切片文件

(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协议,端口80比rtmp的1935更通用)低延时(flv)

(4)为什么 RTPM 比 HLS 快

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fang·up·ad

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值