Windows 플랫폼 용 스크린 캐스팅 프로그램을 작성하고 싶지만 화면을 캡처하는 방법을 잘 모르겠습니다. 내가 아는 유일한 방법은 GDI를 사용하는 것입니다. 그러나이 문제를 해결할 다른 방법이 있는지, 그리고 있다면 거기에 가장 적은 오버 헤드가 발생하는지 궁금합니다. 속도가 우선입니다.
스크린 캐스팅 프로그램은 게임 푸티지를 녹화하기위한 것이지만 옵션이 좁아지면이 범위를 벗어나는 다른 제안이 여전히 열려 있습니다. 결국 지식은 나쁘지 않습니다.
편집 : 나는이 기사 를 보았습니다 : 화면을 캡처하는 다양한 방법 . Windows Media API 방식과 DirectX 방식을 소개했습니다. 결론에서 하드웨어 가속을 비활성화하면 캡처 응용 프로그램의 성능을 크게 향상시킬 수 있습니다. 왜 이런지 궁금합니다. 누구든지 나를 위해 누락 된 공백을 채울 수 있습니까?
편집 : Camtasia와 같은 스크린 캐스팅 프로그램은 자체 캡처 드라이버를 사용한다는 것을 읽었습니다. 누군가 어떻게 작동하는지, 왜 더 빠른지에 대해 깊이 설명해 줄 수 있습니까? 그런 식으로 구현하는 데 지침이 필요할 수도 있지만 어쨌든 기존 문서가 있다고 확신합니다.
또한 이제 FRAPS가 화면을 기록하는 방법을 알고 있습니다. 기본 그래픽 API를 후크하여 백 버퍼에서 읽습니다. 내가 이해 한 바에 따르면 비디오 RAM이 아닌 시스템 RAM에서 읽는 것이기 때문에 프론트 버퍼에서 읽는 것보다 빠릅니다. 여기서 기사를 읽을 수 있습니다 .
MovePlayerLeft()
. 또한 키 누름 및 기타 입력 시간과 지속 시간을 기록합니다. 그런 다음 재생 모드에있을 때는 입력을 무시하고 대신 기록 된 데이터를 읽습니다. 데이터에서 왼쪽 키를 누르면을 호출 MovePlayerLeft()
합니다.