NSString* nsFilePath = self.movieFilePath; NSFileManager *fileManager = [NSFileManager defaultManager]; if ([fileManager fileExistsAtPath:nsFilePath]) { // 保存到临时文件夹下面 NSString *dirCompression = [NSString stringWithFormat:@"%@/Caches/%@", NSTemporaryDirectory(), @"compression"]; BOOL isDir = NO; BOOL isExist = [fileManager fileExistsAtPath:dirCompression isDirectory:&isDir]; if (!(isExist && isDir)) { [fileManager createDirectoryAtPath:dirCompression withIntermediateDirectories:YES attributes:nil error:nil]; } NSString *nsFileName = [nsFilePath lastPathComponent]; NSString *nsCompressFilePath = [NSString stringWithFormat:@"%@/%@", dirCompression, nsFileName]; AVURLAsset *assert = [AVURLAsset URLAssetWithURL:[NSURL fileURLWithPath:nsFilePath] options:nil]; AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:assert presetName:AVAssetExportPresetMediumQuality]; exportSession.shouldOptimizeForNetworkUse = YES; exportSession.outputURL = [NSURL fileURLWithPath:nsCompressFilePath]; exportSession.outputFileType = AVFileTypeMPEG4; __block NSData *data = nil; [exportSession exportAsynchronouslyWithCompletionHandler:^{ int exportStatus = exportSession.status; switch (exportStatus) { case AVAssetExportSessionStatusFailed: { NSLog(@"AVAssetExportSessionStatusFailed fail"); data = [NSData dataWithContentsOfFile:nsFilePath]; } break; case AVAssetExportSessionStatusCompleted: { NSLog(@"AVAssetExportSessionStatusFailed success"); data = [NSData dataWithContentsOfFile:nsCompressFilePath]; } break; } // 其他操作 [fileManager removeItemAtPath:nsCompressFilePath error:nil]; }]; }
视频压缩方法
最新推荐文章于 2024-06-13 22:07:17 发布