사용자에게 내 OpenGL 응용 프로그램의 기본 창에서 비디오 클립을 캡처하는 아주 간단한 방법을 제공해야합니다. 캡처를 시작하고 중지하기 위해 단추 및/또는 키보드 바로 가기를 추가 할 생각입니다. 시작할 때 파일 이름과 다른 옵션이 있으면 요청할 수 있습니다. Windows (XP/Vista)에서 실행되어야하지만, 지금까지 열어 두었던 Linux 문을 닫지는 않을 것입니다.Windows의 OpenGL 창에서 비디오 캡처하기
이 응용 프로그램은 OpenGL 프래그먼트 및 쉐이더 프로그램을 사용하므로 최종 비디오에 반드시 있어야 할 필요가있는 영향입니다.
그것은이 잠재적으로 내 요구 사항을 충족 할 수도 여러 가지 방법이 될 수있다 (하지만 시작해야하는 위치 난 정말 모르겠다)처럼 내게 보이는:
startRecording 같은 기능을 가진 인코딩 라이브러리를 (filename), stopRecording 및 captureFrame을 사용하십시오. 렌더링 된 모든 프레임 (또는 모든 초/세 번째/뭐든) 후에 captureFrame()을 호출 할 수 있습니다. 그렇게하면 프로그램이 느리게 실행되므로 문제가되지 않습니다.
내 응용 프로그램에서 프로그래밍 방식으로 제어 할 수있는 독립형 외부 프로그램입니다. 결국, 이 아닌을 제어 할 수있는 독립 실행 형 프로그램은 내가 필요한 것을 거의 수행합니다 ...하지만 사용자가 작동하는 것은 매우 간단해야하며, 또한 원활함을 고맙게 생각합니다. 내 응용 프로그램은 일반적으로 전체 화면으로 실행됩니다. 또한 NSIS를 사용하여 현재 준비하고있는 응용 프로그램의 설치 패키지의 일부로 배포 할 수 있어야합니다.
Windows API를 사용하여 스크린 샷을 프레임 단위로 캡처 한 다음 libraries mentioned here 중 하나를 사용합니다 (예 :). Windows에서 스크린 샷을 캡처하는 방법의 예제를 찾는 것은 쉽지 않은 것 같습니다. 그러나, 나는 정말로 WinAPI 레벨에서 내 손을 더럽힐 수없는 해결책을 원합니다.
OpenGL을 사용하여 오프 스크린 대상에 렌더링 한 다음 라이브러리를 사용하여 비디오를 생성합니다. 나는 이것이 가능한지 모르겠다. 그리고 어쨌든 그것이 가장 고통스런 길은 아닐지 모른다. 특히, 비디오 캡처 여부에 따라 다른 실행 경로를 취하는 실제 렌더링이 마음에 들지 않습니다. 또한 정상적인 비 캡처 모드에서 프레임 속도를 저하시킬 수있는 사항은 피할 수 있습니다.
해결책이 단어의 의미에서 자유 롭다면 그럴 것입니다. 그러나 실제로는 절대적인 요구 사항은 아닙니다. 일반적으로 덜 부 풀릴수록 좋습니다. 반면에,이 질문을 넘어서는 이유로 불행히도 GPL 전용 코드는 링크 할 수 없습니다.
파일 형식과 관련하여 사용자가 코덱을 검색하기를 기대할 수는 없지만 이 표시되면으로 표시됩니다. 기본 수준의 Windows 사용자가 동영상을보기에는 쉽지만 실제로는 형식입니다. 그러나 출력의 압축 품질을 제어 할 수 있다면 좋을 것입니다.
명확히하기 : 은 캠코더와 같은 외부 장치에서 비디오를 캡쳐해야하며 마우스 움직임에 관심이 없습니다. 오디오 관련 요구 사항은 없습니다. 응용 프로그램은 전혀 잡음을 발생시키지 않습니다.
Visual Studio 2008을 사용하여 C++로 작성합니다. GLUT 및 GLUI의 이점을 활용하는 바로 그 응용 프로그램입니다.저는 C++과 라이브러리와 그 종류의 물건들에 대한 견고한 이해를 가지고 있습니다. 그러나 다른 한편으로는 OpenGL은 제게 상당히 새로운 것입니다 : 지금까지, 실제로는 실제로 일을 끝내기 위해 필요한 비트를 배웠습니다.
내가 슈퍼 긴급 솔루션이 필요하므로 서로 다른 두 가지 질문이 여기에 있습니다 :
예 : LGPL은 정상입니다. – Reunanen
glReadPixels() 실제로 첫 번째 질문에 필요한 것, 감사합니다! – Reunanen
@MikeF : 그 링크는 흉상입니다. –