あるウィンドウの一部を別のウィンドウで表示する

あるウィンドウの一部を別のウィンドウで表示する

あるウィンドウの一部 (YouTube ページのビデオや、あるプログラムの進行状況バーなど) を取得し、その部分だけを別のフローティング ウィンドウに「ストリーミング」して、別のデスクトップでその部分だけを表示できるようにしたいです。

OBS のようなストリーミング ソフトウェアでこのようなことができることは知っていますし、ffmpeg/ffplay で理論的にこれができることも知っています (動作する例はありませんでした)。また、コンポジターでこれを行うことも可能であるはずです (ライブ Alt-Tab プレビューなど) が、適切な compiz プラグインが見つかりませんでした。

デスクトップ プログラムの 2 番目の別のビュー (できればスケーリング付き) を取得するにはどうすればよいですか?

(私はUbuntu Bionicの標準インストールを使用しています。)

答え1

xmagまたはX アプリケーションを見てくださいxmagnify。これらのアプリケーションはフレームバッファの一部を読み取り、それを拡大して別のウィンドウに表示します。

これは、ビデオ オーバーレイに表示されるビデオでは機能しません (オーバーレイは現在、主に GPU を使用してサーフェスをレンダリングするため、現在ではほとんど使用されていません)。

また、これらのアプリケーションは純粋な X であり、コンポジターより古いものであるため、コンポジターとどのようにやり取りするかはわかりません。

また、現在のデスクトップ上にないウィンドウはマップされておらず、更新されないため、「別のデスクトップ上」のウィンドウを表示できない場合があります。

おそらく、ソースを変更して、関心のあるアプリケーションのウィンドウ バッキング ストアから直接読み取ることも可能でしょう。

関連情報