Skip to content

shiguredo/momo

Repository files navigation

WebRTC Native Client Momo

libwebrtc GitHub tag (latest SemVer) License Actions Status

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 ネイティブクライアントです。

https://momo.shiguredo.jp/

ハードウェアアクセラレーターへの対応

  • 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 をいろいろな用途で使ってもらえればと思っています。

詳細については下記をご確認ください。

OpenMomo プロジェクト

また 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

対応終了

優先実装にて対応することができます

使ってみる

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 11 arm64
  • Ubuntu 20.04 arm64 (NVIDIA Jetson JetPack 5)

Momo についての電子書籍

Momo の原作者である @tnoho が書いた Momo のノウハウが沢山詰まった本が販売されています。

WebRTC をブラウザ外で使ってブラウザでできることを増やしてみませんか?(電子版) - でんでんらぼ - BOOTH

サポートについて

Discord

  • サポートしません
  • アドバイスします
  • フィードバック歓迎します

最新の状況などは Discord で共有しています。質問や相談も Discord でのみ受け付けています。

https://discord.gg/shiguredo

バグ報告

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 ライセンスの対象外となり、ロイヤリティの対象にもなりません。

H.265 のライセンス費用について

H.265 ハードウェアエンコーダー のみ を利用している Momo 単体の配布においてはライセンス費用は不要ですが、 ハードウェアとセットで配布する場合はライセンス費用を支払う必要があります。

Momo の H.265 対応は以下の二つの団体に連絡を取り、H.265 ハードウェアアクセラレーターのみを利用し、 H.265 が利用可能なバイナリを配布する事は、ライセンスが不要であることを確認しています。

また、H.265 のハードウェアアクセラレーターのみを利用した H.265 対応の Momo を OSS で公開し、 ビルド済みバイナリを配布する事は、ライセンスが不要であることも確認しています。