前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >压缩视频

压缩视频

作者头像
freesan44
发布2020-09-21 09:38:52
1.7K0
发布2020-09-21 09:38:52
举报
文章被收录于专栏:freesan44

问题

对视频进行压缩并输出

解决方案

代码语言:javascript
复制
/// 压缩视频文件
-(void)videoCompressionWithUrl:(NSURL *)url
                        finish:(void(^)(NSURL * fileUrl))finishCallback
{
    
    NSString *docuPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
    
#ifdef DEBUG
    NSData * orgData = [NSData dataWithContentsOfURL:url];
    NSLog(@"原视频长度:%d MB",orgData.length/1024/1024);
#endif
    
    NSString *destFilePath = [docuPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.MOV",[[[NSUUID UUID]UUIDString]substringToIndex:8]]];
    NSURL *destUrl = [NSURL fileURLWithPath:destFilePath];
    
    //将视频文件copy到沙盒目录中
    NSFileManager *manager = [NSFileManager defaultManager];
    NSError *error = nil;
    [manager copyItemAtURL:url toURL:destUrl error:&error];
    
    //加载视频资源
    AVAsset *asset = [AVAsset assetWithURL:destUrl];
    //创建视频资源导出会话
    AVAssetExportSession *session = [[AVAssetExportSession alloc] initWithAsset:asset presetName:AVAssetExportPresetMediumQuality];
    //创建导出视频的URL
    NSString *resultPath = [docuPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.MOV",[[[NSUUID UUID]UUIDString]substringToIndex:8]]];
    session.outputURL = [NSURL fileURLWithPath:resultPath];
    //必须配置输出属性
    session.outputFileType = @"com.apple.quicktime-movie";
    //导出视频
    [session exportAsynchronouslyWithCompletionHandler:^{
       
#ifdef DEBUG
        NSData * resultData = [NSData dataWithContentsOfURL:[NSURL URLWithString:resultPath]];
        NSLog(@"压缩后的视频长度:%d MB",resultData.length/1024/1024);
#endif
         NSLog(@"压缩后的视频地址为 %@",resultPath);
        if (finishCallback) {
            NSURL * resultPathUrl = [NSURL URLWithString:resultPath];
            finishCallback(resultPathUrl);
        }
         //删除沙盒中的高质量视频文件
        [manager removeItemAtPath:destFilePath error:nil];
    }];
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题
  • 解决方案
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档