2011-12-08 2 views
1

AVCaptureSession에서 비디오를 캡처하기 위해 AVAssetWriterInputPixelBufferAdaptor와 함께 AVAssetWriter를 사용하고 있습니다. App Caches 디렉토리에 파일을 쓰고 있습니다. 다 끝나면 비디오를 카메라 롤에 저장합니다.AVFoundation : ~ 30 분 후에 비디오 캡처 실패

여기에 문제가 있습니다. 10 분에서 20 분 사이의 짧은 캡처 세션에는 문제가 없습니다. 약 30 분 후, 나는 [assetWriter finishWriting] 호출 할 때이 오류가 발생합니다 :

Error Domain=AVFoundationErrorDomain Code=-11800 "The operation could not be completed" 
UserInfo=0x1a1d30 {NSLocalizedFailureReason=An unknown error occurred (268451843), 
NSUnderlyingError=0x1936e0 "The operation couldn’t be completed. (OSStatus error 
268451843.)", NSLocalizedDescription=The operation could not be completed} 

또 다른 흥미로운 점은 실제로는 카메라 롤에 동영상을 저장 않지만, 특정 시점 이후 비디오가 손상되었을 것입니다. VLC는 비디오 길이를 1 시간으로 표시하지만 처음 30 분만 재생합니다. 그 다음 검정색을 자른다.

나는 그 일을 왜하는지 모릅니다.

아이폰 OS 5.0, 아이폰 4S, 30 FPS, 1920x1080, AVFileTypeMPEG4로 녹화 중입니다.

아이디어가 있으십니까?

답변

2

라이브러리에 큰 파일을 저장에 대한 나의 가장 좋은 방법은 (originaly avcam에서 애플) 다음 코드 :

outputFileURL는 당신이 저장할 수있는 임시 카메라 파일에 대한 URL을 (이다
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; 
[library writeVideoAtPathToSavedPhotosAlbum:outputFileURL 
          completionBlock:^(NSURL *assetURL, NSError *error) { 
           if (error) { 
            // writing error occur 
           } 
          }]; 
[library release]; 

응용 프로그램 임시 폴더 또는 문서). github에 넣은 예제 프로젝트를 환영합니다. 긴 동영상 (3GS iOS 4.0)

+0

에서 작동하는 것으로 보이는 덕분에, 시도해 보겠습니다. 현재 UISaveVideoAtPathToSavedPhotos 앨범을 사용 중입니다. –

관련 문제