将视频转换成MP4-程序员宅基地

技术标签: iOS  

- (NSURL *)convert2Mp4:(NSURL *)movUrl {

    NSURL *mp4Url = nil;

    AVURLAsset *avAsset = [AVURLAsset URLAssetWithURL:movUrl options:nil];

    NSArray *compatiblePresets = [AVAssetExportSession exportPresetsCompatibleWithAsset:avAsset];

    

    if ([compatiblePresets containsObject:AVAssetExportPresetHighestQuality]) {

        AVAssetExportSession *exportSession = [[AVAssetExportSession alloc]initWithAsset:avAsset

                                                                              presetName:AVAssetExportPresetHighestQuality];

        mp4Url = [movUrl copy];

        mp4Url = [mp4Url URLByDeletingPathExtension];

        mp4Url = [mp4Url URLByAppendingPathExtension:@"mp4"];

        exportSession.outputURL = mp4Url;

        exportSession.shouldOptimizeForNetworkUse = YES;

        exportSession.outputFileType = AVFileTypeMPEG4;

        dispatch_semaphore_t wait = dispatch_semaphore_create(0l);

        [exportSession exportAsynchronouslyWithCompletionHandler:^{

            switch ([exportSession status]) {

                case AVAssetExportSessionStatusFailed: {

                    NSLog(@"failed, error:%@.", exportSession.error);

                } break;

                case AVAssetExportSessionStatusCancelled: {

                    NSLog(@"cancelled.");

                } break;

                case AVAssetExportSessionStatusCompleted: {

                    NSLog(@"completed.");

                } break;

                default: {

                    NSLog(@"others.");

                } break;

            }

            dispatch_semaphore_signal(wait);

        }];

        long timeout = dispatch_semaphore_wait(wait, DISPATCH_TIME_FOREVER);

        if (timeout) {

            NSLog(@"timeout.");

        }

        if (wait) {

            //dispatch_release(wait);

            wait = nil;

        }

    }

    

    return mp4Url;

}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/BianHuanShiZhe/article/details/42531929

智能推荐

SQLILABS中遇到的问题以及解决方式-程序员宅基地

文章目录在SQLILABS做题中遇到的问题PAGE1PAGE2题目中的问题环境中的问题在SQLILABS做题中遇到的问题PAGE1在刚开始解决问题的时候先通过测试进行闭合语句的考虑,闭合语句首先通过’来测试闭合语句,因为PHP中的SQL语句大多数以’或“或).进行闭合,在输入一个符号后发现报了一个语法的错误,就可以确定该符号存在闭合语句中了,然后在通过注释掉后边的代码来进行正确的语句数据分析。一般可以通过#或- -来注释掉后边的语句,在URL编码中+会被编译成空格,所以一般是- -+,但是在GET中

Unity如何打包Android程序以及如何进行签名_unity 安卓打包名字安全-程序员宅基地

Unity打包应用程序以及生成签名_unity 安卓打包名字安全

Dual Manifold Adversarial Robustness: Defense against Lp and non-Lp Adversarial Attacks_dual manifold adversarial robustness: defense aga_piggy_pig的博客-程序员宅基地

论文阅读:Dual Manifold Adversarial Robustness: Defense against Lp and non-Lp Adversarial AttacksAbstract对抗性训练是一种常用的防御策略,用于对抗有界 Lp的攻击威胁模型。 然而,它经常降低模型在正常图像上的性能,更重要的是,防御不能很好地推广到新的攻击。鉴于深度生成模型(如 GANs 和 VAEs)在描述(近似)图像的底层流形方面的成功,我们研究是否可以通过利用底层流形信 息来弥补上述对抗性训练的不足。 为_dual manifold adversarial robustness: defense against lp and non-lp adversa

疯狂iOS讲义(下)之多线程-程序员宅基地

疯狂iOS讲义下:第七章:多线程本章要点:多线程知识和多线程优势使用NSThread创建和启动线程线程的状态终止子线程线程睡眠改变线程优先级iOS应用开发中线程安全问题使用@synchronized实现同步释放同步监视器的锁定同步锁(NSLock)使用NSConditio_疯狂ios讲义

Windows和Linux系统下查看Java进程及线程的相关命令_怎么确认线程对应的java进程是哪个-程序员宅基地

Windows系统查看运行的Java进程及杀死进程的相关命令tasklist | findstr java //查看taskkill /F /PID 11111 //杀死_怎么确认线程对应的java进程是哪个

【Hadoop】超详细集群搭建,本地运行模式,完全分布式运行模式-程序员宅基地

第三章 Hadoop运行模式Hadoop运行模式包括:本地模式、伪分布式模式以及完全分布式模式。Hadoop官方网站:http://hadoop.apache.org/3.1 本地运行模式(了解)1)创建在hadoop-3.1.3文件下面创建一个wcinput文件夹[qinjl@hadoop102 hadoop-3.1.3]$ mkdir wcinput2)在wcinput文件下创建一个word.txt文件[qinjl@hadoop102 hadoop-3.1.3]$ cd wcin

随便推点

【翻译】Computer Vision for Autonomous Vehicles:Problems,Datasets and State-of-Art_wetart hd free-程序员宅基地

自动驾驶计算机视觉研究综述:难题、数据集与前沿成果摘要:近年来计算机视觉、机器学习和自动驾驶等人工智能相关领域发生了惊人的进展。然而,和每一个飞速发展的领域一样,人工智能领域也出现了业内人员难以跟上行业节奏或者业外人员难入行的问题。虽然已经有人发表了几篇关于这方面的专题调查论文,但是到目前为止,还没有关于自动驾驶计算机视觉(computer vision for autonom_wetart hd free

mysql.sock 链接不上?-程序员宅基地

为什么80%的码农都做不了架构师?>>> ..._mysql -v 报错cant find sock

Hyperic HQ产品功能列表-程序员宅基地

Hyperic HQ产品功能列表 注:黄色为个人猜测有待共同探讨;红色为功能或作用未知。 一级菜单 二级菜单 三级菜单 功能描述 备注 首页/仪表盘 搜索资源 搜索平台 按照名字搜索当前已经监控的平台 平台:agent监控的主机(详见管理->监测配置) 搜索服务器 按照名字搜索当前已经监控的服务器 服务器:agent监控的服务器(详见管理->监测配置) 搜索服务 ...

禾赛科技李一帆:别让无人车的未来被一个小传感器憋死-程序员宅基地

激光雷达是无人车的“眼睛”,而自动驾驶行业的进化史就是半部激光雷达的产品演变史。 “听起来不可思议却真正存在的是,无人车这个万亿行业,全世界几百家公司,竟然会卡在一个小小的传感器上,而且一卡就是好几年,所有人都被逼疯了。”——禾赛科技CEO李一帆禾赛科技于4月10号推出最新激光雷达Pandar 40,混合固态40线...

硅谷“封城”前夜的L4级别无人车试乘实况,及其背后创新技术的深度剖析-程序员宅基地

硅谷“封城”前夜,让无人车途径抢购中的超市,会是怎样的体验?3 月 21 日,这家自动驾驶公司的无人车,就经历了这样独一无二的体验。最初,这个计划是“在..._硅谷关于技术创新的评价标准

在页面表格中动态增加一行单元格-程序员宅基地

function hideList(obj_id,img){ var obj=document.getElementById(obj_id); if(obj.style.display=="none") { obj.style.display=""; if(img!=null) img.src=img.src.replace...