目的:AVCaptureMovieFileOutput
ビデオを .mov ファイルに記録するために使用します。ビデオの録画中に、S3 にアップロードしたいと考えています。アップロード部分は、マルチパート アップロードで実現可能である必要があります。(Mac OS X +10.8 アプリ)
問題AVCaptureMovieFileOutput
: .mov ファイルが書き込まれ、サイズが大きくなっているときに、.mov ファイルからチャンクで読み取るにはどうすればよいですか?
私がこれまでにやったこと:
// session = AVCaptureSession with audio and video inputs
fileOutput = [[AVCaptureSession alloc] init];
[session addOutput:fileOutput]
[session startRunning]
[fileOutput startRecordingToOutputFileURL: fileUrl recordingDelegate:self]
// In async dispatch queue
inputStream = [NSInputStream inputStreamWithFileAtPath:fileUrl]
// schedule in run loop, open and run
この時点stream:handleEvent:
で、デリゲート オブジェクトでメッセージの受信を開始しますNSStreamEventHasBytesAvailable
。しかし、数秒後にメッセージの受信が停止します (合計バイト数が 250.000 ~ 300.000 バイト (0.2MB) になった後)。これは、.mov ファイルのサイズが 10MB を超える場合でも発生します。
質問:
NSInputStream
デリゲートがストリーム イベントを受信し続けないのはなぜですか?最初に利用できるデータは信頼できないですか?
これは全体的に実行可能なアプローチですか?または、私が望むものを達成する別の方法はありますか?
ありがとう!