最終更新日: 2019/5/30
Wata の現在の状態をここに書きます。常にこのページが最新の情報になります。
Wata は、合同会社 Wandbox が作っている バーチャルライバー特化型の配信ミドルウェア です。
バーチャルライバーが配信したモーションデータや音声を、複数人の視聴者に配信できます。
バーチャルライバー +--------+ gRPC
+-------------+ モーションデータ+音声 | | ------------> 視聴者1(iOS)
| 配信クライアント| -----------------> | Wata | ------------> 視聴者2(Android)
+-------------+ | | ------------> 視聴者3(Windows)
+---------+ -------------> ...
- 低遅延です → Wataプロジェクト
- 音声とモーションの同期が取れるようになっています → Wataプロジェクト
- Google の Cloud Speech-to-Text を使って音声認識ができます → Wata で文字起こし機能が動いた
- 1:10000 での配信ができます → Wataが1万接続で動いた
- Wata Unity SDK を使って Unity 上で任意のアプリケーションが作成可能です。
- 現在は Windows, macOS, iOS で動作します
- Windows 10, macOS Mojave, iOS 10 で動作確認済み
- Android は今後対応予定です
- 映像の配信もできます → Wata をリアルタイム映像配信に対応した
無料版の Wata です。現在準備中です。
無料で使い放題ですが、いくつか機能が制限されています。
有料版の Wata です。現在準備中です。
Wata に加えて、映像の配信や音声解析、TLS などの機能が追加された製品となります。
年間ライセンスでの提供予定です。
Wata のゴールは、バーチャルライバーの配信がより便利になるような機能を追加していくことです。
そのために、以下の機能を追加する予定です。
RTMP で Wata に送信することで動画の配信も可能にする予定です。
バーチャルライバー +--------+ RTMP
+-------------+ 映像+音声 (RTMP) | | ------------> 視聴者1(iOS)
| 配信クライアント | -----------------> | Wata | ------------> 視聴者2(Android)
+-------------+ | | ------------> 視聴者3(Windows)
+---------+ -------------> ...
こうすることで、RTMP に対応した配信クライアント、例えば OBS Studio を使って多人数の視聴者に配信が可能になります。
また、SRT での送受信にも対応する予定です。
更に、RTMP の映像+音声をブラウザ側で見れるようにする予定です。
一般的には Wata の先に HLS に変換して配信するための CDN を置くと思いますが、Wata では gRPC-Web (または Websocket) で直接ブラウザに送信する方針にします。 こうすることで HLS よりも更に低遅延で映像を配信できるようになります。
バーチャルライバー +--------+ RTMP over gRPC-Web
+-------------+ 映像+音声 (RTMP) | | --------------------> 視聴者1(ブラウザ)
| 配信クライアント | -----------------> | Wata | --------------------> 視聴者2(ブラウザ)
+-------------+ | | ---------------------> 視聴者3(ブラウザ)
+---------+ ----------------------> ...
配信クライアントから Wata に、RTMP の機能とモーションデータ+音声の両方を同時に流せる機能を実装する予定です。
これらの機能を組み合わせることで、iOS, Android と PC のブラウザで同時に視聴可能になります。 iOS, Android にモーションデータ+音声を送信することで、通信容量が小さくなります。
バーチャルライバー 映像+音声 (RTMP) +--------+ RTMP over gRPC-Web
+--------------+ -----------------> | | --------------------> 視聴者1(ブラウザ)
| 配信クライアント | モーションデータ+音声 | Wata | gRPC
+--------------+ -----------------> | | --------------------> 視聴者2(iOS)
+---------+ --------------------> 視聴者3(Android)
何か聞きたいことがあれば、以下のどれかの方法でお問い合わせ下さい。
- Wata サーバは C++ で書いています
- Wata クライアントと Wata サーバの通信には gRPC の C++ ライブラリを利用しています
- Wata サーバは Boost.Beast を利用して API サーバを立てています
- Wata クライアントは C++ でネイティブプラグインを書き、それを Unity の C# でラップしています
- 音声は Wata クライアントから Opus で圧縮して送信しています
- Cloud Speech-to-Text は生の Opus を受け付けないので Ogg Opus にフォーマットを変換して送信しています
- Windows 版のバイナリは Ubuntu の MinGW で生成しています
- 映像配信は、RTMP を受け取ったらパースして Video Message を取り出し、ブラウザーが接続してきた WebSocket に対して送信しています
- 5/30 Wata の提供形態を書いた
- 5/30 RTMP to ブラウザーの実装を最適化して記事を書いた
- 4/30 RTMP to ブラウザーを実装した
- 4/25 Wata のゴールを記述した
- 4/18 Wata を gRPC 1.20.0 に対応した
- 4/11 Wata の Windows 版の再生機能を作った。
- 4/10 Wata の Windows 版の録音機能を作った。