UltraVNCで接続したら配信端末でOBSが起動できない…

配信用PCのGUI上でOBSを操作して配信というところまではできた、しかもubuntu+NDIプラグインという予算抑える環境で。ドヤ( ・´ー・`)というのが前回まで。

今度は、配信用PCにリモートで接続しての配信を試みます。これが上手くいけば、配信用PCでディスプレイやキーボードを繋ぐ必要がありません。ゲーミングPC上での操作だけで全てが解決します。リモート接続のソリューションはUltraVNCです。これも最初は上手くいかなかったのですが、いろいろ試すうちに何とかPC起動すると自動でvncserver起動するようにまで設定完了。あとは配信するだけなんですが。

結果、うまくいきませんでした。UltraVNCから接続すると、なんと配信PCのOBSが起動しません。焦ってディスプレイ繋ぎなおして配信PCに直接ログインすると、OBSはあっさり起動。配信も普通にできました…。VNC経由で接続すると、グラフィックドライバとかOpenGLか何かがおかしいっぽい…。エラーメッセージでぐぐるとhit自体はするので、何か原因と対策はありそうなのだけども。結構本質的なlinuxの知識が要りそうじゃないですか…。

お財布と相談した結果の理想の環境までもうちょっとなんですけどね…。実は他に配信PCでnginxとrtmpで配信サーバを立ててしまうという方法もあると知ったのですが。これはまた次に手詰まった時に試そう。

OBSとNDIプラグインで2PC配信環境作ったもののゲームPCから配信のほうがマシだった

2018年6月の新しいPC構成で、再チャレンジしております。

まあ配信用PCのスペックが足りないのか。

目的

ゲーム用PCから出力した映像を、配信用PCに送り、そこからTwitchなどで配信。配信時のゲームPCの負荷低減と、あまったPC環境の有効活用。これ自体はゲーム配信ガチ勢には良くある構成で、ゲームPCに配信の負荷をかけないという利点があります。配信殆どしたことない勢ですが、OBSのNDIプラグインを使えば、特別なデバイスが不要になる、linuxでも構成できるということでやってみました。結論から言うと、確かに配信はできます。従来の一般的な構成に加えると、キャプチャボードなどの機器や、配信用PCのOSとして用意するwindowsのコストが浮きます。

用意した構成

ゲーム用:Windows10
配信用:Ubuntu 16.04(64bit)
詳細は当ブログ内のPCスペックのページで。もちろん二台は同じLAN内にいます。どちらのPCにもOBS Studioをインストールして、追加でNDIプラグインをインストール。

OBSバージョン:どちらのPCも 20.0.1

NDIプラグイン
Ubuntu:obs-ndi 4.1.1(libndi3_3.0.1-1_amd64.1.debと、obs-ndi_4.1.1-1_amd64.deb)
windows:obs-ndi 4.1.1

実際に環境を作るのに両方のPCにそれぞれモニタとマウスキーボードがあったほうが捗る。環境構築の途中、windowsのfirewallでネットワーク許可聞かれるので、プライベートネットワークでの通信を許可します。詳細忘れちゃった…。

作業

OBS本体は情報豊富なので割愛。ubuntuにも普通にインストールできます。

https://github.com/Palakis/obs-ndi/releases

上記からOBSのNDIプラグインをダウンロードしてインストール。linux版もここから。debパッケージなのでdebian系といわれるubuntuは楽です。それ以外のディストロでも使えるものがあるかも…。NDIプラグインのインストール後にPCの再起動が必要です。ubuntuのほうも自分の環境では再起動したらうまく動いたのでやっておく。

配信用の設定をざっくりと書きます。

出力

配信
レート制御:CBR
ビットレート:1500-2000で何度か変えながら
プリセット:fastからveryfastで変えながら
プロファイル:main

音声:ビットレート 96

映像

基本解像度:1280×720
出力解像度:1280×720
縮小フィルタ:バイキュービック
FPS共通値:30FPS

配信

先にゲームPCでOBSを動作させておきます。ツール→NDI Output settingsで窓開く。名前は配信用PCから見える名前になるので、どのPCか判別できるような名前に。仮にgamingPCとしておきます。その上のEnable NDI Outputにチェックを入れると準備完了。すでに配信環境が出来上がっていて、配信やってます~なんて人はこれだけです。

配信PCでも同じように、OBSを起動する。ツール類のインストールが問題なく済んでいれば、ソースのところにNDI Sourceというのが増えている。選択するとSource nameで先に起動したゲームPCからの出力をソースとして選択できる。選択後少しすると、ゲームPCから出力された画面が見える。これを配信用PCでエンコードして配信するというわけです。これも過去に2PC配信したことある人だったら困るところはないと思います。

ゲームPCからの映像が来ないぞーという人はwindowsのfirewallかアンチウイルスソフトとかでゲームPCと配信PC間の通信が止められているかもしれません。また、自分の環境ではゲームPCのOBSを先に動作させて、Enable NDI Outputにチェックを入れておかないと配信PCのSourceに取り込めませんでした。

こうしてあっさりとtwitchで配信できました。しかし自分の環境では配信PCのスペックが足りないのかもしれない。720Pで映像bitrateが1800でもなかなか厳しいものがありました。これはネット上の情報でこのぐらいの設定で配信するもんだという情報をもとに設定したのですが、動きが激しくなるとすぐにカクカクです。配信ノウハウに乏しいので設定に問題があるのかもしれませんし、あるいはOSがubuntuというところに原因があるのかもしれません。またはNDIプラグインの原因なのかもしれません。まだまだ発展途上という感もあります。そう多くはない環境で地雷を踏んでいる感もありますが、仕事でやってはないのでこの状況を楽しんでいるという塩梅です。

twitchの「過去の配信」から自分のテスト配信を見ると、もっと画質周りの落としても満足できるクオリティになっている気がするが…。どのぐらいでみんな配信するもんなんでしょうね?そして、ゲームPCでゲームしながらTwitch配信しても正直PCの負荷的には余裕だったのが驚いた。bf1(ゲーム内画質低め)+配信でCPU10%ほどしか使わねえの…これがryzenの力か。やりよるわ。

その辺の配信のビデオ置いておきますね。ご参考になれば。

(現在見れません)