MagicLeapにRTPで映像を送ってnative buildしたffmpegとOpenCVで画像を取り出して遊びたかった

この記事は Magic Leap Advent Calendar 2020 の22日目の記事です。
自称日本で10人に入るMagicLeapのC使いとして、今日ももりもり Native Plugin を build していこうと思います。

まず、大切なことですが、この記事でやろうとしたことは失敗しました。MagicLeap上で動かした際の Connection timeout の error が取れず、RTP信号を受信できませんでした。
悲しみ。。。以下はまだ元気だったころの記事をそのまま記載しておきます。

さて、今回の記事はすべて触れると本当に長くなるので、目次で全体像をお見せしたうえで、ちょこちょこ解説していこうと思います。

Magic Leap で RTP 映像を表示して Texture に張り付けるまで

  1. ffmpeg を MagicLeap 向けに build する

    OSS である ffmpeg を、MagicLeap 用に build して使えるようにします。

  2. OpenCV を MagicLeap 向けに build する

    OpenCV を build して使っていきます。

  3. Unity で使うための Native Plugin を作る

    Editor 上でも使えるようにちょっと変な構成で進めます。

  4. ffmpeg を用いて PC からカメラ映像を送信

    ffmpeg を使うだけなので、とりあえずはシェルで。C APIを叩いて好きに ffmpeg を使っても構いません。

  5. Magic Leap で カメラ映像を受信

    信号を受信!

それでは頑張っていきましょう。

MagicLeapで使うNative Pluginを作ってUnityで使う

概要

MagicLeap Extension for VSCode を使った MagicLeap で利用可能な Shared Libraryを作成する方法。

Templateから作成すると、そのままではMagicLeapで動作しないので、その解決方法を述べる。