Ubuntu24.04でwindowsからリモートログインが簡単に可能になった

過去に何回かUbuntu上にOBS環境を作っては「動いた」とか「実際にゲームPCの映像を配信出来た」とか、ささやかな報告をしておりました。先日の24.04へのグレードアップの際もいろいろ試みて、実際にゲーム配信PC環境になり得ることを確認しましたが、一つ課題が残っていました。配信PC側をどう操作するのか?これをサクッと解決できればなあと靄っていました。

Ubuntu24.04から、リモートデスクトップの機能が使えるようになりました。Ubuntu側の許可回りの設定と、windows側のリモートデスクトップ接続で解決です。Ubuntuを起動したときのOSへのログインを、ゲームしているwindowsPCから行えるようになりました。面倒なことを考える必要がありません。設定云々はこちらのサイト。

https://gihyo.jp/admin/serial/01/ubuntu-recipe/0819

ゲーミングPC、配信PC両方が電源オフの状態から、スムーズに配信開始までいけます。Ubuntuの端末にはマウスもキーボードもディスプレイも不要になりました。Windowsがhomeエディションでも大丈夫です。(※proはリモートデスクトップで接続される側に必要)

今までもUbuntuのGUIにリモートログインする方法はいくつもありましたが、xwindowがどうのこうの、vncだのgnomeだのあああああああ面倒ばかりでした。結構繋がらないトラブル多いし。今回ようやく簡単に気軽にやりたいことが出来る状態になった。2017年から試してはすぐ諦めてって感じだったな~。Ubuntuグッジョブ、Ubuntu以外なら前から簡単でした、というオチだけはありませんように…

UbuntuのOBSとNDI環境をアップデート

概要:公式サイトの手順通りにやって上手くいかなかったが、手動でlibフォルダの中に必要と思われるファイルをコピーしたら動作した。素人の作業なので、細かい状況は自分も把握できてません。

Ubuntuを24.04のLTSにアップデート。ついでにOBSもアップデート。すると、NDIプラグインが動かなくなったので、更新を試みましたがなかなか上手くいきませんでした。

公式セットアップ手順。プロジェクトの名前がDistroAVというものに変わっていました。

https://github.com/DistroAV/DistroAV/wiki/1.-Installation

まずはNDI Runtimeが必要ということで、https://github.com/DistroAV/DistroAV/blob/master/CI/libndi-get.shからシェルスクリプトをダウンロード。適当にhomeフォルダに移動して、bashでこのシェルを実行。

bash libndi-get.sh

いろいろ走りますが、おそらくここで本来必要なパスへのコピーに失敗している。気付くのに時間がかかった。次にNDIプラグインのパッケージをインストール。debファイルなのですが、GUIのダブルクリックで実行できず🤔この記事時点の最新版debファイルをこちらからダウンロード

https://github.com/DistroAV/DistroAV/releases/tag/4.14.1

homeフォルダあたりにコピーして、sudoで実行します。手順サイトのファイル名のところはダウンロードしてきたファイル名にします。

sudo dpkg -i obs-ndi-4.14.1-x86_64-linux-gnu.deb

ここまで完了して、OBSを起動したのですが、起動時にNDI Runtimeが見つからないとメッセージ。あれこれ試したのですが、解決せず、ふと発見した以下のサイトの情報が助けになりました。

公式手順にもある、https://downloads.ndi.tv/SDK/NDI_SDK_Linux/Install_NDI_SDK_v6_Linux.tar.gzをダウンロード。解凍。中にあるshを実行する。

bash Install_NDI_SDK_v6_Linux.sh

すると、bashを実行したフォルダに「NDI SDK for Linux」ができる。(本当か?このタイミングで生成されたか自信がない)その中の/lib/x86_64-linux-gnu/に移動すると、ファイルが三つ置いてあるので、/usr/local/lib/にコピーする。これは前述のリンク先で書いてあった手順。/lib/x86_64-linux-gnu/に移動してから以下のコマンドでコピーされる。

sudo cp libndi.so* /usr/local/lib/

この後OBSを起動したら、起動時のエラーメッセージが無くなり、ツールのドロップダウンメニューにNDI™Output Settingsが表示されるようになった。

