Go to this month’s calendar
2020 / 10 / 29

リングフィットアドベンチャー

第 15 回目。

今日は控えめに。次がボス戦だったので。

ゲーム配信の映像が乱れる問題の解消

最近、ゲーム配信するときにゲームの映像が乱れるようになった。今日のリングフィットアドベンチャーもそう。

で、なんで映像が乱れるのかの原因を探ることにした。今までは処理性能がやっぱり Mac では追いつかないものだと思いこんでいたけど、Core i9 と eGPU (Radeon RX Vega 56) を使っているのに処理性能が足りないなんてことはありえないだろうと思ったのだ。

結論としては、eGPU 側にキャプチャボードを直接接続しているのが問題だった。MacBook Pro に直接 (厳密には USB-C to USB アダプタかませないといけないけど) つないだら直った。なぜ eGPU 側に直接さすとうまくいかないのかは不明。

というか、今回のテストで、別に eGPU 使わなくても 1080p@60fps で問題なく配信できてしまうことがわかった。うーん、eGPU とはいったいなんだったんだろうか……。

▲ eGPU 外して MacBook Pro だけで配信テスト

▲ eGPU 取り付けて、eGPU 側にキャプチャボード接続して配信テスト (従来通り)。一個前で MacBook Pro に繋ぎ変えたりしていたら、今までよりも映像乱れがめちゃくちゃひどくなってしまった。なんじゃこりゃってレベル。これはもう見るに耐えないレベルだね。なんでこんなことになっちゃうんだろう

"Force GPU as render device" のチェックを外して配信テスト。GPU ってついてるからなんかこれで eGPU 使わなくなるかなと思ったけど関係なかった。というより eGPU 使う使わないは関係なくて、キャプチャボードを eGPU に接続しているのが問題だったので、これで eGPU を使わなかったとしても関係ない

▲ ハードウェアアクセラレーションを無効化して配信テスト。これも eGPU ふつうに使ってたし、もちろん関係ないので変化なし

▲ キャプチャボードを MacBook Pro 側に接続して配信テスト。eGPU には接続している。これが成功パターン。アクティビティモニタでみるとちゃんと eGPU も使っている。eGPU を使っているかどうかではなくキャプチャボードを eGPU に直接つないでいるのが映像乱れの原因だったことがこれでわかった。ちなみに最初 30 秒くらいミスってゲームの音が入っていない

ついでにマイクも、eGPU 側ではなく MacBook Pro 側につないだものと比較してみた。なぜかというと、キャプチャボードを eGPU に直接つないで映像が乱れる問題が発生したから、マイクもひょっとしたら eGPU に直接つないでいたから音質が悪くなってしまっていたのかもしれないと思ったからだ。

でもそんなことはなかった。マイクは全然音質変わらなかった。ということで、マイクは単純に品質の悪い安物マイクだから音質も悪かった、というシンプルな結論に帰着した。良いマイクほしい。

▲ MacBook Pro 側につないだパターン。たぶん今までと変わっていない

▲ MacBook Pro 側につないだパターン (フィルターかけないパターン)。フィルターかけないプレーンなマイクの音が、MacBook Pro につないだときと eGPU につないだときとで変わるかのテスト。結果、変わっていない。下の動画と音質比べても変わっていないはず

▲ eGPU 側につないだパターン (フィルターかけないパターン) (従来通り)

そういえば

スリープモードにしている Mac が突然スリープ解除される問題にずっと悩まされていて、少し前に省エネルギー設定を変更したら、それ以降、スリープが勝手に解除される問題が発生しなくなった。でめたし 🎉

この記事 を参考にした。