主流推送协议
- 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方面的封装 可以网上找下实现比较好的播放器源码自行修改