実際にゲーム配信は試していないが、ゲーム配信PC側のOBSで取り込んだブラウザとかデスクトップ画像が配信Ubuntu側のOBSに流せることは確認できた。この記事を書いている画面が、ちゃんとリアルタイムで更新されている。😁

以上です。

以下、バージョン情報

Ubuntu 24.04 TLS

OBS studio 30.2.3(64bit)

OBSで録画した画面の下の方が見切れる

新しいセットアップでゲームを録画したところ、ぱっと見では違和感を覚えないものの、良く見ると一様に画面下部が帯状に録画されていない。いろいろ調べた結果、ゲーム内の画面サイズ設定とディスプレイの実際の画面解像度が合っていないのが原因だった。合わせたら直った。

ゲーム設定:2560 x 1600

ディスプレイ解像度: 2560 x 1440

OBSではフルスクリーンのアプリケーションを録画という設定。ゲーム内設定が実際のディスプレイサイズより大きい表示設定だったので、縦にちょっと潰すような感じで1440PXの範囲内に表示していたんだろうか?で、その縦につぶれた状態がそのままOBSに録画されるのかと思いきや、OBSはきっちり2560 x 1440で録画していた…のか?標準出力を撮るというイメージかな?

比較画像ぐらい用意するかと思ったけどめんど。解決策ちゃんと書いたんで許して。

OBSを 28 にアップデートしたらNDIプラグイン動かない(っぽい)→バージョンアップで解決

【追記】NDIプラグインを新しいものにすると動作します。youtubeで配信可能なのを確認しました。OBS28対応バージョンはこちらから https://github.com/Palakis/obs-ndi/releases

タイトル通りです。下記リンク先の互換性の評価ページではin progressとなっているので、放置されているわけではないと思いますが、日々使っている人はOBSのバージョン戻したりしたほうが良いんじゃないでしょうかー。

https://obsproject.com/kb/obs-studio-28-plugin-compatibility

githubのNDI開発リポジトリも…ちょっと停滞気味なので心配ではありますが、きっと必ずなんとかしてくれる。ゲーム配信で稼いでいるひとはこういう開発者にお金おとしましょう(偉そうに)

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

自分はOBS 28.0.1にアップデートしたものの、まだ何もチェックしてない。websocketが使えるようになったみたいだけど…どうなるんでしょう。ヘッダーが減ったぶん、配信中の通信データが安定とかするのかしら?

さいきんPCゲームも殆どしてない。ローカル録画のUPぐらいは続けたいけど。リンク先はそんな動画置き場にしかなってない自分のyoutubeチャンネルです。今なら再生数0を1にする貴重な体験ができます。以上。

https://www.youtube.com/channel/UCJ7laepy6iQAYMdEGOZ8GBw

Steamのゲームがインストールされているドライブを交換するとどうなるか。

Windows上でドライブレターを割り当てて、物理的に独立したSSDにゲームをインストールしているとします。たとえばSドライブ。Sドライブを1Tから2Tに変えて、同じドライブレターを割り当てたとする。steamからすれば、Sドライブにゲームのデータがなくなりました。次にsteamを起動するとどうなるでしょうか。

特にエラーにはなりませんでした。Sドライブにインストールしていたゲームは、インストール前の状態に戻ります。ライブラリの左ペインの見た目で言えば、文字色が白からグレーに変わります。あとは再インストールすれば元通り。

Sドライブをコピーすればゲームの再インストール必要ないのではないか、と言われればその通りです。自分の場合はこれを機に整頓したかったので強引というかずぼらな処置になりました。

Steam上でゲームをインストールするフォルダのデフォルトを、交換したSドライブにしていた場合、この設定が消えるので再設定が必要です。Steamクライアント左上のめゆーから、設定→ダウンロード→コンテンツライブラリでインストールするフォルダを指定しなおしましょう~。

steamモバイルアプリと機種変更

新しいAndroid端末をお買い上げして、Android→Androidへの変更。新しい端末にSteamのモバイルアプリをインストール。この直前、たまたま別件でPC上でログアウトしていたもんだから、モバイルアプリ起動してログインしようとしたら、ログインするときにモバイル認証コード求められた。PCもモバイルもログアウトしてるんで詰んだ!?

