5

GotoMeetingのようなソフトウェアはどのようにデスクトップをキャプチャするのか疑問に思いました。GDIを使用してフルスクリーン(またはブロックごと)のキャプチャを実行できますが、それは私には無駄すぎるように思えます。また、私はミラーデバイスを調べましたが、これを行うより簡単な手法やライブラリがあるかどうか疑問に思いました。

高速で効率的なデスクトップ画面キャプチャ(10p15 fps)が必要です。これを最終的にビデオファイルに変換し、アプリケーションと統合して、キャプチャしたフィードをネットワークなどに送信します。

ありがとう!

4

5 に答える 5

1

はい、画面キャプチャを取得し、前のキャプチャ間の差分を見つけることは、変更を送信するだけで送信時の帯域幅を減らす良い方法です。もちろん、これは、このブロックごとに行うビデオエンコーディング技術に似ています。

それでも、違いを取得するためにキャプチャと追加の処理を行う必要があることを意味します。つまり、それをエンコードします。

于 2010-01-14T14:07:37.120 に答える
1

ミラーデバイスを使用することにより、変更された更新された長方形と画面へのポインタの両方を取得できます。更新された長方形ポインタは、変更されるすべての長方形を指します。これらの長方形は、頻繁に変更される変更長方形です。1秒間に1000個の長方形を取得できるため、長方形の一部を除外します。

于 2010-09-02T10:24:43.243 に答える
0

私はどちらかです:

  • フルスクリーンキャプチャを実行してから、画像処理を実行して、帯域幅を節約するために変更された画面の部分を分離します。

-また-

  • CamStudioのようなプログラムを使用してください。
于 2010-01-11T22:40:31.300 に答える
0

メモリードライバーを使用して毎秒20〜30フレームを取得しましたが、画像ボックスに表示されていますが、全画面更新を取得すると、これらのフレームはバッファリングされます。画像ボックスが遅く、自分のコンポーネントに変更されているため、これはある程度高速ですが、フルスクリーンでは良くありません。また、フルスクリーンで10fpsを表示します。フレームのレンダリングで問題が発生しています。1秒あたり20〜30フレームをキャプチャできますが、レンダリングは1秒で8〜10フルスクリーンフレームです。誰かがフルスクリーンで達成可能なレンダリングフレームを持っている場合は、私を再生してください。

于 2010-10-11T06:54:48.570 に答える
-1

何語?

.NETはGraphics.CopyFromScreenを提供します。

于 2010-01-11T22:07:08.607 に答える