2014-02-17 4 views
0

Я записываю видео в iOS, используя AVCaptureSession.Как получить NSData от AVCaptureSession?

-(id)init 
{ 
    if ((self = [super init])) 
    { 
    [self setCaptureSession:[[AVCaptureSession alloc] init]]; 
    } 
    return self; 
} 


-(void)addVideoPreviewLayer 
{ 
    [self setPreviewLayer:[[[AVCaptureVideoPreviewLayer alloc] initWithSession:[self captureSession]] autorelease]]; 
    [[self previewLayer] setVideoGravity:AVLayerVideoGravityResizeAspectFill]; 
} 

Как я могу создать NSData записанного видео одновременно с записью?

+0

проверить это [учебник ссылка] (http://www.ios-developer.net/iphone-ipad -programmer/разработка/камера/запись-видео-с-avcapturesession-2) – Pawan

ответ

0

Доступ к закодированным фреймам? Вы не можете сделать это с помощью SDK iOS. Вы можете записать бит в файл, получить доступ к закодированным фреймам в файле, записать новый файл, получить доступ еще ... если вам это нужно.

Однако, если вы пытаетесь получить необработанные фреймы, а также писать, это довольно просто. Вместо захвата вывода в файл используйте -captureOutput: didOutputSampleBuffer: fromConnection: на вашем AVCaptureAudioDataOutputSampleBufferDelegate. Просто убедитесь, что также направляет данные на что-то, что кодирует/записывает буферы, иначе вы потеряете аспект «... одновременно с записью».

Это не NSData, но CMSampleBufferRef, который в зависимости от того, является ли буфер аудио или видео, может быть преобразован в NSData различными способами.

Смежные вопросы