Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
OpenMomo プロジェクト

OpenMomo プロジェクト

日時:2021-04-09
作:時雨堂
資料 バージョン:2021.5
Github URL:https://github.com/shiguredo/momo
製品 URL:https://momo.shiguredo.jp/

このプロジェクトに興味がある人はこの資料や momo のリポジトリに Star をつけてもらえると嬉しいです。

概要

OpenMomo プロジェクトとは 時雨堂 が開発/提供している WebRTC Native Client Momo を OSS として公開し、 その後も継続して開発、メンテナンスしていくプロジェクトです。

目的

ブラウザなしの WebRTC を多くの人に体験してほしいと考えています。 またソースコードをオープンにすることで、 Momo をベースにした何かが生まれていけばと考えています。

方針

  • 無料でのサポートは行わない
  • 無料での機能追加は対応しない
  • 無料でのハードウェア対応はしない
  • libwebrtc を利用する
  • H.264 ソフトウェアエンコード/ソフトウェアデコードは利用しない
  • H.265 ソフトウェアエンコード/ソフトウェアデコードは利用しない

動画

WebRTC Native Client Momo と Jetson Nano で 4K@30 配信

今後の予定

2021 年の投資予定はブログに書き起こしました。

2021 年の WebRTC Native Client Momo への投資 - shiguredo - Medium

優先実装

Momo への優先実装を有償でお受けしています。 興味のある方はご連絡ください。

  • OSS での公開を前提とする
  • ライセンスは Apache License 2.0 とする
  • コピーライトは時雨堂とする
  • 費用は控えめ

H.265 (HEVC) 対応

コスト高め

macOS 版は feature/h265 で対応済みですが、メンテナンスにちから入れていません。

https://github.com/shiguredo/momo/tree/feature/h265

Safari に WebRTC の H.265 対応がくることから、まずは macOS 版での対応を検討しています。 最終的には NVIDIA ビデオカードや Jetson で利用できるようにしたいと考えています。

Apple Silicon HWA 対応

  • Apple Silicon が持っているハードウェアアクセラレーターに対応します
    • H.265 / H.264 / VP8 / VP9 / AV1

Intel Media SDK 対応

Ubuntu と Windows で対応予定です。

Intel-Media-SDK/MediaSDK: The Intel® Media SDK

録画対応

コスト高め

MP4 形式でローカルに一定時間ごとにファイルを保存できる対応

ゴール

最新リリースでの仕様

  • ソースコードのライセンスは Apache License 2.0
  • テスト用のシグナリングサーバ内蔵
  • WebRTC Signaling Server Ayame 向けシグナリング機能搭載
  • WebRTC SFU Sora 向けシグナリング機能搭載
  • データチャネルを利用したシリアルポートの読み書き機能
  • 監視用メトリクス API
  • 音声コーデックは Opus
  • 映像コーデックは VP8 または VP9 または AV1 または H.264
    • H.264 についてはソフトウェアエンコーダには非対応でハードウェアエンコーダのみに対応
    • Jetson Nano シリーズでは VP8 ハードウェアエンコーダに対応
    • Jetson Xavier シリーズでは VP9 ハードウェアエンコーダに対応
  • NVIDIA VIDEO CODEC SDK 対応
    • Ubuntu 20.04 対応
    • Ubuntu 18.04 対応
    • Windows 10 対応
    • NVENC のみで、NVDEC は非対応
  • スクリーンキャプチャ
    • Windows
    • macOS
    • Linux
  • Raspberry Pi OS ARMv8 向けビルド
  • Raspberry Pi OS ARMv7 向けビルド
  • Raspberry Pi OS ARMv6 向けビルド
  • Ubuntu x86_64 向けビルド
  • Ubuntu ARMv8 向けビルド
    • Jetson Nano 対応
    • Jetson Xavier NX 対応
    • Jetson AGX Xavier 対応
  • macOS x86_64 向けビルド
  • macOS arm64 向けビルド
  • Windows x86_64 向けビルド
  • CMake でのビルドに対応
  • external/webrtc - Git at Google
    • 修正 BSD ライブラリ
    • WebRTC ライブラリ
  • nlohmann/json
    • MIT ライセンス
    • JSON ライブラリ
  • CLIUtils/CLI11
    • 修正 BSD ライセンス
    • コマンドライン引数ライブラリ
  • Boost C++ Libraries
    • Boost ライセンス
    • C++ ライブラリ
  • Simple DirectMedia Layer - Homepage
    • zlib ライセンス
    • クロスプラットフォーム向けマルチメディアライブラリ

