We will not respond to PRs or issues that have not been discussed on Discord. Also, Discord is only available in Japanese.
Please read https://github.com/shiguredo/oss/blob/master/README.en.md before use.
利用前に https://github.com/shiguredo/oss をお読みください。
WebRTC Native Client Momo は libwebrtc を利用しブラウザなしでさまざまな環境で動作する WebRTC ネイティブクライアントです。
- Raspberry Pi の GPU に積まれているハードウェアアクセラレーター機能を V4L2 M2M 経由で利用できます
- ハードウェアエンコーダー: H.264
- ハードウェアデコーダー: H.264
- Raspberry Pi 5 では H.264 ハードウェアアクセラレーターが搭載されていないため利用できません
- Apple macOS に搭載されているハードウェアアクセラレーター機能を Apple VideoToolbox 経由で利用できます
- ハードウェアエンコーダー: H.264 / H.265
- ハードウェアデコーダー: H.264 / H.265
- NVIDIA ビデオカードに搭載されているハードウェアアクセラレーター機能を NVIDIA Video Codec 経由で利用できます
- ハードウェアエンコーダー: VP9 / AV1 / H.264 / H.265
- ハードウェアデコーダー: VP9 / AV1 / H.264 / H.265
- Intel グラフィックスチップに搭載されているハードウェアアクセラレーター機能を Intel VPL 経由で Windows x86_64 と Ubuntu x86_64 にてハードウェアアクセラレーター機能を利用できます
- ハードウェアエンコーダー: VP9 / AV1 / H.264 / H.265
- ハードウェアデコーダー: VP9 / AV1 / H.264 / H.265
- NVIDIA Jetson に搭載されているハードウェアアクセラレーター機能を NVIDIA JetPack SDK 経由で利用できます
- ハードウェアエンコーダー: VP9 / AV1 / H.264 / H.265
- ハードウェアデコーダー: VP9 / AV1 / H.264 / H.265
Momo は Momo 自体がシグナリングサーバーを持っているため、完全な P2P モードで利用できます。
ブラウザから Momo にアクセスするだけで利用できます。
Momo は WebRTC Signaling Server Ayame に対応したモードがあり、 Momo どうしでも利用できます。
Momo は時雨堂が開発、販売している WebRTC SFU Sora に対応したモードがあります。
raspberrypi/libcamera に対応しています。
詳細は LIBCAMERA.md を確認してください。
Momo はカメラの無圧縮映像に対応しているため、ハードウェアエンコーダーを利用することで 120 fps で配信できます。
Momo はハードウェアアクセラレーターを利用することで WebRTC で 4K の配信 / 視聴ができます。
Momo は Sora モード利用時にサイマルキャスト (複数画質の同時配信) に対応しています。
Momo はデータチャネルを利用しシリアルに直接読み書きできます。信頼性より低遅延を優先したい場合の利用を想定しています。
Momo を GUI 環境で利用した場合、Simple DirectMedia Layer を利用して音声や映像を受信できます。
ハードウェアアクセラレーターを利用した H.265 の送受信に対応済みです。
AV1 の送受信に対応済みです。
Momo は YUY2 や NV12 といった無圧縮のフォーマットに対応しています。
Momo は Sora モード利用時にクライアント証明書に対応しています。
Momo は OpenH264 を利用して H.264 のソフトウェアのエンコード / デコードができます。
Momo は Linux (Ubuntu / Raspberry Pi OS) と macOS で音声入力、音声出力、映像入力デバイスの一覧を取得できます。
Momo は Windows、Linux (Ubuntu / Raspberry Pi OS)、macOS で映像入力デバイスを指定できます。
Linux については doc/LINUX_VIDEO_DEVICE.md を確認してください。
Momo は Linux (Ubuntu / Raspberry Pi OS) と macOS で音声入力、音声出力デバイスを指定できます。
Linux については doc/LINUX_AUDIO_DEVICE.md を確認してください。
WebRTC Native Client Momo と Jetson Nano で 4K@30 配信
OpenMomo は WebRTC Native Client Momo をオープンソースとして公開し継続的に開発していくプロジェクトです。 ブラウザやスマートフォン以外でも、WebRTC をさまざまな用途で使ってもらえればと考えています。
詳細については下記を確認してください。
また Momo についてのつぶやきは以下にまとめてあります。
https://gist.github.com/voluntas/51c67d0d8ce7af9f24655cee4d7dd253#twitter
以下からダウンロードできます。
https://github.com/shiguredo/momo/releases
- Windows 11 x86_64
- macOS 26 arm64
- macOS 15 arm64
- macOS 14 arm64
- Ubuntu 24.04 x86_64
- Ubuntu 22.04 x86_64
- Ubuntu 22.04 ARMv8 (JetPack 6)
- Raspberry Pi OS Bookworm (64bit)
- Raspberry Pi 5
- Raspberry Pi 4
- Raspberry Pi 3
- Raspberry Pi 2 Model B v1.2
- Raspberry Pi Zero 2 W
Momo を使ってみたい人は USE.md をお読みください。
- Momo をビルドしたい、またはパッケージ作成したい人は BUILD.md をお読みください
FAQ.md をお読みください。
Apache License 2.0
Copyright 2015 tnoho (Original Author)
Copyright 2018 Shiguredo Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
https://www.openh264.org/BINARY_LICENSE.txt
"OpenH264 Video Codec provided by Cisco Systems, Inc."
優先実装とは Sora のライセンスを契約しているお客様限定で Momo の実装予定機能を有償にて前倒しで実装することです。
- Windows 版 OSS 化
- WebRTC の Statistics 対応
- 現時点では企業名非公開
- Windows 版 Momo NVIDIA Video Codec 対応
- Linux 版 Momo NVIDIA Video Codec 対応
- Windows / Linux 版 スクリーンキャプチャ対応
こちらに掲載していない機能でも対応できる場合がありますのでまずはお問い合わせください
- Windows 11 x86_64 での
--list-devicesオプション対応 - Windows 11 x86_64 での
--audio-input-deviceオプション対応 - Windows 11 x86_64 での
--audio-output-deviceオプション対応 - Windows 11 arm64
- Ubuntu 20.04 arm64 (JetPack 5)
Momo の原作者である @tnoho が書いた Momo のノウハウがたくさん詰まった本が販売されています。
WebRTC をブラウザ外で使ってブラウザでできることを増やしてみませんか?(電子版) - でんでんらぼ - BOOTH
- サポートしません
- アドバイスします
- フィードバック歓迎します
最新の状況などは Discord で共有しています。質問や相談も Discord でのみ受け付けています。
Discord へお願いします。
WebRTC Native Client Momo に対する有料でのテクニカルサポート契約については WebRTC SFU Sora ライセンス契約をしているお客様が前提です。
- Momo のテクニカルサポート
- OSS 公開前提での Momo への機能追加
https://docs.nvidia.com/video-technologies/video-codec-sdk/13.0/index.html
“This software contains source code provided by NVIDIA Corporation.”
H.264 ハードウェアエンコーダー のみ を利用している Momo 単体の配布においてはライセンス費用は不要ですが、 ハードウェアとセットで配布する場合はライセンス費用を支払う必要があります。
ただし、 Raspberry Pi においては H.264 のライセンスがハードウェア費用に含まれているため、 配布時にライセンス費用を支払う必要はありません。
詳細については Via LA Licensing まで問い合わせることをおすすめします。
Momo の H.264 対応は Via LA Licensing (旧 MPEG-LA) に連絡を取り、ロイヤリティの対象にならないことを確認しています。
時雨堂がエンドユーザーの PC / デバイスに既に存在する AVC / H.264 エンコーダー / デコーダーに依存する製品を提供する場合は、 ソフトウェア製品は AVC ライセンスの対象外となり、ロイヤリティの対象にもなりません。
- Raspberry Pi のハードウェアエンコーダーのライセンス費用について
- Apple のライセンス費用は個人利用および非商用利用目的に限るため、配布においては別途、団体との契約が必要
- AMD ビデオカードのハードウェアエンコーダーのライセンス費用は別途、団体との契約が必要
- NVIDIA ビデオカードのハードウェアエンコーダーのライセンス費用は別途、団体との契約が必要
- NVIDIA Jetson Nano のハードウェアエンコーダーのライセンス費用は別途、団体との契約が必要
- Intel Quick Sync Video のハードウェアエンコーダーライセンス費用は別途、団体との契約が必要
H.265 ハードウェアエンコーダー のみ を利用している Momo 単体の配布においてはライセンス費用は不要ですが、 ハードウェアとセットで配布する場合はライセンス費用を支払う必要があります。
Momo の H.265 対応は以下の二つの団体に連絡を取り、H.265 ハードウェアアクセラレーターのみを利用する場合は、OSS 公開とビルド済みバイナリの配布がライセンス不要であることを確認しています。