私は Ubuntu とグラフィカル デスクトップがインストールされたコンピューターを持っていて、そこで OpenGL アプリケーションを頻繁に実行して画面をキャプチャし、ビデオを作成します。生成されたビデオだけが重要で、OpenGL コンテキストを作成するにはウィンドウを開く必要があるため、ターミナルから実行できるプログラムがあり、このプログラムでウィンドウを開き、OpenGL でレンダリングし、ピクセル データを ffmpeg プロセスに送信してビデオを作成し、動作します。今、このビデオ ジェネレーターを ssh 経由でリモートで実行したいのですが、プログラムをリモートで実行すると、ウィンドウの作成に失敗します。これは、接続元のマシンでグラフィカル出力を取得したいなどと仮定すると、X と関係があると思いますが、これについてはあまりよく知りません。ビデオを作成したいだけで、ウィンドウが表示されることは気にしません。理論的には、スクリプトをローカルで実行する場合と同じように、リモート マシンでウィンドウを開くことができるはずです。これをリモートで動作させるには、DISPLAY などの環境変数を設定する必要がありますか?
答え1
DISPLAY
変数を、ホスト上で GUI セッション (X、Wayland、または Mir) が実行されているものに設定する必要があります。
このwho
コマンドを使用すると、GUI セッションがどのディスプレイで実行されているかを確認できます (別のセッションでリモート ホストの GUI に既にログインしていると仮定します)。
もう 1 つの解決策としては、VNC または SPICE を使用してリモート ホストに接続し、完全なデスクトップを表示することが挙げられます。