Как программное обеспечение, такое как GotoMeeting, захватывает изображение рабочего стола? - PullRequest
5 голосов
/ 12 января 2010

Мне было интересно, как такие программы, как GotoMeeting, захватывают рабочий стол. Я могу сделать полноэкранный (или блок за блоком) захват с использованием GDI, но это мне кажется слишком расточительным. Также я изучил устройства Mirror, но мне было интересно, есть ли более простая техника или библиотека, которая делает это.

Мне нужен быстрый и эффективный снимок экрана рабочего стола (10p15 кадров в секунду), который я в конечном итоге собираюсь преобразовать в видеофайл и интегрировать с моим приложением для отправки захваченного канала по сети или чем-то еще.

Спасибо!

Ответы [ 5 ]

1 голос
/ 02 сентября 2010

с помощью зеркальных устройств вы можете получить как измененный прямоугольник, который изменяется, так и указатель на экран. обновлен указатель на прямоугольник, указывающий на все изменяемые прямоугольники, эти прямоугольники являются часто меняющимися прямоугольниками изменения. отфильтруйте часть прямоугольника, потому что за одну секунду вы можете получить 1000 прямоугольников.

1 голос
/ 14 января 2010

Да, снимок экрана и нахождение разницы между предыдущими снимками было бы хорошим способом уменьшить пропускную способность при передаче, передавая только изменения, конечно, это похоже на методы кодирования видео, которые делают этот блок за блоком.

Все еще означает, что вам нужно сделать захват и дополнительную обработку для получения разницы, то есть кодировать ее.

0 голосов
/ 11 октября 2010

Я получил от 20 до 30 кадров в секунду, используя драйвер памяти. Я отображаюсь на моем графическом окне, но когда я получаю полноэкранное обновление, эти кадры буферизуются. так как картинка в окне медленная и меняю свой компонент, это то, насколько быстро, но не очень хорошо на полном экране, также я вывожу 10 кадров в секунду на весь экран. Я сталкиваюсь с проблемой при рендеринге кадров. Я могу захватывать от 20 до 30 кадров в секунду, но мой рендеринг составляет от 8 до 10 полноэкранных кадров в секунду. если у кого-то есть четкие кадры рендеринга в полноэкранном режиме, пожалуйста, воспроизведите меня.

0 голосов
/ 12 января 2010

Я бы либо:

  • Делайте полноэкранные снимки, а затем выполнить обработку изображения, чтобы изолировать части экрана, которые изменились для экономии пропускной способности.

1007 * -ИЛИ- *

  • Используйте такую ​​программу, как CamStudio .
0 голосов
/ 12 января 2010

Какой язык?

.NET предоставляет Graphics.CopyFromScreen .

...