天天看点

简述 RTMP/HLS/HTTP-FLV

HLS:

基于http协议;

以识别.m3u8文件索引为准 .ts文件播放;

三种类型:

动态列表: 实时更新ts文件,过期的会被删除;

静态列表: 原来的ts文件不会被删,列表不断的更新,大小逐渐增大;

全量列表: 将所有的ts文件都列在list当中,使用的话就跟整个视频没什么区别了.

缺点:

延迟性太高;

m3u8文件下载以及ts文件下载;

需要先下载m3u8索引文件以及m3u8里面所有的ts文件;

不包括dns,tcp解析的情况下,如果每个m3u8的ts文件数为3~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以上延迟;