Awesome
WebRTC Native Client Momo
About Shiguredo's open source software
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 について
WebRTC Native Client Momo は libwebrtc を利用しブラウザなしで様々な環境で動作する WebRTC ネイティブクライアントです。
ハードウェアアクセラレーターへの対応
- Intel グラフィックスチップに搭載されているハードウェアアクセラレーター機能を Intel VPL 経由で Windows x86_64 と Ubuntu x86_64 にてハードウェアアクセラレーター機能を利用することが可能です
- VP9 /AV1 の送信時、既知の問題 がありますのでご確認ください
- ハードウェアエンコーダー: VP9 / AV1 / H.264 / H.265
- ハードウェアデコーダー: VP9 / AV1 / H.264 / H.265
- Apple macOS に搭載されているハードウェアアクセラレーター機能を Apple VideoToolbox 経由で利用することができます
- ハードウェアエンコーダー: H.264 / H.265
- ハードウェアデコーダー: H.264 / H.265
- NVIDIA グラフィックスカードに搭載されているハードウェアアクセラレーター機能を NVIDIA Video Codec SDK 経由で利用することができます
- ハードウェアエンコーダー: VP9 / AV1 / H.264 / H.265
- ハードウェアデコーダー: VP9 / AV1 / H.264 / H.265
- NVIDIA Jetson に搭載されているハードウェアアクセラレーター機能を Jetson JetPack SDK 経由で利用することができます
- ハードウェアエンコーダー: VP9 / AV1 / H.264 / H.265
- ハードウェアデコーダー: VP9 / AV1 / H.264 / H.265
- Raspberry Pi の GPU に積まれているハードウェアアクセラレーター機能を利用することができます
- ハードウェアエンコーダー: H.264
- ハードウェアデコーダー: H.264
4K の配信
Momo はハードウェアエンコーダーを利用することで WebRTC で 4K の配信を実現可能です
4K の視聴
Momo はハードウェアデコーダーを利用することで WebRTC で 4K の配信を実現可能です
サイマルキャストへの対応
Momo は Sora モード利用時にサイマルキャスト(複数画質の同時配信)に対応しています。
データチャネル経由でのシリアルの読み書き
Momo はデータチャネルを利用しシリアルに直接読み書きが可能です。信頼性より低遅延を優先したい場合の利用を想定しています。
SDL を利用した音声や映像の受信
Momo を GUI 環境で利用した場合、Simple DirectMedia Layer を利用して音声や映像の受信を行うことができます。
AV1 への対応
AV1 の送受信に対応済みです。
クライアント証明書への対応
Momo は Sora モード利用時にクライアント証明書に対応しています。
OpenH264 の利用
Momo は OpenH264 を利用して H.264 のソフトウェアのエンコード/デコードを行うことができます。
動画
WebRTC Native Client Momo と Jetson Nano で 4K@30 配信
OpenMomo プロジェクトについて
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 14 arm64
- Ubuntu 24.04 x86_64
- Ubuntu 22.04 x86_64
- Ubuntu 22.04 ARMv8 (NVIDIA Jetson JetPack 6)
- Raspberry Pi OS (64bit)
- Raspberry Pi 4
- Raspberry Pi 3
- Raspberry Pi 2 Model B v1.2
- Raspberry Pi Zero 2 W
対応終了
優先実装にて対応することができます
- macOS x86_64
- Ubuntu 20.04 ARMv8 (NVIDIA Jetson JetPack 5)
- Ubuntu 18.04 ARMv8 (NVIDIA Jetson JetPack 4)
- Raspberry Pi OS (32bit)
使ってみる
Momo を使ってみたい人は USE.md をお読みください。
ビルドする
- Momo をビルドしたい、またはパッケージ作成したい人は BUILD.md をお読みください
FAQ
FAQ.md をお読みください。
ライセンス
Apache License 2.0
Copyright 2015-2024, tnoho (Original Author)
Copyright 2018-2024, 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.
OpenH264
https://www.openh264.org/BINARY_LICENSE.txt
"OpenH264 Video Codec provided by Cisco Systems, Inc."
優先実装
優先実装とは Sora のライセンスを契約頂いているお客様限定で Momo の実装予定機能を有償にて前倒しで実装することです。
- Windows 版 OSS 化
- WebRTC's Statistics 対応
- 現時点では企業名非公開
- Windows 版 Momo NVIDIA Video Codec SDK 対応
- Linux 版 Momo NVIDIA Video Codec SDK 対応
- Windows / Linux 版 スクリーンキャプチャ対応
優先実装が可能な機能一覧
こちらに掲載していない機能でも対応できる場合がありますのでまずはお問い合わせください
- Windows 11 arm64
- Ubuntu 20.04 arm64 (NVIDIA Jetson JetPack 5)
Momo についての電子書籍
Momo の原作者である @tnoho が書いた Momo のノウハウが沢山詰まった本が販売されています。
WebRTC をブラウザ外で使ってブラウザでできることを増やしてみませんか?(電子版) - でんでんらぼ - BOOTH
サポートについて
Discord
- サポートしません
- アドバイスします
- フィードバック歓迎します
最新の状況などは Discord で共有しています。質問や相談も Discord でのみ受け付けています。
バグ報告
Discord へお願いします。
有料でのテクニカルサポートについて
WebRTC Native Client に対する有料でのテクニカルサポート契約については WebRTC SFU Sora ライセンス契約をしているお客様が前提となります。
- Momo のテクニカルサポート
- OSS 公開前提での Momo への機能追加
H.264 のライセンス費用について
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 のハードウェアエンコーダーのライセンス費用は Raspberry Pi の価格に含まれています
- Apple のライセンス費用は個人利用および非商用利用目的に限るため、配布においては別途、団体との契約が必要
- AMD ビデオカードのハードウェアエンコーダーのライセンス費用は別途、団体との契約が必要
- NVIDIA ビデオカードのハードウェアエンコーダーのライセンス費用は別途、団体との契約が必要
- NVIDIA Jetson Nano のハードウェアエンコーダーのライセンス費用は別途、団体との契約が必要
- Intel Quick Sync Video のハードウェアエンコーダーライセンス費用は別途、団体との契約が必要
H.265 のライセンス費用について
H.265 ハードウェアエンコーダー のみ を利用している Momo 単体の配布においてはライセンス費用は不要ですが、 ハードウェアとセットで配布する場合はライセンス費用を支払う必要があります。
Momo の H.265 対応は以下の二つの団体に連絡を取り、H.265 ハードウェアアクセラレーターのみを利用し、 H.265 が利用可能なバイナリを配布する事は、ライセンスが不要であることを確認しています。
また、H.265 のハードウェアアクセラレーターのみを利用した H.265 対応の Momo を OSS で公開し、 ビルド済みバイナリを配布する事は、ライセンスが不要であることも確認しています。