前回からいろいろと進展があったため、続きを書くことにします。
ちなみにタイトルで MacBook としか書かずに Air と Pro で事情はだいぶ違うだろうという話もあるだろうと思われたかもしれませんが、手元で比較した感じですと、どっちでもグラボがないと結局はどっこいどっこいという感じです。
計算資源が足りない
前回の記事で「計算資源が足りない」という根本の問題があったため、それを解決するためにハードウェアを追加することにしました。
eGPU です。*1
(↑ちなみに用意したのは CHROMA の方です。)
これには USB 3.1 Type-A スロットもついてるため、USB ハブも兼ねられる→問題なし (と思ってました)。
USB スロットが足りない
普段使いしている MacBook Air (以降 MBA) には Thunderbolt 3 ポートが 2 つしかありません。
一つはアバターに使用する iOS 端末に使うことにしました。ハブを挟むと MBA で認識しないため、直接接続する必要があります。*2
となると、残り一つを eGPU につないで、その先に HDMI キャプチャを接続することになります。
そのように接続して、MBA で OBS を起動したところ、HDMI キャプチャが目に見えて遅延するという状態になりました。
そして MBA の存在感が消えていく
どうも遅延の原因が eGPU-MBA 間の帯域が溢れているからではないかという天の声がありました。
そこで eGPU から HDMI ディスプレイに出力し、そこで OBS を動かすことで MBA 側に映像を送らない方法を試したところ、今度は遅延なく動くことが確認できました。
ですが、ここで別の問題が発生します。
MBA 側に映像を送らないようにするには MBA のディスプレイとの通信をしないようにしないといけないのですが、MBA の場合は物理的に閉じるしか方法がなく、閉じてしまうと、(物理的に) キーボードもトラックパッドも内蔵マイクも使えなくなるという問題です。
ちなみに MBA 側のディスプレイだけをオフにするシェアウェアを試用版で使ってみましたが、ディスプレイの表示をオフにするだけで通信はされているようでした。(遅延が解消しない。)
というわけで Bluetooth 接続でキーボードとマウスとマイク (とりあえずの安物) を接続する必要がありました。
これでようやく、それなりの配信環境を構築することができました。
ですが、こうなってくると MBA はもう単なるハブくらいの存在感になってしまいました。
まとめ
eGPU を使うことで 1080p 60fps が出せるようになりました。あとは音まわりです。