対応プラットフォーム

  • Raspberry Pi OS 最新版
    • armv8
    • armv7
    • armv6
  • macOS 最新版
    • x86_64
    • arm64
  • Ubuntu 20.04
    • x86_64
  • Ubuntu 18.04
    • x86_64
    • armv8
      • Jetson Nano
      • Jetson Xavier NX
      • Jetson AGX Xavier
  • Windows 最新版
    • x86_64

NVIDIA VIDEO CODEC SDK 動作環境

NVIDIA VIDEO CODEC SDK を利用する場合は NVIDIA ビデオカードのドライバーを最新にしてください。

動作確認が取れたビデオカード

データチャネルを利用したシリアルポートの読み書き

Momo は Test と Ayame モードで、データチャネル経由でのシリアルポートの読み書きに対応しています。

Test モードでの実行例:

$ ./momo --serial /dev/ttys003,9600 test

https://i.gyazo.com/269ccc2290b43809a0e67e35c03e8601.gif

https://i.gyazo.com/c1fb6696963e044a44576b1ddeffd0cb.gif

双方向

Momo は SDL (Simple DirectMedia Layer) を利用することで双方向を実現しています。

また Jetson シリーズを利用した場合はハードウェアデコーダを利用することで CPU の負荷をかなり抑えることができます。

Ayame を利用して 1:1 でやり取りしている

https://i.gyazo.com/85bdd959cd893eb5adf5f2e58fbcff58.png

Sora を利用して 3 人でやり取りしている

https://i.gyazo.com/307069847d83d180b3c15529bbc003b7.png

検証済みの機器

この2つを利用し Jetson Nano と Momo で 4K@30fps1080p@60fps を確認しています。

事例

NVIDIA Jetson Community Project

Jetson Community Projects | NVIDIA Developer

https://i.gyazo.com/16db368695d6bae2f96c572628cb7c24.png

Twitter

Twitter などで Momo を動かした話を見かけたら追加していってます

note

メンテナンス

以下が優先されます

  • libwebrtc のバージョンアップへ追従
  • OS のバージョンアップへ追従
  • ブラウザのバージョンアップへ追従
  • 利用ライブラリのバージョンアップへ追従
  • WebRTC Signaling Server Ayame のバージョンアップへ追従
  • WebRTC SFU Sora のバージョンアップへ追従
  • Raspberry Pi への対応
  • NVIDIA Jetson シリーズへの対応
  • NVIDIA VIDEO CODEC SDK への対応
  • macOS VideoToolbox への対応

ライセンス

WebRTC Native Client Momo のソースコードライセンスは Apache License 2.0 として公開しています。

サポート

無料でのサポート提供は行いません

WebRTC SFU Sora ライセンス契約している場合

有料にて以下の内容を提供可能です。

  • Momo のテクニカルサポート
  • Momo の OSS 公開前提での機能追加

テクニカルサポートはメニューが決まっているわけではなく、お客様ごとにヒアリングを行い提供します。

まずは Sora サポートまでご連絡ください。

Discord

https://discord.gg/gmEuZye

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

最新の状況などは Discord で共有しています。 質疑応答も Discord でのみ受け付けています。

同人誌

進捗

2021-02-13

2021-01-22

2020-12-19

2020-11-30

2020-09-28

2020-08-09

4K@30fps や 1080p60fps を実現できる機器の紹介を追加。

2020-07-30

2034 - WebRTC: usrsctp is called with pointer as network address - project-zero