古い端末のモバイルアプリを起動したら、ちゃんと動いてたのでその認証コードで一旦は復旧。新しいスマホで認証通すにはどうするのか。

ネットでは、「古い方の端末で予めsteamガードを解除しておく」という情報。理にかなった方法ではある。steamのヘルプでは、新しい端末へ認証機能を転送できるとあるが、具体的な手順の記載はなし。アプリの指示に従えなんて書いてある。具体的には「Steam ガードメニューから「認証用機器を削除」を選択する」となるのだけど、削除すると「コミュニティマーケットの使用およびトレードが 15 日間できなくなる」ので、転送を推奨すると書いてある。URLは以下。

https://support.steampowered.com/kb_article.php?ref=8625-wrah-9030&l=japanese#transfer

自分が実際にやったのは以下の手順。思い付きで横道それたので、公式の手順とは違う。PCではログイン済みの状態で作業開始。新しい端末と古い端末、両方wifiでネットに繋がっている状態。SIMは新しい端末に入れて、SMSを新しい端末で受け取れるようにしておく。Steamアカウントのメールアドレスにも、PCからちゃんとアクセスできる状態。一応リカバリコードは控えたうえで着手。新しい端末でsteamモバイルアプリを起動して、アカウント名、パスワード入力。すると、認証コードを求められる。ここで公式の手順としては、右下の「ヘルプ! モバイル認証コードへのアクセスを失いました」を選んでくださいとなっているのだけど、古い方の端末でもアプリ動いているので、そこに表示される認証コード入れれば良くないか?と思いついたのでやってみる。

認証コード入力したら、確かにログインできた。ところが、新しい方のアプリでSteamガードを開いても、認証コードが表示されない。これでは意味がない。一旦、新しい方、古い方のSteamアプリを終了。

古い端末のSteamアプリを起動して、Steamガードから「認証機器の削除」を選択すると、成功!Steamガードコードの入手方法はEメールになりました!と出てくる。そのあと、新しい方の端末でSteamアプリを起動してSteamガードを表示すると、「認証機器を追加」って表示されているので、タップ。

ステップ1 電話に送信されたSMSコードを入力しろと言ってくる。すぐに届くはずなので入力。この時点までにはSIMを新しい端末に挿してないとものすごく面倒なことになりそう。

ステップ2 新しいリカバリコードが発行されるので、ちゃんとメモしてひかえておく。

完了。新しい端末のSteamガードで、認証用のコードが出るようになる。あの、一定時間だけ有効なやつ。また、これで古い方の端末ではSteamガードを使えなくなっている筈。

shadowplayで録画ができない時。

ショートカットキーが反応しない。まあ最近録画なんぞもしてないけど、geforce Experienceが新しくなってからあまりいじってないしなー…とごそごそ設定変えたりしていたんだけど、そもそも動かないってなんだよ。答えはしょうもないところにあった。

http://rinthemirror.hatenadiary.com/entry/20160921/1474427532

アップデート後最も注意してほしいのが、最左の「インスタントリプレイ」をチェックすることです。なぜか5分前録画ができない、押しても全く反応せず、キーバインドが競合したかと思っていましたが、単にここにチェックを入れていないだけでした。デフォルトではなぜかオフになっているので忘れずに。

ここにチェックを入れると、右上に見慣れたアイコンが。録画おk。

【追記】解決してねえ。何か特定のゲームじゃないと動かないようになっているのではないか…?これではshadowplay自体の価値がない…。ちょっと使えないわ。どーしたもんか。

【追記2】
どうも、geforce experienceを開いた時に、シェアの三角形のアイコンと、その隣の歯車のアイコンが両方とも緑色になっていないとショートカットは使えないようだ。どうやったら両方緑になるかというと、シェアのアイコンは上に書いた通り。で、設定の歯車は、右上のアカウント名をクリックして開いた画面で緑色になった。「ホーム」ではグレーアウトされてしまう。全く意味がわからないが、録画も最後の〇分録画もできた。配信も多分できると思う。さすがにバグなんじゃないのこれ。

アイコンが両方とも緑になっております。