视频压缩iOS
来源:互联网 发布:pl10空空导弹 知乎 编辑:程序博客网 时间:2024/05/17 22:42
注意:需要判断之前的文件是否存在 ,如果存在则删除文件[fileManager createDirectoryAtPath:createPath withIntermediateDirectories:YES attributes:nil error:nil];- (void)convertVideoWithModel{ [self creatSandBoxFilePathIfNoExist]; //保存至沙盒路径 NSString *pathDocuments = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; NSString *videoPath = [NSString stringWithFormat:@"%@/Video", pathDocuments]; //转码配置 AVURLAsset *asset = [AVURLAsset URLAssetWithURL:self.videoURL options:nil]; //AVAssetExportPresetMediumQuality可以更改,是枚举类型,官方有提供,更改该值可以改变视频的压缩比例 AVAssetExportSession *exportSession= [[AVAssetExportSession alloc] initWithAsset:asset presetName:AVAssetExportPresetMediumQuality]; exportSession.shouldOptimizeForNetworkUse = YES; exportSession.outputURL = [NSURL fileURLWithPath:[videoPath stringByAppendingPathComponent:@"fourmVideo.mp4"]]; //AVFileTypeMPEG4 文件输出类型,可以更改,是枚举类型,官方有提供,更改该值也可以改变视频的压缩比例 exportSession.outputFileType = AVFileTypeQuickTimeMovie; [exportSession exportAsynchronouslyWithCompletionHandler:^{ int exportStatus = exportSession.status; NSLog(@"%d",exportStatus); switch (exportStatus) { case AVAssetExportSessionStatusFailed: { // log error to text view NSError *exportError = exportSession.error; NSLog (@"AVAssetExportSessionStatusFailed: %@", exportError); NSData *videoData = [NSData dataWithContentsOfURL:self.videoURL]; self.loadVideoData(self.videoURL,videoData); break; } case AVAssetExportSessionStatusCompleted: { NSLog(@"视频转码成功"); NSData *videoData = [NSData dataWithContentsOfFile:[videoPath stringByAppendingPathComponent:@"fourmVideo.mp4"]]; self.loadVideoData(_videoURL,videoData); } } }]; }- (void)creatSandBoxFilePathIfNoExist{ //沙盒路径 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentDirectory = [paths objectAtIndex:0]; NSLog(@"databse--->%@",documentDirectory); NSFileManager *fileManager = [[NSFileManager alloc] init]; NSString *pathDocuments = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; //创建目录 NSString *createPath = [NSString stringWithFormat:@"%@/Video", pathDocuments]; // 判断文件夹是否存在,如果不存在,则创建 if ([[NSFileManager defaultManager] fileExistsAtPath:createPath]) { NSError *error; if ([[NSFileManager defaultManager] removeItemAtPath:createPath error:&error] == NO) { NSLog(@"removeitematpath %@ error :%@", createPath, error); } } [fileManager createDirectoryAtPath:createPath withIntermediateDirectories:YES attributes:nil error:nil];}
阅读全文
0 0
- IOS视频压缩
- IOS视频压缩
- ios视频压缩
- IOS视频压缩
- iOS 视频压缩
- IOS视频压缩
- IOS视频压缩
- [iOS] 视频压缩
- ios-视频压缩
- iOS 视频压缩
- 视频压缩iOS
- iOS 之视频压缩
- IOS视频压缩功能实现
- 视频压缩
- 视频压缩
- ios ffmpeg 实时视频压缩(主要是H264)
- iOS自定义拍摄小视频压缩上传
- iOS 视频压缩、音视频混合、音频混合
- DBMS_METADATA.GET_DDL 获取数据库里面的ddl语句
- unity 在 iOS 层级
- mysq截取字符串的办法
- 【lct模板】bzoj2631: tree
- 设置防火墙firewall
- 视频压缩iOS
- db.properties配置
- 理解HTTPS
- 队列的实现与基本操作
- SSD深度技术解析---FTL层算法对性能的影响
- 北京云栖大会MaxCompute又出大招,Python UDF抢先体验!
- Nginx+Tomcat的配合使用
- Qt Quick实现九宫格划指锁屏视图
- 快捷修改windows的hosts文件,删除.svn