HLS:
- 基于http协议;
- 以识别.m3u8文件索引为准, .ts数据文件播放;
三种类型:
动态列表: 实时更新ts文件,过期的会被删除;
静态列表: 原来的ts文件不会被删,列表不断的更新,大小逐渐增大;
全量列表: 将所有的ts文件都列在list当中,使用的话就跟整个视频没什么区别了.
缺点:
- 延迟性太高;
- m3u8文件下载以及ts文件下载;
- 需要先下载m3u8索引文件以及m3u8里面所有的ts文件;
- 不包括dns,tcp解析的情况下,如果每个m3u8的ts文件数为8,ts播放时长为5s,那么延迟为40;
- 10s以上延迟;
RTMP:
Real-Time Messaging Protocol 实时消息传输协议, 基于FLV格式进行开发;
属于应用层,基于tcp协议传输;
做直播服务的首选;
TCP长连接协议传输相关数据,延时性较低,根据message stream ID或chunk stream ID传输;
三次建立连接 client => c0,c1,c2 server => s0,s1,s2块数据;
缺点:
- 量大的话,负载较高;
- 很多防火墙会墙掉RTMP,但是不会墙掉HTTP
- 1s以上延迟
- 不支持html5
HTTP-FLV:
与RTMP类似;
基于HTTP;
RTMP直接将流的传输在RTMP协议之上,HTTP-FLV是在RTMP和客户端之间套了了一层;
相比RTMP,HTTP-FLV会生成一个非常大的http流,只能做主播,RTMP可以做推流/拉流.
缺点:
只能在手机app播放
2s以上延迟;