WARNING
本SDK目前仅维护不再新增功能,且不支持iOS浏览器,推荐使用新一代SDK
TIP
基于MSE和WebRTC技术的视频网站省流量&加速引擎,适用于所有以Hls.js作为解码引擎的播放器。
目前最好的Web端P2P流媒体方案
P2P技术使观看相同内容的用户之间可以相互分享数据,不仅能效降低视频/直播网站的带宽成本,还可以提升用户的播放体验,降低卡顿、二次缓存的发生率。
另外,随著H5的普及,flash逐渐被淘汰已成为不可逆转的趋势。而在H5采用的视频传输格式中,hls由于兼容iOS和Android、可以穿过任何允许HTTP数据通过的防火墙、容易使用内容分发网络来传输媒体流和码率自适应等众多优势而在业界得到广泛使用。通过使用hls.js这个第三方库,几乎所有现代浏览器都可以播放hls视频。hls天生分片传输的优势,使其可以采用p2p的方式进行传输,从而减小服务器的负担。
在Web端,无插件化实现p2p传输能力的最好选择就是WebRTC技术,与hls.js类似,WebRTC也支持几乎所有现代浏览器。本项目是一个hls.js的插件,通过WebRTC datachannel技术,在不影响用户体验的前提下,最大化p2p率,是面向未来的Web P2P技术。
特性
- 浏览器原生支持,不需要安装任何插件,采用仿BT算法,在线人数越多效果越好
- 支持基于HLS流媒体协议(m3u8)的直播和点播场景(如何将MP4转成HLS?)
- 支持加密HLS传输和防盗链技术
- 不改动hls.js源码,并且可以与其无缝衔接,几行代码集成,便于在现有项目中快速集成
- 浏览器不支持WebRTC时无缝切换到HTTP下载模式
- 配置灵活,用户可以根据特定的使用环境调整各个参数
- 支持video.js、Clappr、Flowplayer等第三方播放器
- 通过有效的调度策略来保证用户的播放体验以及p2p率
- Tracker服务器根据访问IP的ISP、地域等进行智能调度
演示Demo
打开2个相同的网页:demo
浏览器支持情况
由于WebRTC已成为HTML5标准,目前大部分主流浏览器都已经支持。CDNBye的浏览器兼容性取决于WebRTC和hls.js。需要注意的是iOS版Safari由于不支持MediaSource API,因此也不支持hls.js(不过Safari原生支持HLS播放)。
兼容性 | Chrome | Firefox | Mac Safari | 安卓微信/QQ | Opera | Edge | IE | iOS Safari |
---|---|---|---|---|---|---|---|---|
WebRTC | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ✔ |
Hls.js | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ |
CDNBye | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ❌ | ❌ |
快速集成步骤
- 在管理面板点击 网站管理,按照提示绑定域名
- 选择一个网站目前在用的播放器(例如DPlayer)
- 将播放器部分代码替换成demo的代码,修改播放地址。
- p2p插件也可以本地化,或者用 npm 的方式安装依赖
- 调试通过后部署到服务器
局限性
- 在音频和视频轨分离的情况下,只有视频轨能获得P2P加速
- 不能同时为2个以上(含2个)视频进行P2P加速
- 暂不支持 LL-HLS