Видеозахват: кадры, удаленные в ios 6
Я использую фреймворк AVFoundation для кодирования видео с помощью AVCaptureSession.
Видео и аудио успешно записываются и сохраняются в рулон камеры в ios7 (iPAD), но не в ios 6 (iPOD TOUCH)
Следующий код добавляет пример буфера к аудио и видео AVAssetWriterInput.
-(void) captureOutput:(AVCaptureOutput*)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection*)connection
{
CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
CGSize imageSize = CVImageBufferGetEncodedSize(imageBuffer);
NSString *desc = [captureOutput description];
NSLog(@"Desc : %@",desc);
// also in the 'mediaSpecific' dict of the sampleBuffer
// UIImage *image = [self imageFromSampleBuffer:sampleBuffer];
if (CMSampleBufferDataIsReady(sampleBuffer) )
{
if (encoder._writer.status == AVAssetWriterStatusUnknown)
{
CMTime startTime = CMSampleBufferGetPresentationTimeStamp(sampleBuffer);
BOOL didStart = [encoder._writer startWriting];
[encoder._writer startSessionAtSourceTime:startTime];
}
if(captureOutput == outputDevice)
{
//To catch image Buffer
[encoder._writerInput appendSampleBuffer:sampleBuffer];
frameCount++;
}
if(captureOutput == audioOutput)
{
//To catch audio buffer
[encoder.audioWriterInput appendSampleBuffer:sampleBuffer];
}
}
NSLog( @"frame captured at %.fx%.f", imageSize.width, imageSize.height );
}
Я пришел к выводу, что большинство кадров, записанных в iPOD, то есть iOS 6, отбрасываются с помощью следующего кода.
- (void)captureOutput:(AVCaptureOutput *)captureOutput didDropSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection
{
if(captureOutput==outputDevice)
{
CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
CGSize imageSize = CVImageBufferGetEncodedSize(imageBuffer);
NSLog( @"Discarded Frame at %.fx%.f", imageSize.width, imageSize.height );
}
}
Пожалуйста, помогите мне, я застрял здесь и не могу двигаться вперед.
Предложите мне какое-нибудь решение или, по крайней мере, ваши ценные мысли и предположения относительно этой ситуации.
Заранее спасибо.