2011-03-08 4 views
6

비디오를 처리/필터링하고 기록하는 iPhone 앱을 개발하려고합니다.iPhone의 쉐이더를 통해 비디오를 처리하면서 비디오 캡처하기

필자에게 필요한 부분이 있고이를 결합하려고하는 두 개의 샘플 앱이 있습니다.

  1. AVCamDemo from the WWDC10 sample code package (애플 개발자 ID 필수)
    이 캡처/비디오 녹화 다루고있다.

  2. 브래드 라슨의 ColorTracking 샘플 응용 프로그램은 두 가지를 결합 할 때의 OpenGL ES가

내가 박히 사용하여 비디오의 실시간 처리와 here
이 거래를 참조.

는 내가 뭘하려고 한 것은 ((의 -2-로)는 OpenGL ES를 통해 비디오 프레임을 필터링하고, 동시에 어떻게 든 처리 된 비디오를 기록 할 AVCaptureMovieFileOutput를 사용/처리하기 위해 AVCaptureVideoOutputAVCaptureVideoDataOutputSampleBufferProtocol을 사용하는 것입니다 -1- 에서처럼).

이 방법이 가능합니까? 그렇다면 AVSession 내의 연결을 어떻게 설정해야합니까?

AVCaptureMovieFileOutput을 사용하지 않고 AVCaptureVideoDataOutputSampleBufferProtocol을 사용하여 비디오를 처리/필터링 한 다음 개별 프레임을 다시 영화로 재결합해야합니까?

이 작업을 수행하기위한 최선의 방법에 대한 제안은 많은 도움이됩니다.

+2

AVCaptureVideoDataOutputSampleBufferProtocol을 사용하여 처리 된 프레임을 작성하려면 AVAssetWriter와 픽셀 버퍼 어댑터를 사용해야합니다. 또한 (내가 생각하는) BGRA에서 캡처 있는지 확인하십시오. 이렇게하면 OpenGL로 전달하기 위해 CMSampleBufferRef를 변환하는 것이 간단 해집니다. 나는이 변환을 사소한 것으로 만드는 API에서 뭔가를 본 것으로 믿습니다. 나는 CVImageBufferRef를 반환하고 CVPixelBufferRef로 취급 될 수있는 CMSampleBufferGetImageBuffer (..)를 사용한다. –

+0

Thanks @ 스티브! AVAssetWriter는 확실히가는 길입니다. 귀하의 의견을 토대로 다른 SA 스레드에서 퍼즐의 몇 가지 다른 비트를 찾을 수있었습니다. 내 솔루션이 작동하면 여기에 게시됩니다. – adriaan

+0

당신은 AVAssetWriter API를 사용할 수 있습니다. 어쩌면이 [링크] (http://stackoverflow.com/questions/4944083/can-use-avcapturevideodataoutput-and-avcapturemoviefileoutput-at-the-same-time)가 유용 할 것입니다. – shihongzhi

답변

관련 문제