Как использовать AVFoundation для кадрирования видео

Я пытаюсь использовать AVFoundation для кадрирования записываемых видео. Допустим, я создаю AVCaptureVideoPreviewLayer и устанавливаю размер кадра 300x300.

AVCaptureVideoPreviewLayer *captureVideoPreviewLayer = [AVCaptureVideoPreviewLayer     layerWithSession:session];
captureVideoPreviewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
captureVideoPreviewLayer.delegate = self;
captureVideoPreviewLayer.frame = CGRectMake(0,0, 300, 300);
[previewView.layer addSublayer:captureVideoPreviewLayer];

Пользователь видит видео обрезанным. Я хочу сохранить видео именно таким, каким его видит пользователь. Используя AVCaptureMovieFileOutput, видео явно сохраняется без обрезки. Я рассматривал возможность использования AVCaptureVideoDataOutput для перехвата кадров и их кадрирования сам, но мне было интересно, есть ли более эффективный способ сделать это, возможно, с помощью AVExportSession и использованием AVVideoComposition.

Любые рекомендации будут оценены.

23
задан haider 4 March 2011 в 19:19
поделиться