• Stars
    star
    779
  • Rank 58,364 (Top 2 %)
  • Language
    C++
  • License
    Apache License 2.0
  • Created about 6 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

WebRTC Native Client Momo

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/

ハードウェアエンコーダーへの対応

  • NVIDIA Jetson に搭載されている VP8 や VP9 や H.264 ハードウェアエンコーダー機能を利用することで 4K@30 での配信が可能です
  • Raspberry Pi の GPU に積まれている H.264 ハードウェアエンコーダー機能を利用することが可能です
  • Apple macOS に搭載されている H.264 ハードウェアアクセラレーター機能を VideoToolbox 経由で利用することが可能です
  • NVIDIA グラフィックスカードに搭載されているハードウェアアクセラレーター機能を NVIDIA VIDEO CODEC SDK 経由で利用することが可能です
  • Intel Quick Sync VideoIntel Media SDK 経由で Windows x86_64 と Ubuntu x86_64 にて VP9 / H.264 ハードウェアアクセラレーター機能を利用することが可能です

4K 30fps での配信

Momo はハードウェアエンコーダーを利用することで WebRTC で 4K 60fps の配信を実現可能です

サイマルキャストへの対応

Momo は Sora モード利用時にサイマルキャスト(複数画質の同時配信)に対応しています。

データチャネル経由でのシリアルの読み書き

Momo はデータチャネルを利用しシリアルに直接読み書きが可能です。信頼性より低遅延を優先したい場合の利用を想定しています。

SDL を利用した音声や映像の受信

Momo を GUI 環境で利用した場合、Simple DirectMedia Layer を利用して音声や映像の受信を行うことができます。

AV1 への対応

AV1 の送受信に対応済みです。

クライアント証明書への対応

Momo は Sora モード利用時にクライアント証明書に対応しています。

動画

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

動作環境

  • Raspberry Pi OS (64bit) ARMv8
    • Raspberry Pi 4
    • Raspberry Pi 3
    • Raspberry Pi 2
  • Raspberry Pi OS (32bit) ARMv7
    • Raspberry Pi 4
    • Raspberry Pi 3
    • Raspberry Pi 2
    • Raspberry Pi Zero 2
  • Raspberry Pi OS (32bit) ARMv6
    • Raspberry Pi Zero
    • Raspberry Pi 1
  • Ubuntu 20.04 x86_64
  • Ubuntu 22.04 x86_64
  • Ubuntu 20.04 ARMv8 Jetson
  • macOS 12 arm64 以降
  • Windows 10.1809 x86_64 以降

非対応

使ってみる

Momo を使ってみたい人は USE.md をお読みください。

ビルドする

  • Linux 版 Momo のビルドしたい人は BUILD_LINUX.md をお読みください
  • macOS 版 Momo のビルドしたい人は BUILD_MACOS.md をお読みください
  • Windows 版 Momo のビルドしたい人は BUILD_WINDOWS.md をお読みください

パッケージを作成する

パッケージ作成したい人は PACKAGE.md をお読みください。

FAQ

FAQ.md をお読みください。

ライセンス

Apache License 2.0

Copyright 2015-2022, tnoho (Original Author)
Copyright 2018-2022, 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.

優先実装

優先実装とは Sora のライセンスを契約頂いているお客様限定で Momo の実装予定機能を有償にて前倒しで実装することです。

優先実装が可能な機能一覧

詳細は Discord やメールなどでお気軽にお問い合わせください

  • oneVPL 対応
  • AV1 対応
    • Windows
  • 統計機能
    • Ayame のシグナリング 経由での出力
  • 録画対応
    • MP4 形式での出力
    • WebM 形式での出力
  • 録画合成対応
  • Sora モード利用時の E2EE 機能
  • Windows / macOS 署名対応

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 のライセンスがハードウェア費用に含まれているため、 配布時にライセンス費用を支払う必要はありません。

詳細については MPEG LA まで問い合わせる事をおすすめします。

More Repositories

1

packer-templates

This repository has finished updating
Shell
510
star
2

tls13-zig

The first TLS1.3 implementation in Zig(master/HEAD) only with std.
Zig
128
star
3

media-processors

Media Processors
TypeScript
83
star
4

sora-unity-sdk

