logo

momoMomo とは

Momo は Raspberry Pi や NVIDIA Jetson などのハードウェアエンコーダを利用し、4K や 1080p といった高画質な映像でも遅延 1 秒未満で配信できる WebRTC ネイティブクライアントです。
株式会社時雨堂が開発し、Apache License 2.0 のオープンソースソフトウェアとして GitHub 上に公開しています。

momoおしらせ

2024.09.18
WebRTC Native Client Momo 2024.1.0 をリリースしました
  • H.265 ハードウェアアクセラレーターに対応しました
  • Intel VPL を利用したハードウェアアクセラレーターに対応しました
  • Ubuntu 24.04 x86_64 に対応しました
  • libwebrtc M128 に対応しました
詳細はリリースノートをご確認ください
2023.09.28
WebRTC Native Client Momo 2023.1.0 をリリースしました
  • Raspberry Pi OS 64 bit に対応しました
  • ラズパイ専用カメラ(libcamera) に対応しました
  • Ubuntu 22.04 x86_64 に対応しました
  • libwebrtc M117 に対応しました
詳細はリリースノートをご確認ください
2022.10.21
WebRTC Native Client Momo 2022.4.1 をリリースしました
  • libwebrtc M107 に対応しました
詳細はリリースノートをご確認ください
2022.08.09
WebRTC Native Client Momo 2022.3.0 をリリースしました
  • 認証付き Proxy に対応しました
  • libwebrtc M104 に対応しました
詳細はリリースノートをご確認ください
2022.04.25
WebRTC Native Client Momo 2022.2.0 をリリースしました
  • Intel Media SDK に対応
  • NVIDIA VIDEO CODEC SDK を利用したハードウェアデコーダに対応
  • クライアント証明書に対応しました
  • libwebrtc M102 に対応しました
詳細はリリースノートをご確認ください
2022.03.09
WebRTC Native Client Momo 2022.1.0 をリリースしました
  • Raspberry Pi OS bullseye に対応
  • libwebrtc M99 に対応しました
詳細はリリースノートをご確認ください

momo特長

オールインワン
Momo は、シグナリング機能、エンコーダ/デコーダ機能、デバイス認識機能を搭載しており、Momo だけでカメラからの映像を読み込み、変換し、配信することができます。
簡単なビルド
ビルドのしやすさにはこだわり、効率とシンプルさを徹底的に追求したビルド環境を用意しています。コマンドを1つ打つだけでバイナリが生成できます。
ハードウェアアクセラレータ対応
Momo では H.264 、VP8、VP9 、AV1 ハードウェアエンコーダを利用することで、CPU リソースをほとんど使わずに高画質の配信ができます。プラットフォームとして Raspberry Pi、NVIDIA Jetson、NVIDIA VIDEO CODEC SDK、Apple macOS、Intel Media SDK に対応しています。Raspberry Pi や NVIDIA Jetson はハードウェアデコーダに対応しています。

  • Raspberry Pi 4 の例

  • NVIDIA Jetson Orin の例

4 K 対応
Momo ではハードウェアアクセラレータを利用することで、4K / 30FPS での高画質な配信が可能です。
3 種類の配信モード
Momo は、「テストモード」「Ayame モード」「Sora モード」の 3 種類を用意しています。
それぞれの詳細は こちら で紹介しています。
  • テストモード
    本来は Momo 自体の開発者向けに用意されているモードです。
    このテストモードでは Momo 自体に内蔵しているシグナリングサーバーを利用するため、 まず Momo の動作を確認したいという場合にも利用できます。
  • Ayame モード
    時雨堂が提供する「WebRTC シグナリングサーバー Ayame」と組み合わせて使うモードです。
    Momo と WebRTC クライアント間で、映像・音声・データを 1 : 1 で送受信することができます。
  • Sora モード
    時雨堂が提供する「WebRTC SFU Sora」と組み合わせて使うモードです。
    1 : 多および多 : 多 の配信や、録画・録音が必要な商用サービスでの利用を想定しています。
音声や映像の受信・再生
Momo は単体で音声や映像を受信・再生することが可能です。
SDL (Simple DirectMedia Layer) を利用することで、音声や映像の受信・再生ができます。また、ハードウェアアクセラレータのデコード機能を利用することで、CPU の負荷を抑えて受信・再生することができます。
多くのプラットフォームで動作
Momo は Raspberry Pi や NVIDIA Jetson だけでなく、 macOS や Windows でも動作します
libwebrtc に追従
Momo は積極的に最新の libwebrtc に追従しています
認証付き HTTP Proxy 対応
Momo では認証付き HTTP Proxy を越えられる仕組みを提供しています。
スクリーンキャプチャ対応
Windows と Linux と macOS 版でスクリーンキャプチャに対応しています。
データチャネルとシリアル通信
Momo は Ayame と組み合わせて利用することで、データチャネル経由でのシリアル通信が可能です。
サイマルキャスト配信
Momo は複数の画質を同時に配信できるサイマルキャストに対応しています。Sora と組み合わせて利用することで、受信側が自身のネットワーク環境に合わせた画質を選択できるようになります。
時雨堂によるメンテナンス
Momo は、商用サービス向けの WebRTC サーバーを開発している時雨堂が常にメンテナンスをしています。WebRTC に関する豊富な知識とノウハウを活かし、適切なアップデートや機能追加を行っています。

momoまずは Momo を動してみる (テストモード)

Momo 自体がシグナリング機能を内蔵しているため、まず手始めに Momo の動作確認を行いたい場合に利用できます。

momo1:1 の配信をする (Ayame モード)

時雨堂が提供する「WebRTC シグナリングサーバー Ayame」と組み合わせて利用すれば、Momo と WebRTC クライアント間で、映像・音声・データを 1 : 1 で送受信することができます。

1 : 1 で映像や音声の送受信を行う場合

Momo は SDL (Simple DirectMedia Layer) を利用することで、双方向のやりとりも実現できます。
ハードウェア側では WebRTC で送受信する H.264 の映像をエンコードまたはデコードすることができます。
また、カメラデバイスから送られてくる MJPEG 形式の圧縮された映像は、Raspberry Pi のハードウェアデコーダを利用することで、CPU の負荷を抑えて受信することができます。

1 : 1 でデータの送受信を行う場合

Ayame モードでは、データチャネル経由でシリアル通信が可能です。

momo1:多 の配信をする (Sora モード)

時雨堂が提供する「WebRTC SFU Sora」と組み合わせて利用すれば、1 : 多 の配信をしたり、配信した映像や音声を録画・録音したりすることも可能です。おもに商用サービスでの利用を想定しています。

多人数で送受信を行う場合

Momo は SDL (Simple DirectMedia Layer) を利用することで、双方向のやりとりも実現できます。Sora と組み合わせれば、以下のような多人数どうしでの送受信 (送信のみも可) も実現できます。

momo利用例

個人でご利用いただいている例

momo動作環境

momoダウンロード

Github のリリースから、すぐに使えるバイナリがダウンロードできます。

momo有料サポート

現在は、WebRTC SFU Sora をご購入いただいているお客様限定で、Momo と Sora を組み合わせてご利用いただく場合の技術サポートのみ、有料でご提供しています。

有料サポートをご希望のお客様は、Sora のサポートまでメールでご連絡ください。

momoコミュニティ

Momo のコミュニティはこちら

https://discord.gg/shiguredo