2020-07-23

  • Momo 2020.8 をリリース
    • https://github.com/shiguredo/momo/releases/tag/2020.8
    • サイマルキャストに対応しました
    • NVIDIA Jetson Xavier シリーズの VP9 ハードウェアエンコーダに対応しました
    • macOS 版でスクリーンキャプチャに対応しました
    • libwebrtc M85 に対応しました

Jetson Nano 用と Jetson Xavier シリーズ用でバイナリを分けました。

2020-06-16

2020-04-27

2020-04-14

2020-04-01

  • Momo 2020.4 をリリース
    • https://github.com/shiguredo/momo/releases/tag/2020.4
    • Windows でも --video-device を指定できるように
    • PCMU オーディオコーデックを削除
    • Ubuntu 18.04 で libcuda.so / libnvcuvid.so がイントールされていなくても起動するようにする

2020-03-10

  • Momo 2020.3 をリリース
    • https://github.com/shiguredo/momo/releases/tag/2020.3.1
    • Windows / Linux 版の NVIDIA VIDEO CODEC SDK 対応
    • Let's Encrypt の CA ハードコード対応
    • 証明書指定機能
    • 証明書チェック無視機能
    • libwebrtc M81 対応
    • Raspberry Pi H.264 利用時のリサイズをハードウェア処理に
    • Raspberry Pi で SDL / H.264 利用時をハードウェア処理に
  • 今回の Windows 版の NVIDIA VIDEO CODEC SDK 対応は スロースネットワークス株式会社 様からの有償での優先実装依頼によって対応しました、ありがとうございます
  • 今回の Linux 版の NVIDIA VIDEO CODEC SDK 対応は 株式会社オプティム 様からの有償での優先実装依頼によって対応しました、ありがとうございます

2020-02-15

2020-02-05

2020-01-20

2019-12-22

2019-12-17

2019-11-30

2019-11-27

Raspberry Pi 4 model B での動作を確認しました。

2019-11-11

2019-11-03

SDL を利用した双方向の仕組みでハードウェアデコーダを利用する Jetson nano 向けバイナリを公開しました

2019-10-18

SDL を利用した双方向の仕組みが利用できる macOS 版バイナリを公開しました。

https://github.com/shiguredo/momo/releases/tag/19.10.0-rc0

以下にまとめてあるので是非どうぞ。

WebRTC Native Client Momo は双方向の夢を見るか - V - Medium

2019-09-25

2019-09-24

  • 事例に追加

2019-09-23

Momo のコア開発者である @tnoho による同人誌が BOOTH にて販売しています。 Momo のカスタマイズ方法について書かれています。興味ある方は是非読んでみてください。

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

2019-09-22

2019-09-18

  • Jetson Nano 向けのビルド対応を公開しました
  • Momo 19.09.1-rc1 をリリース
  • H.264 ライセンス的に Momo のバイナリ配布が問題ないことわかったため、 macOS 版や Jetson Nano 版のバイナリ公開を開始

2019-09-15

2019-09-13

  • Jetson Nano 向けのビルド対応に着手しました
    • すでに Jetson Nano で H.264 + 4K@30 の配信は実現済みです
    • ubuntu-18.04_armv8_jetson_nano.tar.gz というパッケージを提供予定です
    • make ubuntu-18.04_armv8_jetson_nano.package というビルドコマンドを提供予定です

