1 min read

Sora MoQ (Media over QUIC) を公開しました

今回、時雨堂では WebRTC SFU Sora とは別に Sora MoQ (Media over QUIC) を公開しました。Media over QUIC は音声や映像、データを QUIC ベースで配信する仕組みです。

現在まだ RFC ドラフトではありますが、とりあえず動くところまで実装しましたので、Sora Labo にて誰もが試せるように公開しました。

0:00
/0:05

まだまだ遅延派詰められると思いますが、安定性を最優先です。

今後は Sora Cloud での提供を目指します。将来的にはパッケージでの提供も予定しています。

技術的な話

Sora MoQ は全てのプロトコルをフルスクラッチで Erlang/OTP にて実装しています。

  • QUIC
  • Multipath QUIC
  • HTTP/3
  • HTTP/2
  • WebTransport over HTTP/2
  • WebTransport over HTTP/3
  • MOQT (Media over QUIC Transport)
  • LOC (Low Overhead Media Container)
  • MSF (MOQT Streaming Format)
  • C4M (CAT 4 MOQT)

相互接続として ngtcp2 / nghttp3 / nghttp2 、s2n-quic 、picoquic、aioquic 、Chrome (WebTransport) 、WebKit (WebTransport ) 、Firefox (WebTransport) との動作を確認しています。

moqt-js / moqt-rs / moqt-py

時雨堂では MOQT ライブラリを TypeScript と Rust と Python (PyO3 を利用して moqt-rs を利用) の 3 つの言語で Sans I/O にて実装して OSS (Apache-2.0) として公開しています。

Sora MoQ SDK

絶賛開発中です。既に Swfit (iOS) と Kotlin (Android) からの動作は確認済みです。TypeScript と Rust と Swift と Kotlin と Python の SDK を提供予定です。

認証

MoQ 向けの C4M (CAT 4 MOQT) を採用しました。URI Fragment (#msf: ... c4m=<token>) を使う招待 URI の仕組みを Sora Labo で採用しています。依存を減らすため CBOR も時前実装しています。

Momo (MoQ)

WebRTC Native Client Momo の MoQ 版を開発中です。気軽に MoQ を使えるようにしたいです。

Zakuro (MoQ)

MoQ 用の負荷試験ツールも開発中です。

今後

既に Sora MoQ の QUIC 実装は Multipath QUIC で実装しているので、それを利用できる QUIC ライブラリを Rust で実装しています。MoQ + Multipath QUIC を実現できればと思います。ドラフトにも積極的に追従していきます。

もし興味がある人は Sora MoQ を触ってみてください。