WebRTC SFU Sora Unity SDK
C++
73
star
5

sora-js-sdk

WebRTC SFU Sora JavaScript SDK
TypeScript
69
star
6

zakuro

WebRTC Load Testing Tool Zakuro
C++
44
star
7

hisui

Recording Composition Tool Hisui
C++
44
star
8

sora-ios-sdk

WebRTC SFU Sora iOS SDK
Swift
42
star
9

quic-client-zig

Zig
41
star
10

suzu

Audio Streaming Gateway Suzu
Go
40
star
11

shiguredo-webrtc-build

WebRTC Build Tool for iOS/Android
Objective-C++
39
star
12

sora-cpp-sdk

WebRTC SFU Sora C++ SDK
C++
37
star
13

sora-android-sdk

WebRTC SFU Sora Android SDK
Kotlin
28
star
14

quic-server-zig

Zig
27
star
15

seminar

時雨堂セミナー
26
star
16

lyra-wasm

Lyra V2 WebAssembly build
TypeScript
26
star
17

rnnoise-wasm

SIMD-accelerated WebAssembly build of RNNoise
TypeScript
25
star
18

cpp-mp4

C++
24
star
19

dtln-aec

An echo cancellation library for browsers using DTLN-aec
TypeScript
24
star
20

sora-devtools

Sora DevTools
TypeScript
17
star
21

sora-unity-sdk-samples

Sora Unity SDK サンプル集
C#
17
star
22

sphinx_shiguredo_theme

時雨堂 Sphinx テーマ
CSS
16
star
23

sora-e2ee

WebRTC SFU Sora 向け E2EE ライブラリ
Go
15
star
24

shiguredo-webrtc-windows

Windows 向け WebRTC ライブラリ用ビルドツール
PowerShell
14
star
25

swidden

ヘッダーベース HTTP API フレームワーク
Erlang
14
star
26

sora-ios-sdk-samples

WebRTC SFU Sora iOS SDK サンプル集
Swift
13
star
27

sora-c-sdk

WebRTC SFU Sora C SDK
C++
12
star
28

kohaku

WebRTC Stats Collector Kohaku
Go
12
star
29

streaming-speech-to-text-with-codecs

C++
11
star
30

dockerfiles

Dockerfile templates.
Dockerfile
10
star
31

crdt

Conflict-free Replicated Data Types in Erlang/OTP.
Erlang
10
star
32

sora-android-sdk-samples

WebRTC SFU Sora Android SDK サンプル集
C++
10
star
33

sora-python-sdk

WebRTC SFU Sora Python SDK
C++
9
star
34

sora-flutter-sdk

Sora Flutter SDK
C++
8
star
35

oss

時雨堂のオープンソースソフトウェアについて
7
star
36

dorayaki

Erlang
7
star
37

sora-cpp-sdk-samples

WebRTC SFU Sora C++ SDK サンプル集
Python
6
star
38

sora-ios-sdk-quickstart

WebRTC SFU Sora iOS SDK クイックスタート
Swift
6
star
39

kvconf

Erlang
6
star
40

sora-webrtc-android

[OLD] WebRTC libraries for Android
Shell
6
star
41

sora-android-sdk-quickstart

WebRTC SFU Sora Android SDK クイックスタート
Kotlin
6
star
42

rebar3_zig

Rebar3 plugin to call Zig functions from Erlang using NIF
Erlang
5
star
43

shiguredo-webrtc-android

WebRTC libraries for Android
Shell
5
star
44

sora-labo-doc

Sora Labo ドキュメント
4
star
45

sora-python-sdk-samples

Sora Python SDK サンプル集
Python
3
star
46

ayame-labo-doc

2
star
47

sora-webrtc-ios

WebRTC libraries for iOS
Ruby
2
star
48

sora-ios-sdk-specs

WebRTC SFU Sora iOS SDK 用の CocoaPod Specs リポジトリ
Ruby
2
star
49

base32_clockwork

Base32 (RFC 4648, Crockford, Clockwork)
Erlang
2
star
50

shiguredo-webrtc-ios

Ruby
2
star
51

sora-flutter-sdk-samples

1
star
52

rebar3_static_deps

Erlang
1
star
53

sora-archive-uploader

Sora Archive Uploader
Go
1
star