2011-12-08 2 views
1

AVAssetWriterInputPixelBufferAdaptorでAVAssetWriterを使用して、AVCaptureSessionからビデオをキャプチャしています。私はそのファイルを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分間のみ再生します。黒をカットします。

私はそれがなぜそうしているのか無知です。

私はiOS 5.0、iPhone 4S、30 FPS、1920x1080で録画し、AVFileTypeMPEG4を使用しています。

アイデア?

答えて

2

ライブラリに巨大なファイルを保存するための私のベストプラクティスは、(もともとavcamからアップルによる)次のコードです:

outputFileURLはあなたが保存することができ、一時的なカメラファイルへのURLを(ある
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; 
[library writeVideoAtPathToSavedPhotosAlbum:outputFileURL 
          completionBlock:^(NSURL *assetURL, NSError *error) { 
           if (error) { 
            // writing error occur 
           } 
          }]; 
[library release]; 

アプリケーションの一時フォルダーまたは文書)。 長いビデオ(3GS iOS 4.0)で動作すると思われるgithub:AVCam-CameraReleaseTestのプロジェクトの例をご覧ください。

+0

ありがとう、私はそれを試してみます。現在UISaveVideoAtPathToSavedPhotosAlbumを使用しています –

関連する問題