直播技术整理4.推流和传输

Posted by boredream on February 23, 2017

主流推送协议

  • RTMP
  • WebRTC
  • 基于UDP的私有协议

RTMP

即 Real Time Messaging Protocol 实时消息传输协议 基于TCP 是一个协议族,即包括RTMP基本协议和RTMPT / RTMPS / RTMPE等多种变种

主要是设计用来进行实时数据通信的网络协议

  • 优点:CDN支持好、协议简单
  • 缺点:基于TCP,传输成本高,弱网环境丢包率高的情况下问题显著 不支持浏览器推送

WebRTC

网页及时通信 Web Real-Time Communication 基于SRTP和UDP

  • 优点:W3C标准,主流浏览器支持程度高 Google技术支持,各平台都有参考实现 基于SRTP和UDP,弱网情况下优化空间大 可以实现点对点通信,通信双方延时低
  • 缺点:ICE、STUN、TURN传统CDN没有类似的服务提供

基于UDP的私有协议

自己实现忒复杂,成本高,虽然定制化程度强

传输

一般使用CDN


直播部分剩下的还有

  • 延迟优化
  • 播放器

延迟优化一般分别从如下几个方面下手

  • 编码优化
  • 传输协议优化
  • 传输网络优化
  • 推流、播放优化

这方面没具体研究过

播放器实现现在大部分是基于已有的框架如vitamio、ijkplayer等,自己做一些UI方面的封装 可以网上找下实现比较好的播放器源码自行修改