常见直播协议及特点
协议种类 | 传输方式 | 视频封装格式 | 延迟 | 数据分段 | 是否支持h5 | 应用场景 |
---|---|---|---|---|---|---|
HLS | http流 | ts文件 | 10-30s | 切片 | 支持 | h5直播,游戏直播 |
RTMP | tcp流 | flv tag | 2s | 连续流 | 不支持 | 互动直播 |
http flv | http流 | flv | 2s | 连续流 | 支持 | 互动直播 |
m3u8是一种文本协议
HLS--HTTP Live Streaming
原理
通过将整条流切割成小的可以通过http下载的媒体文件,然后提供一个配套的媒体文件列表,提供给客户端,让客户端顺序的拉取这些媒体文件进行播放,实现一条流的播放效果
基本信息
hls全称http live streaning,由apple公司实现的基于http的媒体流传输协议,完美的支持苹果手机各端,现在安卓也已经支持.
HLS的执行流程
- http请求m3u8的url
- 服务端返回一个m3u8的播放列表,这个播放列表是实时更新的,一般一次给出5段数据的url
- 客户端解析m3u8的播放列表,然后请求url获取ts数据流
RTMP
原理
rtmp协议是在tcp/ip结构中应用层的协议,rtmp协议中基本的数据单元为消息,当rtmp在互联网中传输数据的时候,消息会被拆分成更小的单元,成为消息块,rtmp传输媒体数据的过程中,发送端首先把数据封装成消息,然后把消息分割成消息块,最好分割后的消息块再通过tcp协议发送出去,接收端再接受到数据后,首先将数据块重组为消息,然后通过消息解封处理就可以恢复出媒体数据
rtmp协议更加流畅的支持互动直播场景,速度快,误码率低,延迟低,但是不支持H5,不支持浏览器推送
HTTP FLV
基本原理
http flv是通过将直播流模拟成flv文件,通过http协议进行下载的模式来实现流媒体传输的协议.
http flv 使用类似于rtmp流式协议的http长链接,需要特定的流媒体服务器分发,兼顾两者的优点
网友评论