2012-11-05 1 views
5

私はExpression Encoder 4を使用しているため、自分の画面をビデオとしてキャプチャする必要がありますが、アプリケーションでは1つのウィンドウもキャプチャする必要がありますが、それはEE4と私のScreenCaptureJobCaptureRectangleを動的に変更しようとしましたが、それは可能ではないようです。だから私の質問は、あなたは、この「シングルウィンドウキャプチャ」を好んで使っていることを、C#または多分C++を使って知っていますか?1つのウィンドウのみのビデオを録画する

答えて

2

興味のあるウィンドウのウィンドウハンドルを取得し、タイマーを設定し、各タイマーでそのウィンドウの内容を取得します。そうすることは自明ではありませんが、確かに可能です。私は何年も前にC言語でそれをやっていましたが、そのコードは長くなくなっています。

画面の矩形領域をキャプチャしたいだけなら、問題は簡単です。ウィンドウハンドルを取得し、そのサイズと位置を照会し、その領域を画面からコピーすることができます。 CまたはC++では、デスクトップDCを取得し、そこからビットをコピーします。 C#では、ウィンドウのサイズであるBitmapを作成し、画像にGraphicsオブジェクトを取得するためにGraphics.FromImageと呼び出してから、CopyFromScreenを呼び出してウィンドウの内容を取得することができます。欠点は、問題のウィンドウを覆うものがない場合にのみ機能することです。何かがウィンドウの一部を覆っている場合は、それをキャプチャします。

いずれの場合でも、ビデオに結合する必要がある画像のストリームになります。それを行うための数多くの図書館があります。 C#ソリューションでは、まずcreate video from streamed images c#を見てください。私はC + +のための類似のライブラリがあると思う。私の経験が満足できるものではありませんでしたが、コマンドラインツールもあります。

+0

このテクニックは、エンコーダを使用しようとする前にやっていたことですが、私の唯一の恐怖はパフォーマンスに関するものでしたが、DirectXで再生した後は、結局問題にならないかもしれません。 –

関連する問題