タイムスタンプ付きの X マウス イベントをキャプチャし、カスタム マウス ポインターを使用してビデオをレンダリングしますか?

タイムスタンプ付きの X マウス イベントをキャプチャし、カスタム マウス ポインターを使用してビデオをレンダリングしますか?

私は通常recordmydesktop、いくつかのアプリケーション操作を記録するために使用していますが、私のシステムでは、recordmydesktop実際にはウィンドウのサイズを変更したときに(たとえば)コーナー矢印に変わったかどうかに関係なく、常に同じマウス ポインター/カーソル(矢印)が表示されます。さらに、マウス(いずれかのボタン)が押されたとき、ボタンが押されたとき、およびボタンが放されたときをビデオで示すものが必要です。これは、デスクトップ自体では通常示されません(特定のアプリケーションがそれらのイベントを処理しない限り)。

そこで、私が考えたのは、 「カーソルの描画を無効にする」recordmydesktopオプションをオンにして実行し--no-cursor、一方でマウスイベントデータ(位置とクリック)を生で記録できるかもしれないということです。すべてのキー入力を記録してファイルに保存するそしてマウスのクリック位置を取得するにはどうすればいいですか?、そして私はエクスニーマニュアル) は、すべてのマウス データをプレーン テキスト ファイルに記録できます。

そこで、私はこう思いました。自分でパーサーを書く以外に、

  • cneeマウスデータの記録形式(または独自の形式)を使用できます。
  • 「マウスの左/右の押下/解放」イベント用の透明なアニメーション .gif や、「左/右のダウン/アップ」状態用の透明な .png などを受け入れる
  • 1秒あたりのフレームレート設定、および出力ビデオのピクセル幅と高さを受け入れます
  • 要求されたレートとサイズで画像シーケンスをレンダリングし、レコーダーのマウス データに従って、マウスの位置に指定された .gifs/.png をフレーム画像の唯一のコンテンツとして表示します (それ以外の場合は透明です)。

次に、並行して実行recordmydesktop --no-cursorcnee --record --mouse -o /tmp/xnee.xns、完了したら、カスタム マウス ポインターの動きのみの別の透明な「マスク」ビデオをレンダリングし、最後にマウス カーソルの「マスク」を元のビデオにオーバーレイします。

もちろん、すでにこれを実行するプログラムがある場合は、ぜひ知りたいです。なぜなら、上で説明したように実行するプログラムがあったとしても、ビデオ サイズよりも大きいデスクトップ領域をキャプチャしていて、recordmydesktop --follow-mouse「このオプションを有効にすると、キャプチャ領域がマウス カーソルに追従します」などを使用したい場合には、やはり難しいと思うからです。

関連情報