Я хочу написать программу screencasting для платформы Windows, но я не уверен, как захватить экран. Единственный метод, который я знаю, - использовать GDI, но мне любопытно, есть ли другие способы обойти это, и если есть, что несет наименьшие издержки? Скорость - приоритет.
Программа screencasting будет предназначена для записи видеозаписей, хотя, если это сужает возможности, я по-прежнему открыт для любых других предложений, которые выпадают из этой области. Знание не плохо, в конце концов.
Изменить. Я наткнулся на эту статью: Различные способы захвата экрана. Он познакомил меня с этим способом Windows Media API и способом DirectX. В Заключении упоминается, что отключение аппаратного ускорения может значительно повысить производительность приложения захвата. Мне любопытно, почему это так. Может ли кто-нибудь заполнить пробелы для меня?
Изменить. Я читал, что программы screencasting, такие как Camtasia, используют свой собственный драйвер захвата. Может ли кто-нибудь дать мне подробное объяснение того, как это работает, и почему оно быстрее? Мне также может понадобиться руководство по реализации чего-то подобного, но я уверен, что в любом случае существует документация.
Кроме того, теперь я знаю, как FRAPS записывает экран. Он перехватывает базовый графический API для чтения из заднего буфера. Насколько я понимаю, это быстрее, чем чтение из переднего буфера, потому что вы читаете из системной памяти, а не из видеопамяти. Вы можете прочитать статью здесь.