Dorisoy.Mediasoup — .NET 8 ベースの Mediasoup 実装とクライアント群

Library

概要

Dorisoy.Mediasoup は、.NET 8 を基盤とする総合的なリアルタイム音声・映像プラットフォームです。プロジェクトは Mediasoup の SFU(Selective Forwarding Unit)モデルを C# で再実装するコアライブラリを中心に、libuv による非同期 I/O バインディング、ASP.NET Core 用ミドルウェア、SignalR ベースのシグナリングサーバー、デスクトップ(WPF)とブラウザ(Blazor)クライアントを含む一連のコンポーネントから構成されます。Open/Pull/Invite の3模式をサポートし、部屋管理、音声・映像の取得と伝送、多端間の相互運用を想定。SIPSorcery、OpenCvSharp、NAudio など既存のメディアライブラリと連携し、オンライン会議、遠隔医療、ライブ配信などの用途に向けた高性能で柔軟な媒体サービスを提供します。

GitHub

リポジトリの統計情報

  • スター数: 1
  • フォーク数: 0
  • ウォッチャー数: 1
  • コミット数: 5
  • ファイル数: 12
  • メインの言語: C#

主な特徴

  • Mediasoup SFU を C#/.NET で実装したコアライブラリ(WebRTC のメディアルーティングを担う)
  • SignalR を用いたシグナリングサーバーと ASP.NET Core ミドルウェアによる統合
  • libuv バインディングによる高効率な非同期 I/O 処理
  • WPF デスクトップ & Blazor Web クライアント、Open/Pull/Invite の運用モード対応

技術的なポイント

Dorisoy.Mediasoup の技術的な肝は「.NET 上での SFU 実装」と「ネイティブ I/O を結ぶバインディング」にあります。SFU アーキテクチャでは、各参加者(Producer)が送る RTP パケットをサーバー側で受信し、必要な参加者(Consumer)にそのままフォワードすることで低遅延かつ帯域の効率化を図ります。本プロジェクトはこれを C# で設計しており、ルーター・トランスポート・プロデューサー・コンシューマーといった Mediasoup の概念を踏襲していることから、既存の Mediasoup ベース実装との概念的互換性が期待できます。

低レベルの I/O 周りには libuv のバインディングを組み込み、ソケットやファイルなど非同期イベントの処理を効率化している点も注目です。libuv は Node.js の基盤でもある高性能なイベントループで、.NET のマネージドなスレッドモデルとネイティブのイベント駆動を橋渡しすることで、RTP パケットの高速な受送信や大量の同時接続を扱いやすくします。

シグナリングには SignalR を採用し、Web クライアント(Blazor)やデスクトップクライアント(WPF)と容易に統合できます。ICE/DTLS/SRTP 等の WebRTC プロトコルシグナリングを SignalR 経由で行う実装は、.NET エコシステムで完結する利点があります。SIPSorcery を組み合わせることで SIP ベースのシステムとの相互接続や VoIP の連携も可能です。

また、メディア前処理やデバイス入出力では OpenCvSharp(ビデオ処理)や NAudio(オーディオ入出力)を利用しており、映像のフィルタリングや音声処理、外部デバイス管理を柔軟に組み込めます。運用モードとして Open(公開)、Pull(プル方式)、Invite(招待方式)を備えることで、配信/会議/コールバック型など幅広いユースケースに対応できます。全体として、.NET ベースで完結するリアルタイムメディア基盤を目指すプロジェクトであり、既存のネイティブ Mediasoup 環境との比較やパフォーマンスチューニング、運用監視の設計が今後の課題・改善点になり得ます。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .config: dir
  • .editorconfig: file
  • .gitignore: file
  • .vscode: dir
  • Delete-BIN-OBJ-Folders.bat: file

…他 7 ファイル

まとめ

.NET 環境で Mediasoup 的な SFU を実装し、クライアントまで揃えた実用的な出発点。拡張と運用面の整備が今後の鍵。

リポジトリ情報:

READMEの抜粋: Dorisoy.Mediasoup 是一个基于 .NET 8 的完整实时音视频通信解决方案,采用 Mediasoup SFU 架构实现高性能的 WebRTC 媒体服务。项目包含 Mediasoup 核心库(C# 实现)、libuv 异步 I/O 绑定、ASP.NET Core 集成中间件、SignalR 信令服务器,以及 WPF 桌面客户端和 Blazor Web 客户端。支持 Open/Pull/Invite 三种服务模式,提供房间管理、音视频采集传输、多端互通等功能。技术栈涵盖 WebRTC、SignalR、SIPSorcery、OpenCvSharp、NAudio 等,适用于在线会议、远程协作、直播互动等场景。


解决方案构成

Dorisoy.Mediasoup.sln
├── src/                                    # 源代码目录
│   ├── Dorisoy.Mediasoup/                  # Mediasoup SFU 核心库,C# 实现 WebRTC 媒体路由、传输管理
...