2012-07-05 11 views
4

현재 아이폰 카메라를 향한 비디오를 캡처 한 다음 비디오 피드에서 실시간 처리를 할 수있는 응용 프로그램이 있습니다. 그러나 내가하려는 것은 백그라운드에서이 프로세스를 실행하고 다른 컨트롤을 화면에 표시하는 것입니다. 예를 들어, 카메라를 실행하고 이미지 피드를 처리하고 싶지만 사용자가 버튼이있는 검은 색 화면을 보길 원합니다. 이 작업을 수행하는 방법에 대한 아이디어가 있습니까?실제 비디오 피드를 표시하지 않고 비디오를 캡처

+0

이미 작업을 수행 했습니까? – OthmanT

+0

예, 이미 비디오 피드를 캡처하고 처리하고 있습니다. 아직 백그라운드로 이동하고 실행 중에 다른 것을 표시하는 방법을 알고 싶습니다. –

+0

사용자가 비디오 캡처 결과를 볼 수없는 경우 카메라가 올바른 방향을 향하고 있다는 것을 사용자가 어떻게 알 수 있습니까? –

답변

16

"백그라운드에서"라는 용어를 사용하면 응용 프로그램이 포 그라운드에서는 카메라 캡처를 실행하지만 실제 비디오 피드는 표시하지 않는 것이 좋습니다. 이것은 가능하지만, 전체 애플리케이션을 백그라운드로 옮기면 카메라에 액세스 할 수 없다는 점을 명확히 밝히고 싶습니다.

몇 가지 방법이 있지만 가장 많은 시간을 투자 한 방법은 AV Foundation을 통해 비디오 (또는 사진) 프레임을 잡는 것입니다. AVCaptureDevice와 AVCaptureSession을 사용하여 비디오 프레임을 잡고 디스크에 저장하거나 사용자 정의 코드를 사용하여 처리하기 위해 인코더로 라우팅 할 수 있습니다. 이 중 어느 것도 카메라 피드를 화면에 표시 할 필요가 없으므로 원하는 인터페이스를 설치하고 화면 표시없이이 비디오 녹화 또는 사진 캡처를 수행 할 수 있습니다.

사용자의 개인 정보를 침해 할 위험이 따르지 않도록 사용자에게 명시해야한다고주의해야합니다. Apple은 (좋은 이유로) 이것을하는 사람들에게 친절하게 반응하지 않습니다.

내 오픈 소스 GPUImage 비디오 및 사진 처리 프레임 워크 내에서이 내용을 많이 캡슐화하므로 GPUImageVideoCamera 클래스의 코드를보고 캡처 입력을 구성하는 방법을 확인할 수 있습니다. 저는 필터와 다른 처리 연산의 적용을 위해 OpenGL ES에 비디오 프레임을 건네지 만, 여러분이 직접 인코딩이나 처리를 원한다면 그 부분을 무시할 수 있습니다.

관련 문제