2019-09-10

  • Momo 19.09.0 をリリース
    • https://github.com/shiguredo/momo/releases/tag/19.09.0
    • Boost 1.71.0 へアップデート
    • libwebrtc m78@{#0} へアップデート
    • 音声系オプションの追加
      • --disable-echo-cancellation エコーキャンセルを無効
      • --disable-auto-gain-control オートゲインコントロール無効
      • --disable-noise-suppression ノイズサプレッション無効
      • --disable-highpass-filter ハイパスフィルター無効
      • --disable-typing-detection タイピングディテクション無効
    • いくつかの修正

2019-08-30

  • Momo 19.08.1 をリリース
  • 事例に追加
  • 音声系オプションの追加を検討中です
    • --disable-echo-cancellation エコーキャンセルを無効
    • --disable-auto-gain-control オートゲインコントロール無効
    • --disable-noise-suppression ノイズサプレッション無効
    • --disable-highpass-filter ハイパスフィルター無効
    • --disable-typing-detection タイピングディテクション無効

2019-08-24

Momo をリニューアルして 1 年が経ちました。今後もよろしくおねがいします。

2019-08-20

2019-08-15

  • 事例に追加

2019-08-13

2019-08-09

2019-08-05

2019-08-03

develop で macOS 版が動作しなくなっています

2019-07-29

develop で macOS 版が動作しなくなっています

  • Momo 19.07.1-rc2 のバイナリを公開
  • Ayame の sdp 交換の際の type が answer 固定になっていたのを修正
  • Ayame の candidate 交換の際の JSON スキーマが間違っていたのを修正
  • Ayame で peer connection 生成後に createOffer して send する実装が漏れていたので追加

2019-07-25

develop で macOS 版が動作しなくなっています

  • Momo 19.07.1-rc1 のバイナリを公開
  • Raspberry Pi 向けに --use-native オプションを追加
    • USB カメラ用で MJPEG をハードウェアデコードする
  • Raspberry Pi 向けに --force-i420 オプションを追加
    • Raspberry Pi 専用カメラ用で MJPEG を使えないため HD 以上の解像度でも MJPEG にせず強制的に I420 でキャプチャーする
  • Ayame のサブコマンドで client id を optional に指定できるように修正

2019-07-19

  • Windows 版 Momo の提供準備を開始

2019-07-18

2019-07-12

  • Raspbian を Stretch から Buster に上げる

2019-07-05

2019-07-03

2019-07-02

  • libwebrtc M76.1 に対応しました

2019-07-01

`WebRTC Signaling Server Ayame <https://github.com/OpenAyame/ayame>`_ に対応

利用例:

$ ./momo --no-audio ayame wss://example.com/ws open-momo ayame-client-id

2019-06-25

2019-06-21

  • Windows 版 Momo の広告を追加

2019-06-18

  • ハードウェアエンコーダにデコーダをパイプで繋ぐことでの高速化対応
  • HDMI to CSI-2 調査
  • Raspberry Pi H.264 HWA の MMAL 対応
  • Momo 19.07.0-rc0 のバイナリを公開
  • 事例を追加
  • CircleCI でのビルド対応を開始

2019-06-16

  • Momo Windows 版は有料にて提供する方針を明記

2019-06-15

  • Raspberry Pi H.264 HWA の MMAL 対応へを開始
  • Unified Plan へ対応
  • macOS 版 Momo の対応復活
    • H.264 の HWA を利用する場合 --fix-resolution が必須

2019-06-11

  • libwebrtc M75 にアップデート
  • CLI11 を 1.8.0 にアップデート
  • Unified Plan への対応を開始

2019-06-01

  • Ubuntu 18.04 on ARM64 への対応

2019-05-31

  • リリースの負荷を下げるためビルド済みバイナリ提供を Raspberry Pi 向けのみに絞りました

2019-05-25

  • 次のリリースに向けたタスクを整理しました
    • Jetson Nano (Ubuntu 18.04 on ARM64) 向けバイナリの提供
    • Jetson Nano での L4T Multimedia API を利用した H.264 のハードウェアエンコーダへの対応
    • libwebrtc M75 への対応
    • Unified Plan への対応
    • Ayame への対応
    • Raspberry Pi 利用時の H.264 HWA への改善
    • CLI11 を 1.7.0 にアップデート
  • Simulcast への対応を検討し始めました
    • rid ベース Simulcast へ検討
    • HWA を利用した Simulcast の検討

2019-04-22

  • Jetson Nano への対応を開始しました
    • Ubuntu 18.04 on ARM64 への対応
    • L4T Multimedia API プロジェクトへの開始

2019-04-12

いくつかのサブプロジェクトを立ち上げました

  • DataChannel 対応プロジェクト
  • L4T MultiMedia API 対応プロジェクト
  • スクリーンキャプチャ対応プロジェクト
  • WebRTC Signaling Server Ayame 対応プロジェクト

2019-03-30

  • Jetson Nano への対応を検討しています
    • 4K@30 H.264 のハードウェアエンコードに対応している
    • 対応 OS が Ubuntu 18.04 である
    • ROS に対応している

2019-03-14

2019-02-24

  • ROS の Audio に対応中
  • libwebrtc M73 に対応中

2019-02-06

  • macOS の VideoToolbox 対応の Pull-Request をマージした
    • tnoho に感謝
    • H.264 コーデック利用時に macOS に搭載されているハードウェアエンコーダーを利用する

2019-01-22

2019-01-08

  • macOS 対応の Pull-Request をマージした
    • hakobera (Kazuyuki Honda) に感謝
    • H.264 関連の調査が必要なため macOS 版対応のリリースは 19.02 か 19.03 で行う

2018-12-25

  • 18.12.0 をリリースした
    • ROS Kinetic 対応
    • p2p モードの切断後に自動的に window が閉じられないようにする
    • Boost 1.69.0 にアップデート
    • CLI11 v1.6.2 にアップデート
    • JSON v3.4.0 にアップデート

2018-12-07

  • ROS 対応版の 18.12 リリースに向けてパッケージ名を整理した
    • momo-18.12.0_raspbian-stretch_armv6.tar.gz
    • momo-18.12.0_raspbian-stretch_armv7.tar.gz
    • momo-18.12.0_ubuntu-18.04_armv8.tar.gz
    • momo-18.12.0_ubuntu-18.04_x86_64.tar.gz
    • momo-18.12.0_ubuntu-16.04_x86_64.tar.gz
    • momo-18.12.0_ubuntu-18.04_x86_64_ros.tar.gz
    • momo-18.12.0_ubuntu-16.04_x86_64_ros.tar.gz
    • momo-18.12.0_ubuntu-18.04_armv8_ros.tar.gz
    • momo-18.12.0_ubuntu-16.04_armv7_ros.tar.gz

2018-12-03

  • 18.10.2 をリリースした
    • 解像度を固定する --fix-resolution を追加した
    • シグナリング時に candidate が重複するバグを修正した

2018-11-28

  • ROS ノードとして ROS の usb_cam を利用し MJPEG を受けて P2P または Sora で動作することを確認した

p2p:

./momo image:=/usb_cam/compressed_image/compressed _use_p2p:=true _compressed:=true

sora:

./momo _use_sora:=true _SIGNALING_URL:="wss://sora.example.com/signaling" \
    _CHANNEL_ID:="sora" _auto:=true  _compressed:=true \
    image:=/usb_cam/compressed_image/compressed _video_codec:=H264 \
    _resolution:=VGA _video_bitrate:=1000 _audio_codec:=OPUS
  • ROS Melodic Morenia と ROS Kinetic Kame の 2 バージョンを提供予定
  • Intel QSV の調査を継続中
    • 2019 年には Intel QSV を利用した配信を目指す

2018-11-16

  • 18.10.1 をリリースした
    • websocketpp と civetweb を Boost.beast に置き換えた
    • --audio-bitrate を指定した場合正常に動作しない問題を修正した
    • p2p モードに --document-root オプションを追加した
    • libwebrtc を M71 に上げた

2018-11-13

  • websocketpp と civetweb を Boost.beast に置き換えた
  • 18.10.1 のリリースに向けて方針を決定
    • libwebrtc M71 への対応
    • p2p 向けオプションに --document-root を追加
    • --metadata を sora のオプションにする

2018-11-05

  • ゴールにデバイス選択機能を追加
  • ROS 用パッケージ名を何となく決める
    • momo-18.10.0_ros_amd64.tar.gz
    • momo-18.10.0_ros_arm64.tar.gz

2018-11-03

  • ゴールに ROS 対応を追加
    • ROS ノードとして Momo が Subscriber としてモーション JPEG を受けて配信できる仕組みを追加
    • ROS パッケージを追加することで Momo を簡単に ROS で利用する仕組みを追加

2018-11-01

2018-10-29

2018-10-26

2018-10-22

  • 18.10.0-rc3 をリリースした
    • バージョン情報を MOMO_VERSION に指定したら momo のバイナリの --version も反映するようにする
    • --metadata の引数は JSON のみを指定できるようにする
    • Release 18.10.0-rc3 · shiguredo/momo

2018-10-19

  • 18.10.0-rc2 をリリースした
    • P2P で音声配信が動作しなかったものを修正した
    • 解像度指定から 4K を削除した
      • 対応するには libwebrtc 側にパッチを当てる必要がある
    • Release 18.10.0-rc2 · shiguredo/momo

2018-10-17

2018-10-11

2018-10-02

  • --resolution で解像度を指定できるオプションを追加した
  • --framerate でフレームレートを指定できるオプションを追加した
  • --priority で解像度かフレームレートかを優先できるオプションを追加した
    • デフォルトはバランスを取るりますがこの機能はリリース段階で実験的機能です
  • --no-video でビデオを無効にするオプションを追加した
  • --no-audio でオーディオを無効にするオプションを追加した

2018-09-28

  • Ubuntu ARM64 対応機種に Rock64(PINE64) を追加した

2018-09-25

  • libwebrtc M70 に追従した

2018-09-20

  • Momo のコマンドライン引数をひとまず実装した

2018-09-17

  • libwebrtc M69 に追従した

2018-09-16

  • Ubuntu 16.04 向け ARMv8 (ARM64) ビルドに成功した
  • 生成されたバイナリの file コマンド結果を公開した

2018-09-12

  • Ubuntu 16.04 向け ARMv8 (ARM64) 対応をゴールに追加した

2018-09-02

  • Ubuntu 18.04 x86_64 向けビルドに対応した
  • Momo のコマンドライン引数を決めた

2018-09-01

  • macOS 10.13 向けビルドに対応した
  • Raspberry Pi 3 B/B+ (ARMv8) 向けを libwebrtc M69 に対応した

2018-08-31

  • Docker を利用して Raspberry Pi Zero 向けの H.264 ハードウェアエンコーダー対応ビルドが可能になった

2018-08-30

  • Raspberry Pi Zero 向けの H.264 ハードウェアエンコーダに対応した
  • 提供予定のバイナリの名前を決めた
    • momo-18.10.0_ubuntu_x86_64.tar.gz
      • Ubuntu 18.04
    • momo-18.10.0_ubuntu_armv8.tar.gz
      • Ubuntu 16.04
    • momo-18.10.0_macos_x86_64.zip
      • macOS 10.13
    • momo-18.10.0_raspbian_armv7.tar.gz
      • Raspbian June 2018
      • Raspberry Pi 3 B/B+
    • momo-18.10.0_raspbian_armv6.tar.gz
      • Raspbian June 2018
      • Raspberry Pi Zero H/HW

2018-08-28

  • Raspberry Pi 3 向けの H.264 ハードウェアエンコーダに対応した
  • Docker を利用して Raspberry Pi 3 向けの H.264 ハードウェアエンコーダー対応ビルドが可能になった

2018-08-25

  • Docker を利用して Raspberry Pi 3 向けのビルドが可能になった

2018-08-24

  • OpenMomo プロジェクトを公開した
  • OpenMomo に向けて Momo 2.0 のコードを整理
  • Raspberry Pi 3 向けのビルドの整理

広告

WebRTC SFU Sora

WebRTC SFU Sora

商用の WebRTC SFU です。価格は同時 100 接続でライセンス費用は 1 年で 84 万円です。 3 ヶ月ライセンスも用意してあります。製品のサポート料金込みです。

複数人数での会議や、 1000 人への配信、一対一の面談など様々な用途に利用可能です。

パッケージで提供しますので、自社で運用が可能です。 AWS だろうが GCP だろうが、オンプレだろうがなんでも好きな環境で動かすことができます。

サーバさえあれば Nginx の設定と Let's Encrypt での証明書取得まで含めて 1 時間で可能です。 HTTPS が必須なのでその準備が必要ですがそれさえ対応できればすぐ確認可能です。

  • 大変多くのお客様に採用いただいております
  • とにかく 落ちないこと を目的に作っています
  • とにかく 繋がること を目的に作っています
  • とにかく 手間がかからないこと を目的に作っています
  • 最新ブラウザのアップデートに追従しています
  • シグナリングサーバ内蔵ですので別途立てる必要はありません
  • TURN サーバ内蔵ですので別途立てる必要ありません
  • 日本語によるサポート対応しています
  • フルスクラッチによる自前実装なのですべて把握しています
  • 1:1 の双方向に対応しています
  • 1:1000 の片方向に対応しています
  • 3:1000 といった配信者が複数の片方向にも対応しています
  • 4K 30fps の配信も可能です
  • スポットライトという機能を利用することで 200 人以上の会議に対応しています
  • 録画機能があります
  • Chrome / Firefox / Edge / Safari といった主要ブラウザ全てに対応しています
  • Apache 2.0 ライセンスで JavaScript と iOS と Android 、Unity のクライアント SDK を公開しています
  • Apache 2.0 ライセンスで React Native 向け WebRTC ライブラリを公開しています
  • 既存システムとの連携を重視しており、Web フック機能を利用して簡単に連携が可能です
    • 認証や、クライアントの接続切断などもすべて HTTP での通知を既存のシステムに送ることができます
  • Apache 2.0 ライセンスで Sora 専用負荷試験ツールをオープンソースとして公開しています
  • Apache 2.0 ライセンスで Sora 専用録画合成ツールをオープンソースとして公開しています

興味のある方はお気軽に sora at shiguredo.jp までお問い合わせください。

紹介や検討資料も公開しております。

WebRTC Native Client Momo

WebRTC Native Client Momo

GitHub にオープンソースで公開している WebRTC のネイティブクライアントです。 Linux と macOS と Windows で動作します。

  • OpenMomo プロジェクト
  • ライセンスは Apache License 2.0 です
  • 多くの端末のハードウェアエンコーダに対応しています
    • Raspberry Pi Zero という非力デバイスでも H.264 ハードウェアエンコーダを利用し 720p@30 で配信可能です
    • Jetson Nano ではハードウェアエンコーダを利用することで 4K@30 で配信可能です
    • macOS でもハードウェアエンコーダを利用して動作します
  • SDL (Simple DyanmicMedia Layer) を利用することで受信した音声と映像を表示する機能を持っています

WebRTC Signaling Server Ayame

WebRTC Signaling Server Ayame

GitHub にオープンソースで公開している WebRTC のシグナリングサーバです。 Linux と macOS と Windows で動作します。

Ayame Labo

Ayame Labo

Ayame を時雨堂がサービスとして提供しています。

  • 無料で使えます
  • サインアップしないでも使えます
    • ただし TURN や認証機能などは利用できません
  • GitHub アカウントを持っていればすぐに利用できます
  • TURN の UDP / TCP / TLS を提供します
  • ルームに認証をかけられます
    • シグナリングキーを提供します
  • 認証ログを確認できます

Sora Labo

Sora Labo

商用製品の WebRTC SFU Sora を時雨堂が検証目的で無料で使えるサービスを提供しています。

  • 無料で利用可能です
  • 商用目的では使えません
  • すぐに試せるサンプルも用意してあります
  • GitHub アカウントを持っていればすぐに利用できます
  • TURN の UDP / TCP / TLS を提供します
  • チャネルに認証をかけられます
    • シグナリングキーを提供します
  • 同時接続数制限があります
  • 認証ログを確認できます
  • 統計情報を確認できます
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment