PS5 + キャプチャーボード + OBSでDiscord音声を含めた配信をMacでやる
まず
PS5(もしくは4)(以下PS)で、他のデバイスでDiscordをしながらゲームを配信するための必要な機材・ソフトウェアの選定と、それらの構成について色々苦労したので備忘録的に残しておきます。どこかの誰かの参考になれば幸いです。
そもそも、PSではその中で完結するブロードキャスト機能があり、単にゲーム配信するだけならPS上の設定をちょろっとやればそれだけで配信することができます。
しかし、それだと配信画面を自由にカスタマイズすることができないこと、また、自分の場合はマルチオーディオスプリッターなどを使ってMacやiPad上で友達とDiscord通話をしながらプレイしていたこともあり、そのような会話を配信に含めるとすると、OBSなどの配信ソフトを使用することが望ましいという結論になりました。なによりDiscordのアイコンがピコピコしてるやつを表示してえ。
キャプチャーボード選定
PSやSwitchなど、外部のゲームハードのプレイ映像をPCで配信するには、それらの映像・音声をPCに取り込む為のキャプチャーボードが必要になります。自分のMacの環境については以下の通り。(2021/9/22現在)
キャプチャーボードはMacOSで動かせるものとして調べると、かなり候補が絞られます。めちゃくちゃ調べた結果、よく紹介されているのは以下のものが代表的でした。
Elgato HD60S
恐らくMac対応の中では一番人気のキャプチャーボートで、基本的な性能は自身が求める基準を満たしています。(1080P60以上、パススルー、USB3.0)
しかし気になるのが、調べた際に多く散見される不具合報告の多さ。まず、HD60Sの場合はOBSで認識させるのにOBS Linkというアプリを噛まさないといけません。このOBS Linkが曲者で、OSのアップデートに絡んでの不具合が結構多そうな感じ。
また、HD60SでPCに取り込んだ音声がパススルーの映像から微妙に遅延しているらしい問題。これについてはFPSや格闘系など瞬間的なアクションが肝なゲームをやっている人は結構書いていた内容で、OBS Linkを介しているので起こるらしい現象。自分としては絶対に気になってしまうので、できれば避けたい。HDMIパススルーの接続先のモニタや、そもそもPSのコントローラからゲーム音を聞くのであれば問題ないですが、自分はDiscordを含めた音声を聞きたいのでPCからゲーム音を聞くことは外せません。
他にもいくつか懸念点がありました。
・Elgatoのキャプチャーボードの場合は、純正のGame Capture HDというアプリがありますが、別にそれを求めていない点。Mac対応というのもこの純正アプリに対応しているかどうかだと思う。後述しますが、UVC/UAC対応のものが正義だった。
・後発のHD60S+はOBS Linkは要らない(UVC/UAC対応)ぽいが、M1 Macには対応していない点。(HD60SはM1もいけるぽい) いつかはM1 Macマンとしてはこれは頂けない。新しい方が対応してないって何だ。
・価格が高い
補足: UVC/UACとは
UVC(USB Video Class)は、ビデオカメラやWEBカメラといった、主にUSBカメラ(規格上は逆方向通信も可能であるので、例えばUSBディスプレイにも応用可能)の通信方法に関する規格です。
https://infinitegra.co.jp/blog/uvc_is/
要は、ドライバ不要で差すだけで認識されるぜってことです。USBメモリ差したり、HDD差したりしたら名前出てきて認識されますよね。あんな感じで映像と音声も認識してくれるという規格です。
Elgato HD60Sなんかは専用ソフトやOBS Linkというプラグインを用いて初めてメディアソースとして認識されます。UVC対応になっていると、その他のソフトやPCのサウンド設定の際のソースにも表示されるので使用の幅が広がります。あと標準規格なので絶対に不具合が少ない。
AVerMedia GC553
こちらも調べる限り、MacでOBSでの録画配信実績があるものになります。しかもUVC/UACに対応!4K録画可能に4Kパススルーと性能は文句なさそうですが如何せん高い。ほぼ3万かあ。3万。
M1 Macには対応してないみたいで、これだけの高スペックなのに将来M1を買うことになると懸念材料になってしまうのは個人的には良くないですね。
参考になった記事:
https://56goroq.com/game/mac-captureboard-ps4/
他にもいくつか候補はあったのですが、イマイチぱっとするものがなく。
あーハイハイMacなのが悪いです。もうこの際WindowsPCでも買いますよ。俺が悪いんでしょ。って不貞腐れながらTwitter検索をしていたら神キャプチャーボードを見つけました。やっぱり何かを検索する時はTwitterが一番な気がします。webのGoogle検索じゃ何日かかっても辿りつけませんでした。
CLASSIC PRO CHD312
サウンドハウスさんが出しているこのCHD312、必要十分すぎる機能が低価格で実現されていて凄い以外の感想がない。なんでもっと早く教えてくれない?
・USB3.0
・UVC/UAC
・4Kパススルー
・1080P60キャプチャ
・M1 Mac対応
・9800円
素晴らしい。昔やっていたエレキギターのケーブルを買ったことしかありませんでしたが、一撃でサウンドハウスさんのファンになりました。以下、死ぬほど参考になった記事たち。
https://kanashisa.blue/2020/10/21/chd312-review/
頼んで翌日には届いていたのも評価高いです。繋いでみたところ、上記のnoteでもあるように、パススルーではない映像/音に関しても遅延を全く感じないほどだったので更に評価が上がりました。自分の使用想定だと、現状は主にAPEX Legendsなのですが、映像はパススルー、音声はPCからの取り込みのもので数時間プレイしても全く違和感は感じませんでした。キャプチャーボード選びはこれにて終了。
物理的な構成図
次に構成などの説明に入ります。
各筐体との接続はこのようになります。音声の入出力に関しては、現在はヘッドセットを3.5mmオーディオケーブルにて接続しています。追々、入力に関してはUSBマイク、出力を受けるのはヘッドセット(ヘッドホン)に変更する予定ですが、大筋は変わりません。
Macでは必須な音声周りのアプリケーション準備
上記の物理セットアップが済んだので、具体的な内容をセットしていきます。その前に、Macで配信を行う場合に必ずと言っていいほど必要になるのが、仮想オーディオデバイスの存在と、それら音声の入出力を変更するミキサーの存在です。
大体、どのように調べても Sound Flower と、 LadioCast の組み合わせに行き着くかと思います。LadioCastについては鉄板中の鉄板アプリケーションで、現行でAppStoreに公開されているものなので余計心配ないかと思いますが、M1 Macな方はSoundFlowerは使用できないのと、SoundFlowerは約2年前から更新されておらず、その辺が気になる方は別の仮想オーディオデバイスソフトを使う必要がありそうです。
代替先も基本的には解が出ていて、 BlackHole か Loopback になるかと思います。Loopbackの方は有料アプリになります。
いずれの場合も、少し調べただけでインストールの仕方から使い方まで詳しく解説されているブログ等がボロボロと出ているので、その辺は割愛したいと思います。
各データの流れ図
現状の構成でのデータの流れはこのようになります。いきなりOBSが出てきて申し訳ないのですが、これを見る人でOBSがなんだか分からない人はいないと思うので割愛します。一言だけいうと、OBSは配信のためのアプリケーション(無料)です。OBSのインストールなどについてはめちゃくちゃ詳しく書いている人がごまんといるので苦労はしないと思います。自分のOBSのバージョンは27.0.1です。
OBSでゲーム映像、音声をセットする
OBSでのソースについてはこんな感じになりました。APEX配信用なのでAPEXというシーンを作成しています。ソースは上から、
・ロゴ → 気にしないで下さい
・Discord widget → Discordのアイコンが画面上に出て、喋っているとピカピカするやつ。参照→ https://shifa-channel.com/discord-icon-obs/
・Discord音声 → 音声入力キャプチャでSoundFlowerの64chを選択。詳しくは後述します。
・PS5音声キャプチャ → 音声入力キャプチャで USB3.0 Capture Digital Audio を選択。
・PS5キャプチャ → 映像キャプチャデバイスで USB3.0 Capture Video を選択。
プロパティはこんな感じです。 USB3.0 Capture~ というのはキャプチャーボードからのソースで、UVC/UACの恩恵もあって、勝手に選択肢に出てきます。
他の人の記事を見ていると、自分の声もLadioCastでDiscord音声と統合させてデスクトップ音声としてOBSに入れている方も多いのですが、(自分でいうDiscord音声に含めている) 自分の場合はOBSのマイク入力として入れています。下の赤い部分。
こうすることで、ソース一覧にはマイクにあたる部分がないですが、音声ミキサーにはマイクが表示されます。OBSで撮る/配信するものについては全てOBS上で細かく設定できる方が良いだろという意図の元です。
以上でとりあえずPSからの映像と音声+自分の声についてはOBS上で扱えるようになりました。残りはDiscord関連についてです。
Discord側の設定
自分の場合はMacのDiscord Appを使っています。
Discordの音声設定で、入力デバイスを使用したいマイクやヘッドセット、出力デバイスをSoundflower(2ch) に設定して下さい。Discordの設定は以上。
LadioCastとOBSデスクトップ音声の設定
入力1はキャプチャーボードからのゲーム音声になります。配信/録画に乗る音声はOBS上で直に引いてるので、ここで設定しているのはあくまで自分が聞く用の音声。なので、出力Aux1に設定している自分のヘッドホンのみに出力。(赤枠)
入力2はDiscordの設定上で出力デバイスに設定したSoundflower(2ch)に設定します。Discord上の音声がSoundflowerの仮想デバイスを経由してそのまま入ってくる形。こちらは自分で聞くのと、OBSにも流し込みたいので、メインとAux1の両方に出力。(青枠) 出力のメインはSoundflower(64ch)に設定します。
最後にOBS側の設定です。
これも単に音声入力キャプチャを新たに設定し、そのソースにあたるデバイスをSoundflower(64ch)にするだけです。前述した設定でDiscord音声としていた部分ですね。
以上で、Discord音声を含めたOBSでの配信設定は完了です。UVC/UAC対応していると他に立ち上げないといけないアプリや認識されない音声を力技で入れることもしないで済むので非常にシンプル。
その他の設定
最後に諸々の詳細設定についても晒しておきます。この辺は正直それぞれのPCのスペックと、回線の速さが大きく関係してくるので、自身の環境で最適な設定を試行錯誤していく感じになると思います。
まず、映像の設定です。解像度は1920x1080で、フレームレートは30にしています。60FPSだと、自分のMBPでは一部不安定な部分が出たのでとりあえず30にしました。
音声は前述した通り、グローバル音声デバイスとしてはマイクのみです。サンプリングレートは48kHz。
出力設定の配信については詳細設定画面を出し、アップルVT H264 ハードウェアエンコーダを選択。これもご使用のMacのグラフィックボードがどのようなものを使っているかで最適解は変わると思います。自分のMBPは標準のCPU内蔵グラフィックボードの他に、Radeon Pro 560Xが内蔵されています。このような構成の場合は、通常のソフトウェアエンコードであるx264を選択した時より、如実にCPU負荷が下がりました。録画された動画の画質に差大きな差は見られませんでしたが、CPU負荷を考慮してハードウェアエンコーダにしています。
リスケール設定はなしで、ビットレートはとりあえず5000Kbpsにしています。
キーフレーム間隔は2、プロファイルはmain、Bフレームは使用なしです。この辺については先人の膨大な試行錯誤の結果、脳死でこうしとけとどっかに書いてあったのでそうしてます。特に問題なしッ。
録画については配信と同時に録画するような形を想定していたので、ストリームエンコーダの設定にしています。フォーマットはその後の汎用性を考えてmp4です。これで録画の方も問題なかったです。
長くなりましたが、とりあえず現状の設定や構成は以上になります。
変更・問題があったら追記します。