我有一个应用程序,允许用户用UIImagePickerController
美元录制视频,然后上传到YouTube.问题是UIImagePickerController
创建的视频文件很大,即使视频只有5秒长.例如,5秒长的视频是16-20兆字节.我想保持540或720的视频质量,但我想减少文件大小.
我一直在try 使用AVFoundation和AVAssetExportSession
,以获得更小的文件大小.我try 了以下代码:
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!");
}];
但是this hasn't reduced the file size at all.我知道我在做什么是可能的,因为在苹果的Photos应用程序中,当你 Select "share on YouTube"时,会自动处理视频文件,使其足够小,可以上传.我想在我的应用程序中做同样的事情.
我怎样才能做到这一点?