リアルタイム Web スクリーンストリーミングサーバ
概要
Windows向けに設計された高性能なスクリーン共有サーバ実装です。Desktop Duplication APIでデスクトップを高速にキャプチャし、NVENC(NVIDIA)/QSV(Intel)/AMF(AMD)などのハードウェアエンコーダでAV1にリアルタイム変換。WebRTCを使った低遅延配信パイプラインと、運用のためのリアルタイム計測・メトリクス機能を備え、エンドツーエンドで6〜20msを達成することを目標とした実装例・リファレンスを提供します。(約300字)
リポジトリの統計情報
- スター数: 1
- フォーク数: 0
- ウォッチャー数: 1
- コミット数: 9
- ファイル数: 8
- メインの言語: HTML
主な特徴
- Windows Desktop Duplication APIを用いた低遅延な画面キャプチャ
- ハードウェアアクセラレーション(NVENC/QSV/AMF)でのAV1エンコーディング対応
- WebRTCによるリアルタイム配信とブラウザ接続用のサンプルクライアント(index.html)
- リアルタイムメトリクス計測・インストルメンテーションを備えた運用志向の設計
技術的なポイント
本プロジェクトは「キャプチャ→エンコード→送信」のパイプラインを極限まで遅延を抑えて設計しています。キャプチャ層ではWindows固有のDesktop Duplication APIを使い、GPU/ディスプレイパスを介して高フレームレートかつ低遅延でフレームを取得します。エンコード層はハードウェアエンコーダ(NVENC, Intel QSV, AMD AMF)に依存してAV1を生成することで、CPU負荷を抑えつつ高圧縮率と低エンドツーエンド遅延を両立します。ネットワーク層はWebRTCを利用し、ブラウザ側とのシグナリング/ICE/DTLS/SRTPを組み合わせた標準的なリアルタイム配信を行います。実運用を想定し、フレーム遅延、エンコードレイテンシ、パケットロスや再送、ビットレート変動などを測定するメトリクスを導入している点も注目です。C++17で実装されており、BSL 1.1ライセンスの下で配布されています。ハードウェア依存性(対応GPU・ドライバ)やWindows固有APIのためプラットフォームは限定されますが、その代わりに非常に低いレイテンシ特性(READMEでは6〜20ms)を実現しています。クライアント向けHTMLファイルが用意されており、実際のブラウザでの検証が容易です。
プロジェクトの構成
主要なファイルとディレクトリ:
- CMakeLists.txt: file
- LICENSE: file
- README.md: file
- build.bat: file
- index.html: file
…他 3 ファイル
まとめ
Windows専用の低遅延ハードウェアAV1 WebRTCスクリーン配信の実例として有用。
リポジトリ情報:
- 名前: realtime-web-screen-streaming
- 説明: High-performance WebRTC screen streaming server with hardware-accelerated AV1 encoding. Low-latency desktop capture using Windows Desktop Duplication API, NVENC/QSV/AMF encoding, and real-time metrics instrumentation.
- スター数: 1
- 言語: HTML
- URL: https://github.com/DanielChrobak/realtime-web-screen-streaming
- オーナー: DanielChrobak
- アバター: https://avatars.githubusercontent.com/u/88957612?v=4
READMEの抜粋:
Screen Share Server
High-performance WebRTC screen streaming with hardware-accelerated AV1 encoding achieving 6-20ms end-to-end latency
(記事作成:GitHubリポジトリの公開情報およびREADMEの抜粋に基づく要約)