以前に作った環境ですが、配信用(全然配信なんてしてないな…)PCのマザボとCPUを交換した所、どうも起動できない。DVDブートでインストーラーも動かない状態になり、困り果てていたのだが、電源も交換するとDVDブートしてubuntu18.04 LTSのインストーラーは起動した。この状態でSSDから起動しても、エラーになってしまう。ググったところ、どうも去年ぐらいの時点で、ryzenとubuntuの相性の問題があるらしいと判明。対応できそうなほど高度なlinuxの知識はないので、諦めてubuntu18.04で新しい環境を作ることにしました。以下、本題の環境準備手順。
結論から言うと、どうにか動作はするのですが、配信PC側でOBSのブラックスクリーン問題が発生します。いろいろいじっていると、何故か一回だけ動作したのですが、根本的な解決には至っておりません。引き続き調査中という感じです。解決したら書きますが、自力解決はほぼ諦めムードです。
殆どの人はゲームする環境はありますので、配信PCでの作業となります。インターネットにつながる状態であることを確認したうえで、いろいろインストールしていきませう。勿論、ゲーミングPCとは同じセグメントのLANにいる必要があります。ゲーミングPCと、配信PCのそれぞれから、同じルーターにLANケーブルが刺さっていれば大体はOK。
VNC関係のインストール
リモートでアクセスできるように、VNC関連の環境を整えたほうが楽なんだけど、実はこれがいろいろ上手く動作させるには難しかったりするし、OBSとはまた別の話になってしまうのでここでは触れません。すみません。(配信PCへのログインまでリモートから出来ると楽なのですが、それが出来る+OBS配信できる環境の組み合わせがなかなか…)
配信PCのOBSインストール
FFMPEGインストールして
sudo apt-get install ffmpeg
OBSがVLCのライブラリを使っている?っぽいので、VLCをインストール。配信以外にも便利なので入れておこう。
sudo apt-get install vlc
OBSのリポジトリを追加
sudo add-apt-repository ppa:obsproject/obs-studio
ubuntuのアップデートする。追加したリポジトリが更新されるんじゃないの多分。
sudo apt-get update
OBS本体のインストール。
sudo apt-get install obs-studio
NDIプラグインのインストール。ubuntuなので、debパッケージからインストールできる楽ちん~~。
https://github.com/Palakis/obs-ndi/releases
libndi3_3.0.1-1_amd64.4.debと、 obs-ndi_4.4.0-1_amd64.debをダウンロードして、ダブルクリックインストールできちゃう。
ゲーミングPCのOBSとNDIプラグインも、配信PCとバージョンを合わせ方が無難な気がします。今回の環境ではWindowsとlinuxなので厳密には合いませんが、どっちも最新版にしてみました。
インストールが無事に終われば、ubuntuのアプリケーションの一覧からOBSを起動させる。ゲーミングPCのOBSで、NDIoutputを有効にして何かソースを選ぶと、それが配信PC側OBSでも受信できるようになっている…筈なんですが、ここが上手くいってないのは冒頭に書いた通りです。OBS上での設定は、ゲーミングPCのOBSでツール→NDI output settingsで、Enable NDI outputにチェックを入れる。名前は適当で。配信PC上のOBSで、ソースにNDI Sourceを選択する。以上。
ゲーミングPCのOBSとNDIプラグインも、配信PCとバージョンを合わせ方が無難な気がします。今回の環境ではWindowsとlinuxなので厳密には合いませんが、どっちも最新版にしてみました。この記事を最初に公開した時点で、配信PCのOBS 22.1.0(Ubuntu)ゲームPCのOBS 22.1.2(Windows)
ここまでできれば、あとは実際の配信の準備をするだけです。フレームレートがどうのこうの、配信キーがどうの…。今までOBSで配信をやっていた人は特に困る事もない筈。配信作業の処理は配信PC側のOBSで行うので、場合によっては各種設定とかを手作業でやり直しになるんですが、その辺はしょうがないですね。どうせ端末が変われば配信設定などはどこかしら変えるものでしょう…。これも最初に書きましたが、リモート環境が整うと、リモートで配信PC側の設定変更が出来るのでかなり便利です。お金がある人は分配器やらPC切り替え機やら投入しましょう。
何かエラーか?
本当はこれだけでOKという凄く簡単作業なのですが、自分の環境では、配信PC上のOBSからNDIプラグイン経由で、ゲーミングPCのNDI出力が見れませんでした。配信PCのOBSヘルプメニューからログを表示してみると、あれこれが読み込みに失敗していると言われているようです。ググって対応を探ります。
うちはGTX960が配信PCに挿してあるのですが、これのドライバーが古いのか、おかしいのか?画面はちゃんと表示されていて、挙動に不自然なないのだが、数点のファイルを開けないと言われている。ではついでに、nvidiaのドライバをインストールする。今では簡単なコマンドで自動でゴリゴリとインストール出来るらしい。なお、自分はOBS配信のためだけの環境を作っているので気軽にゴリゴリとか言っていますが、他の用途でも使う必要があるとかならドライバー関係はちょっと慎重になった方がよろしいかと思う。
sudo ubuntu-drivers autoinstall
ドライバの更新が終わったら、PCを再起動する。
これをやっても、ブラックスクリーン改善せず。同じ状態の人はネット上に多々居るようなので、何か解決策がある筈なのですが。以前までの環境ではできていたので大変に悔しい。気長に探っていくか、各ライブラリやソフトウェア作者の頑張りに期待するしかないのか。しかし諦めきれないのでいろいろやってみました。以下の記録がどなたかの役に立つことを願いつつ…。
出力と入力を逆にやったらどうかと試してみたところ、なんと正常動作しました。配信PCであるubuntuの画面をNDI出力して、ゲーミングPCのNDISourceで取り込んだところ、画面取得できました。こうなると、どちらかPCのネットワーク関連の設定、firewall、アンチウイルスソフトなどが怪しいです。しかも自分の環境はゲーミングと配信でOSが違うという状態なので。
ネットで発見でした対応策は以下の通りです。
- ・geForceExperienceを無効にする。
- ※英語です。やってみたら一時的に改善はしましたが、再起動したらもとに戻りました。
https://www.youtube.com/watch?v=RAgLE-hV5cU
geforceのコントロールパネルから設定を変更する。
https://www.youtube.com/watch?v=eJCY1-sWgME
2番目のリストの内容は、Windowsのコントロール パネル→ネットワークとインターネット→ネットワークと共有センター→共有の詳細設定の変更にすすむ。「すべてのネットワーク」の閉じているドロップダウンメニューを開いて、「メディアストリーミングオプションの選択」を開いて、「有効にする」とかそんなボタンをクリックこの辺うろ覚えです。自分も一度はこれで出力を取得できましたが、今現在はまたブラックスクリーンです。解説動画ではこの辺の設定変更を毎回設定しなおす必要がある、と言っています。
【参照サイト様】
https://qiita.com/pochy9n/items/7b456acb0cb3d37756b3
https://qiita.com/KentaKawamata/items/c5826dbcc113321fbbcd