このプロジェクトについて

P2P Media Loaderは、Webブラウザのページ上でライブおよびオンデマンドのビデオをピアツーピアで配信するためのオープンソースJavaScriptライブラリです。HTML5 video、WebRTCデータチャネル、Media Source Extensionsといったブラウザ技術を使用し、プラグインやアドオンを必要とせずに一般的なHTML5プレーヤーと統合します。 このライブラリは、P2P CDN、ハイブリッドCDN、マルチCDN、P2PTV、エンタープライズCDN(eCDN)などと呼ばれることも多い大規模なP2Pメッシュネットワークを構築するために設計されています。同じHLSまたはMPEG-DASHストリームを視聴している視聴者は、メディアセグメントをリアルタイムで共有でき、これによりオリジンサーバーやCDNの負荷を軽減し、帯域コストを削減し、利用可能な総帯域幅を増やすことができます。 主な機能: - HLSまたはMPEG-DASHによるライブおよびVODストリームをサポートし、アダプティブビットレートストリーミングも含みます。 - Hls.jsおよびShaka Playerエンジンで動作し、ライブラリAPIとのカスタム統合を通じてVidstack、Clappr、MediaElement、Plyr、DPlayer、OpenPlayerJS、PlayerJSなどのプレーヤーと統合できます。 - 最新のデスクトップおよびモバイルブラウザで動作します: Chrome、Firefox、Safari(macOS、iPadOS、iOS 17.1以降)、Windows上のEdge。ネイティブのiOSおよびAndroidアプリに組み込み、ネイティブプレーヤーと併用することもできます。 - シンプルな構成では、サーバー側ソフトウェアは不要です。デフォルトで公開WebTorrentトラッカーと公開STUNサーバーを使用します。大規模な展開では、wt-tracker、Aquatic、OpenWebtorrent Tracker、bittorrent-trackerなどのオープンソース実装を用いて専用トラッカーを運用できます。 仕組み: このライブラリを実行する各ブラウザインスタンスがピアとして機能します。最初は、再生を迅速に開始するためにメディアセグメントがソースサーバーまたはCDNからHTTP(S)経由で取得されます。その後、ライブラリはストリームの詳細とICE候補をWebTorrentトラッカーに通知し、同じストリームを視聴しているピアのリストを受信して接続し、追加のセグメントをピアからダウンロードし、すでに保持しているセグメントを共有します。利用可能なピアがない場合は、従来のストリームと同様にHTTP(S)経由でダウンロードを続けます。 このプロジェクトは、コア、Hls.js統合、Shaka Player統合用のnpmパッケージに加え、古いブラウザやスマートTV向けのESモジュールおよびIIFEのCDNビルドを提供しています。ドキュメントには、APIドキュメント、Webおよびネイティブモバイル統合のガイド、v3からv4への移行ガイド、デモ、FAQ、技術概要が含まれます。関連ソフトウェアには、高性能なWebTorrentトラッカーがあります。