2011-08-25 6 views
0

AVFoundation Programming Guide 상태 :iOS에서 비디오를 캡처 할 때 최적의 픽셀 포맷을 묻습니다. 비디오 캡처 바람직한 픽셀 형식임을

    아이폰 4
  • : kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange 또는 kCVPixelFormatType_32BGRA
  • 3G 아이폰 : kCVPixelFormatType_422YpCbCr8 또는

kCVPixelFormatType_32BGRA (추천 할 [없다 아직 iPhone 5 또는 카메라가 장착 된 iPad 기기의 경우)

그러나 도움말은 제공되지 않습니다. 내가 어떻게 돌아가서 앱이 현재 어떤 장치를 실행 중인지 결정해야합니다. 선호하는 픽셀 형식이 미래에 내 앱 알 수없는 장치와 다를 경우 어떻게해야합니까?

어떤 장치에 대해 선호되는 YpCbCr 픽셀 형식을 결정할 올바른 올바른 미래의 증거는 무엇입니까?

답변

0

비디오 설정을 nil로 설정하면 AVFoundation이 가장 효율적인 형식을 사용한다고 생각합니다. 예를 대신 수행하기위한

NSDictionary *videoSettings = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange] forKey:(id)kCVPixelBufferPixelFormatTypeKey]; 
videoOutput.videoSettings = videoSettings; 

이 대신

videoOutput.videoSettings = nil; 

이 또한 전혀 설정하지 않는 시도 할 수 마십시오. 과거에 특정 형식으로 이미지를 캡처 할 필요가 없으면이 값을 0으로 설정했습니다.

편집

AVFoundation 사용 선택한 포맷을 취득합니다.

CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(source); 
CGColorSpaceRef cref = CVImageBufferGetColorSpace(imageBuffer); 
+0

예. 가장 효율적인 형식을 제공합니다. 하지만 YpCbCr 픽셀 형식 인 가장 효율적인 형식이 필요합니다. 현재의 구현은 iPhone 3GS와 iPhone 4 모두에서이를 얻을 수 있지만 미래의 증거입니까? 공개 API에 대한 문서는 다음과 같습니다. – PeyloW

+0

가장 효율적인 형식이 무엇인지 확인해야하는 경우 비디오 설정을 nil로 설정 한 다음 CMSampledBufferRef의 형식을 확인할 수 있습니다. YpCbCR 형식이 가장 효율적이라는 것을 알아야 할 때 이것이 반드시 도움이되지는 않는다는 것을 알고 있습니다. –