2012-11-19 1 views
1

내 응용 프로그램에서 나는 AVAssetWriter, AVAssetWriterInput 및 AVAssetWriterInputPixelBufferAdaptor를 사용하여 정지 이미지의 배열에서 무비 파일을 만듭니다 (이를 수행하는 방법을 설명하는 스레드가 많이 있습니다). AVAssetWriterInput 출력 설정 AVVideoWidthKey 및 AVVideoHeightKey로 사용자가 비디오 해상도 (1080p, 720p, 540p 또는 480p)를 선택하게하고 -pixelBufferFromCGImage : 메서드에도 사용합니다.아이폰의 이미지 배열에서 비디오 - 어느 해상도 작업 및 찾아내는 방법

비디오를 만드는 것은 내 iPhone 5의 모든 해상도에서 잘 작동합니다. 그러나 iPhone 3GS에서는 480p보다 높은 모든 해상도에서 비디오 출력이 없지만 1080p를 해상도로 사용하는 경우를 제외하고는 오류가 발생하지 않습니다 (이 경우, -pixelBufferFromCGImage : 메서드는 NULL을 반환합니다. 3G가 480p보다 높은 해상도로 동영상을 내보낼 수 없을뿐만 아니라 iPhone 4가 1080p 비디오를 내보낼 수 없을 수도 있습니다.

그러나 내 질문은 : 어떤 비디오 해상도를 장치가 쓸 수 있는지 확인하고 이러한 해상도를 사용자에게 제공하는 방법은 무엇입니까?

답변

1

AVFoundation을 파고 직접 해결책을 찾았습니다. 방금 전에 AVAsetExportSessions의 allExportPresets 속성을 확인해야만했습니다. 미리 설정을 사용하지 않더라도 자체 옵션을 직접 설정하지 않아도됩니다.

if([[AVAssetExportSession allExportPresets] containsObject:AVAssetExportPreset640x480]){ 
    NSLog(@"480p"); 
} 
if([[AVAssetExportSession allExportPresets] containsObject:AVAssetExportPreset960x540]){ 
    NSLog(@"540p"); 
} 
if([[AVAssetExportSession allExportPresets] containsObject:AVAssetExportPreset1280x720]){ 
    NSLog(@"720p"); 
} 
if([[AVAssetExportSession allExportPresets] containsObject:AVAssetExportPreset1920x1080]){ 
    NSLog(@"1080p"); 
} 
:

는이 작업을 수행하려면이 코드를 사용

관련 문제