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

WebRTC 配信クライアントとして、いろいろな方面で使って頂いてる Momo ですが SDL を利用することで双方向を実現しました。

まとめ

2019–10–19 追記

最新版バイナリを公開しました。

./momo --resolution VGA --no-audio --port 0 --use-sdl --show-me sora --auto --video-codec VP8 --video-bitrate 1000 wss://example.com/signaling momo-sora --multistream

双方向?

簡単に言えば Momo が音声と映像を受信して出力するということです。まずはどんな感じになるか見てもらえればと思います。

SDL?

そもそも Momo は CLI で動かすものなのになぜ音声や映像が出力できるんでしょうか?答えは SDL を使って実現しています。

SDL (Simple DirectMedia Layer) は、C言語で書かれたクロスプラットフォームのマルチメディアライブラリである。グラフィックの描画やサウンドの再生などのAPIを提供する。Windows、macOS、Linux、iOS、Androidを公式にサポートしている。https://ja.wikipedia.org/wiki/SDL から引用
Momo と Sora でマルチストリームで 3 人で

なぜ Momo で双方向?

一方向の Momo はそれはそれで使いみちが色々あるのですが、双方向を実現することで Raspberry Pi でブラウザ無しで 1:1 のチャットとかを気軽に作れるようにしたかったというのがあります。ブラウザはちょっと重すぎるんですよね。

なぜ SDL ?

もともとはターミナルで映像が表示できる技術を利用しようと思っていたのですが色々不便だったことから、 SDL を使うというのを tnoho が考え出しました。

今後は?

Momo に色々オプション引数を追加してデフォルトでは無効にし、 Linux / macOS で気軽に利用できるようにする予定です。

使ってみたい

macOS 版になりますが、バイナリを公開しました。使い方なども書いてありますので触ってみて下さい。

Erlang/OTP / 時雨堂 / WebRTC / E2EE

Erlang/OTP / 時雨堂 / WebRTC / E2EE