Как уменьшить размер файла видео, созданного с помощью UIImagePickerController?

У меня есть приложение, которое позволяет пользователю записывать видео с помощью UIImagePickerController, а затем загружать его на YouTube. Проблема в том, что видеофайл, который создает UIImagePickerController, ОГРОМНЫЙ, даже если видео длится всего 5 секунд. Например, 5-секундное видео занимает 16 -20 мегабайт. Я хочу сохранить видео в качестве 540 или 720, но я хочу уменьшить размер файла.

Я экспериментировал с AVFoundation и AVAssetExportSession, пытаясь получить меньший размер файла. Я пробовал следующий код:

AVAsset *video = [AVAsset assetWithURL:videoURL];
AVAssetExportSession *exportSession = [AVAssetExportSession exportSessionWithAsset:video presetName:AVAssetExportPresetPassthrough];
exportSession.shouldOptimizeForNetworkUse = YES;
exportSession.outputFileType = AVFileTypeMPEG4;
exportSession.outputURL = [pathToSavedVideosDirectory URLByAppendingPathComponent:@"vid1.mp4"];
[exportSession exportAsynchronouslyWithCompletionHandler:^{
    NSLog(@"done processing video!");
}];

Но это совсем не уменьшило размер файла . Я знаю, что то, что я делаю, возможно, потому что в приложении Apple Photos, когда вы выбираете «поделиться на YouTube» , видеофайл автоматически обрабатывается, чтобы его размер был достаточно мал для загрузки. Я хочу сделать то же самое в своем приложении.

Как я могу это сделать?

56
задан The iOSDev 6 August 2012 в 09:50
поделиться