All Projects β†’ Novage β†’ P2p Media Loader

Novage / P2p Media Loader

Licence: apache-2.0
An open-source engine for P2P streaming of live and on demand video directly in a web browser HTML page

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to P2p Media Loader

P2p Cdn Sdk Javascript
Free p2p cdn github javascript sdk to reduce video streaming costs of live and on demand video using webrtc by upto 90% and improve scalability by 6x - πŸš€ Vadootv πŸš€
Stars: ✭ 158 (-80.78%)
Mutual labels:  player, dash, webrtc, p2p, hls, peer
p2p-cdn-sdk-android
Free p2p cdn android github sdk to reduce video streaming costs of live and on demand video using webrtc by upto 90% and improve scalability by 6x - πŸš€ Vadootv πŸš€
Stars: ✭ 39 (-95.26%)
Mutual labels:  player, hls, p2p, peer, dash
Android P2p Engine
Let your viewers become your unlimitedly scalable CDN.
Stars: ✭ 70 (-91.48%)
Mutual labels:  player, webrtc, p2p, hls, peer
Ios P2p Engine
Let your viewers become your unlimitedly scalable CDN.
Stars: ✭ 31 (-96.23%)
Mutual labels:  player, webrtc, p2p, hls, peer
Hlsjs P2p Engine
Let your viewers become your unlimitedly scalable CDN.
Stars: ✭ 759 (-7.66%)
Mutual labels:  player, webrtc, p2p, hls, peer
Diffy
πŸŽžοΈπŸ’“πŸΏ Love streaming - It's always best to watch a movie together ! πŸ€—
Stars: ✭ 37 (-95.5%)
Mutual labels:  bittorrent, webrtc, p2p, webtorrent
P2P-DPlayer
DPLayer powered by CDNBye P2P Engine
Stars: ✭ 63 (-92.34%)
Mutual labels:  player, hls, webrtc, p2p
Webtorrent
⚑️ Streaming torrent client for the web
Stars: ✭ 25,554 (+3008.76%)
Mutual labels:  webrtc, p2p, bittorrent, webtorrent
Webtorrent Desktop
❀️ Streaming torrent app for Mac, Windows, and Linux
Stars: ✭ 8,587 (+944.65%)
Mutual labels:  webrtc, p2p, bittorrent, webtorrent
Wt Tracker
High-performance WebTorrent tracker
Stars: ✭ 144 (-82.48%)
Mutual labels:  webrtc, p2p, bittorrent, webtorrent
Dplayer
🍭 Wow, such a lovely HTML5 danmaku video player
Stars: ✭ 12,101 (+1372.14%)
Mutual labels:  player, dash, hls, webtorrent
P2P-CKPlayer
塌ε…₯P2PεΌ•ζ“Žηš„CKPlayerοΌŒθ§†ι’‘η½‘η«™ηœζ΅ι‡&εŠ ι€Ÿη₯žε™¨
Stars: ✭ 49 (-94.04%)
Mutual labels:  player, hls, webrtc, p2p
Torrent Discovery
Discover BitTorrent and WebTorrent peers
Stars: ✭ 177 (-78.47%)
Mutual labels:  p2p, bittorrent, webtorrent, peer
Bittorrent Dht
πŸ•Έ Simple, robust, BitTorrent DHT implementation
Stars: ✭ 1,004 (+22.14%)
Mutual labels:  p2p, bittorrent, webtorrent, peer
Html5 Dash Hls Rtmp
🌻 HTML5播放器、M3U8η›΄ζ’­/点播、RTMPη›΄ζ’­γ€δ½Žε»ΆθΏŸγ€ζŽ¨ζ΅/ζ’­ζ΅εœ°ε€ι‰΄ζƒ
Stars: ✭ 1,805 (+119.59%)
Mutual labels:  player, dash, webrtc, hls
Webtorrent Cli
WebTorrent, the streaming torrent client. For the command line.
Stars: ✭ 633 (-22.99%)
Mutual labels:  webrtc, p2p, bittorrent, webtorrent
U2web
stream video with p2p
Stars: ✭ 97 (-88.2%)
Mutual labels:  player, dash, webrtc, p2p
Instant.io
πŸš€ Streaming file transfer over WebTorrent (torrents on the web)
Stars: ✭ 2,954 (+259.37%)
Mutual labels:  webrtc, p2p, bittorrent, webtorrent
Planktos
Serving websites over bittorrent
Stars: ✭ 481 (-41.48%)
Mutual labels:  webrtc, bittorrent, webtorrent
abr-player
πŸ“Ό Adaptive Streaming Test Player
Stars: ✭ 13 (-98.42%)
Mutual labels:  player, hls, dash

P2P Media Loader

npm version

P2P Media Loader is an open-source JavaScript library that uses features of modern web browsers (i.e. HTML5 video and WebRTC) to deliver media over P2P and do playback via integrations with many popular HTML5 video players. It doesn’t require any web browser plugins or add-ons to function (see the demo).

It allows creating Peer-to-Peer network (also called P2P CDN or P2PTV) for traffic sharing between users (peers) that are watching the same media stream live or VOD over HLS or MPEG-DASH protocols.

It significantly reduces traditional CDN traffic and cost while delivering media streams to more users.

Related projects

Useful links

Key features

  • Supports live and VOD streams over HLS or MPEG-DASH protocols
  • Supports multiple HTML5 video players and engines:
    • Engines: Hls.js, Shaka Player
    • Video players: JWPlayer, Clappr, Flowplayer, MediaElement, VideoJS, Plyr, DPlayer, Player.js and others
  • Supports adaptive bitrate streaming of HLS and MPEG-DASH protocols
  • No need in server-side software. By default P2P Media Loader uses publicly available servers:

Key components of the P2P network

All the components of the P2P network are free and open-source.

P2P Media Loader network

P2P Media Loader web browser requirements are:

  • WebRTC Data Channels support to exchange data between peers
  • Media Source Extensions are required by Hls.js and Shaka Player engines for media playback

STUN server is used by WebRTC to gather ICE candidates. There are many running public servers available on Public STUN server list.

WebTorrent tracker is used for WebRTC signaling and to create swarms of peers that download the same media stream. Few running public trackers are available: https://openwebtorrent.com, https://tracker.novage.com.ua. It is possible to run personal WebTorrent tracker using open-source implementations: bittorrent-tracker, wt-tracker.

P2P Media Loader is configured to use public STUN and WebTorrent servers by default. It means that it is not required to run any server-side software for the P2P network to function.

How it works

A web browser runs a video player integrated with P2P Media Loader library. An instance of P2P Media Loader is called peer. Many peers form the P2P network.

P2P Media Loader starts to download initial media segments over HTTP(S) from source server or CDN. This allows beginning media playback faster. Also, in case of no peers, it will continue to download segments over HTTP(S) that will not differ from traditional media stream download over HTTP.

After that P2P Media Loader sends media stream details and its connection details (ICE candidates) to WebTorrent trackers and obtains from them list of other peers that are downloading the same media stream.

P2P Media Loader connects and starts to download media segments from the obtained peers as well as sharing already downloaded segments to them.

From time to time random peers from the P2P swarm download new segments over HTTP(S) and share them to others over P2P.

Limitations

Only one media track is delivered over P2P. If video and audio tracks in HLS or MPEG-DASH go separately, just video is going to be shared over the P2P network.

Web browsers support

Chrome Firefox macOS Safari iPadOS Safari (iPad) iOS Safari (iPhone) IE Edge
WebRTC Data Channels + + + + + - -
Media Source Extensions + + + + - + +
P2P Media Loader + + + + - - -
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].