Skip to content

Latest commit

 

History

History
49 lines (28 loc) · 2.07 KB

File metadata and controls

49 lines (28 loc) · 2.07 KB

音视频基础技术

video封装格式

国内常见的直播协议有几个:RTMP、HLS、HTTP-FLV。

RTMP

rtmp只要用于直播推流,拉流偏向选用http-flv。

HLS

HTTP-FLV

HTTP-FLV 和 RTMPT 类似,都是针对于 FLV 视频格式做的直播分发流。

但,两者有着很大的区别:

相同点:

  • 两者都是针对 FLV 格式
  • 两者延时都很低
  • 两者都走的 HTTP 通道

不同点: HTTP-FLV

  • 直接发起长连接,下载对应的 FLV 文件
  • 头部信息简单

RTMPT

握手协议过于复杂 分包,组包过程耗费精力大 因为 RTMP 发的包很容易处理,通常 RTMP 协议会作为视频上传端来处理,然后经由服务器转换为 FLV 文件,通过 HTTP-FLV 下发给用户。

RTMP ,HLS,HTTP-FLV 协议对比

  • RTMP协议比较全能,既可以用来推送又可以用来直播,其核心理念是将大块的视频帧和音频帧“剁碎”,然后以小数据包的形式在互联网上进行传输,而且支持加密,因此隐私性相对比较理想,但拆包组包的过程比较复杂,所以在海量并发时也容易出现一些不可预期的稳定性问题。

  • HTTP-FLV协议由Adobe公司主推,格式极其简单,只是在大块的视频帧和音视频头部加入一些标记头信息,由于这种极致的简洁,在延迟表现和大规模并发方面都很成熟。唯一的不足就是在手机浏览器上的支持非常有限,但是用作手机端APP直播协议却异常合适。

  • HLS协议:苹果推出的解决方案,将视频分成5-10秒的视频小分片,然后用m3u8索引表进行管理,由于客户端下载到的视频都是5-10秒的完整数据,故视频的流畅性很好,但也同样引入了很大的延迟(HLS的一般延迟在10-30s左右)。相比于FLV, HLS在iPhone和大部分android手机浏览器上的支持非常给力,所以常用于QQ和微信朋友圈的URL分享。

image