2020 年の WebRTC Native Client Momo への投資内容

2020 年 12 月版

V
shiguredo
5 min readDec 18, 2019

--

更新終了しました。

2019 年は Momo 飛躍の年だったと思います。本当に多くの方に使ってもらいました。ありがとうございます。とくにロボット方面で使っていただいたきっかけをくれた shirokunet さんには感謝しかありません。

2020 年も引き続き Momo に投資をしていく予定です。今後どんなことをやっていくかをまとめていきます。

優先実装前提の機能もあるため、興味がある企業の方はお気軽にお問い合わせください。

H.265 への対応 (対応済み)

Safari TP 105 から WebRTC で H.265 が利用可能になりました。コード自体も公開されているため、Momo の develop に組み込む予定はありません。

NVIDIA VIDEO CODEC SDK (NVDEC + CUDA) への対応 (対応予定)

スロースネットワークス様からの支援により Sora Unity SDK で実現しているものをポーティング予定です。2021 年に持ち越します。

Jetson Nano の VP8 HWA 対応 (対応済み)

Jetson Nano が持っているちょっと特殊な VP8 HWA に対応しました。4K@30 VP8 で配信できる Jetson Nano 2G が 7000 円前後で購入できるのは相当な脅威かと思われます。

Jetson Xavier シリーズへの対応 (対応済み)

2020 年 5 月に Jetson Xavier NX という Jetson Nano と同じサイズで性能が劇的に上がるモジュールが発売されます。このモジュール恐ろしいことに VP9 で 4K 配信が可能なハードウェアエンコーダを積んでいます。やるしかないでしょう。それも価格は 3–4 万と手頃。強すぎます。

ただ Jetson Xavier NX はどうやらまずはモジュールのみでの販売らしく、開発キットは販売されないようです。そのため上位互換である Jetson AGX Xavier への対応を進めていくことにしています。

Jetson Xavier シリーズの VP9 HWA への対応 (対応済み)

Jetson Xavier NX や Jetson AGX Xavier が持っている VP9 HWA を利用して配信を可能にします。

映像エンコードエンジンの指定 (対応済み)

VP9 HWA などに対応し始めた場合に、ソフトウェアエンコードとハードウェアエンコードどちらを利用するかをして可能にしました。

DataChannel への対応 (対応済み)

シリアルポートの読み書きという機能で対応を実現しました。

Windows 版の OSS 化 (対応済み)

スロースネットワークス様からの支援により前倒しで実現しました。

Simulcast への対応 (対応済み)

Sora は VP8 と H.264 のサイマルキャストに対応しているので、それに合わせて対応するという形です。Simulcast は Sora 以外で利用できるようにする予定はありません。

Ubuntu 20.04 への対応 (対応済み)

18.04 の対応も残しますので、安心してください。18.04 は 22.04 が出る付近で落とす予定です。

hakobera の PR により対応しました。

AV1 への対応 (対応済み)

libwebrtc のブランチ 4103 から AV1 がデフォルトで利用可能になりました。すでに Momo に利用が可能です。

NVIDIA VIDEO CODEC SDK (NVENC) への対応 (対応済み)

NVIDIA VIDEO CODEC SDK を利用し NVIDIA ビデオカードの HWA 対応を行います。プラットフォームは Ubuntu 18.04 と Windows 10 の x86_64 になります。スロースネットワークス様からの支援により実現しました。

画面共有対応 (対応済み)

スロースネットワークス様からの支援により実現しました。

Intel Media SDK への対応 (ペンディング)

Intel Media SDK を利用した HWA 対応を考えています。H.264 と VP8 がメインになると思います。

Linux が前提になることがあり、一旦ペンディングしておきます。

Momo ベースの Azuki 開発 (ペンディング)

Azuki プロジェクトとして、色々考えながらやってみています。Jetson Nano で動く Momo ベースの常時接続型のソフトウェアです。4K@30 を送受信するというのを考えています。SDL をうまく活用していく予定です。

まずは P2P と SFU に対応していきます。最終的には P2P MCU としての動作を目標とします。こちらは非商用であれば無料で利用可能にします。

ROS 関連(対応終了)

メンテナンスや検証のコストがとても高いことから対応を終了しました。

まとめ

以下のようなパッケージが用意されるはずです。

  • raspberry-pi-os_armv6.tar.gz
  • raspberry-pi-os_armv7.tar.gz
  • raspberry-pi-os_armv8.tar.gz
  • ubuntu-18.04_armv8_jetson_xavier.tar.gz
  • ubuntu-18.04_armv8_jetson_nano.tar.gz
  • ubuntu-18.04_x86_64.tar.gz
  • ubuntu-20.04_x86_64.tar.gz
  • macos-10.16_x86_64.tar.gz
  • windows-10.1809_x86_64.zip

来年も Momo 頑張っていきますので、楽しみにしていてください。

--

--