A hls.js plugin to offload bandwidth from expensive traditional CDNs，while also maximizing a user’s viewing experience.
# Web Video Delivery Technology with No Plugins
CDNBye hlsjs-p2p-engine implements WebRTC datachannel to scale live/vod video streaming by peer-to-peer network using bittorrent-like protocol. It can relieve stress on server infrastructures by connecting viewers watching the same stream at the same time. The forming peer network can be layed over other CDNs or on top of the origin server. Powered by hls.js, it can play HLS on any platform with many popular HTML5 players such as video.js, JWPlayer and Flowplayer.
- WebRTC data channels for lightweight peer-to-peer communication with no plugins
- Support live and VOD streams over HLS protocol(How to repackage MP4 files to HLS)
- Support encrypted HLS stream
- Very easy to integrate with an existing hls.js project
- Seamlessly fallback to normal server usage if a browser doesn't support WebRTC
- Highly configurable for users
- Support most popular HTML5 players such as video.js、Clappr、Flowplayer
- Efficient scheduling policies to enhance the performance of P2P streaming
- Use IP database to group up peers by ISP and regions
# Browser Support
WebRTC has already been incorporated into the HTML5 standard and it is broadly deployed in modern browsers. The compatibility of CDNBye depends on the browser support of WebRTC and Hls.js. Please note that iOS Safari "Mobile" does not support the MediaSource API.
|Compatibility||Chrome||Firefox||Mac Safari||Android Wechat/QQ||Opera||Edge||IE||iOS Safari|
Only one media track is delivered over P2P. If video and audio tracks in HLS go separately, just video is going to be shared over the P2P network.
# Best Practice
- Click on the Website Management button in the sidebar of console, then register your domain and wait for review
- After reviewed, choose a player in use
- Modify your project code according to the demo
- Besides, you can import P2P plugin via npm or file
- Deploy your project once ready
- If p2p does not work, follow troubleshooting steps here