废话不多说,直接上转换代码

+ (NSURL *)jjMovConvert2Mp4:(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:avAssetpresetName:AVAssetExportPresetHighestQuality];NSString *mp4Path = [NSString stringWithFormat:@"%@/%d%d.mp4", [self dataPath], (int)[[NSDate date] timeIntervalSince1970], arc4random() % 100000];mp4Url = [NSURL fileURLWithPath:mp4Path];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;
}
+ (NSString*)dataPath
{NSString *dataPath = [NSString stringWithFormat:@"%@/Library/appdata/chatbuffer", NSHomeDirectory()];NSFileManager *fm = [NSFileManager defaultManager];if(![fm fileExistsAtPath:dataPath]){[fm createDirectoryAtPath:dataPathwithIntermediateDirectories:YESattributes:nilerror:nil];}return dataPath;
}

比如你是通过UIImagePickerController选择的视频文件,
在代理方法回调中:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<UIImagePickerControllerInfoKey,id> *)info {NSURL *url = info[@"UIImagePickerControllerMediaURL"];//调用MOV转换成Mp4NSString *filePath = [[NSURL  jjMovConvert2Mp4:url] absoluteString];NSData *data =[NSData dataWithContentsOfURL:[NSURL URLWithString:filePath]];NSString *storageFilePath = [self randomFilePathInTime:[filePath componentsSeparatedByString:@"."].lastObject];BOOL isStorageState = [data writeToFile:storageFilePath atomically:YES];if (isStorageState) {success(storageFilePath,[filePath componentsSeparatedByString:@"/"].lastObject,data);}
}

iOS MOV转MP4相关推荐

  1. Mac没有winnt格式_在Mac上轻松将MOV转换为MP4的四大免费方法

    MOV由Apple Computers开发的一种视频容器格式,主要由Apple QuickTime用于存储视频文件.MOV文件是未压缩的,大型的,并且通常由Mac用户使用.虽然MOV文件与Mac OS ...

  2. 将MOV转换为MP4的几种最佳方法

    通常,MOV(QuickTime 文件格式)与大多数媒体播放器兼容,但有时您可能会想到某些 MOV 文件仍然无法在 Windows 或 Mac 电脑上播放.该问题可以通过将 MOV 文件转换为普通 M ...

  3. MOV及MP4文件格式中几个重要的Table

    MP4,全称是MPEG4 Part 14,是一种使用MPEG-4的多媒体文件格式,扩展名为.mp4. MOV,是QuickTime影片格式,它是Apple公司开发的一种音频.视频文件格式,用于存储常用 ...

  4. 怎么修复松下相机死机断电MDT文件为MOV或MP4视频

    松下Panasonic相机Lumix如GH系列,G系列等录制的视频格式化有MOV或MP4,1080P, 甚至4K等分辨率,如果在摄像过程当中遇到不正常的问题,如:相机死机,断电,电池没电等,录制过程中 ...

  5. mov 和 mp4 格式的区别

    MOV 格式是 QuickTime 的一种容器,不光包括视频音频,还可以包含Java,脚本,Skin,图片等,是一种很复杂的封装格式.(以前苹果网站上还有专门用 MOV 做的电影主题网站,还可以把游戏 ...

  6. mov转换为mp4格式怎么转,多方法教程

    mov转换为mp4格式怎么转?如果你连mov都不了解,那就更别说将其进行转换了.其实使用过苹果手机的人应该接触的很多,但是我们时常不关注这个视频格式.MOV是一种音频和视频文件格式,它在苹果手机上使用 ...

  7. 怎么修复佳能相机断电死机DAT文件为MOV或MP4视频

    佳能相机,相机型号如:600D, 6D, 5D2, 5D3, 5DS, 5D4, 760D, 5D4, 6D2等EOS单反相机系列,正常录制的视频可能是MOV或者MP4, 如果相机在拍摄中遇到异常情况 ...

  8. php mov格式,mov和mp4区别是什么

    mov和mp4区别:1.MOV格式是QuickTime的一种容器,不光包括视频音频,还可以包含Java,脚本,Skin,图片等,是一种很复杂的封装格式:2.MP4是把MOV格式中音频视频部分提取出来标 ...

  9. 大疆DJI无人机GoPro运动相机MOV或MP4视频文件恢复后花屏解决技术思路方法

    从事数据恢复的工作人员.航拍录像从业人员.摄影爱好者等有时会遇到视频文件损坏问题,下面分析的就是常见的情况:大疆DJI无人机GoPro运动相机MOV或MP4视频文件丢失之后(删除.病毒感染或者格式化等 ...

  10. mov转换mp4的最简单方法

    看到近期小伙伴咨询mov转换成MP4最简单方法的问题,所以今天特地要给大家推荐一款叫做优速视频处理大师的软件工具,这个软件的主要优势就是所有的功能操作都非常的简单,而且所有的功能都是围绕着视频文件的处 ...

最新文章

  1. 嵌入式linux基础知识累积
  2. JDK5.0新特性系列---11.4线程 Condition
  3. 以Settings.APPLICATION_DEVELOPMENT_SETTINGS打开开发者面板出错总结
  4. uc通讯不成功php版本过高,Ucenter通信失败排查方法
  5. uint32_t 是常数吗_UINT_MAX常数,带C ++示例
  6. 【VBS】一款无聊的 Visual Basic Script 表白程序
  7. 知道 | 同学,你都了解关系型数据库,确定不了解一下这种数据库吗?
  8. 机器学习笔记(6):多类逻辑回归-使用gluon
  9. 马尔可夫链、隐马尔科夫模型、贝叶斯网络、因子图
  10. 【菜gou的CS61A学习笔记10 Abstraction Trees】
  11. 信阳市少年计算机学校,信阳市胜利路学校开展少年之声小记者选拔活动
  12. 用c语言实现1+2+3+...+n求和
  13. css 毛玻璃_前端开发,CSS的常用套路附demo的效果实现与源码)
  14. 最近运气不好,愿乌云渐渐散去
  15. ETL 与 ELT的关键区别
  16. “组件协作”模式----策略模式(Strategy Pattern)
  17. 凡客和PPG都是半斤八两
  18. Tlsr8258开发-小问题汇总
  19. Red Hat Enterprise Linux 4 安装yum(i386)
  20. UNCTF2020 wp

热门文章

  1. GHOSTXP_SP3电脑公司装机特别版 V30.0[NTFS]
  2. Eclipse项目上传码云
  3. java 刽子手图像代码,刽子手游戏代码
  4. Mac pro 安装ubuntu系统
  5. 实验题集4:函数R6-1 面积计算器(函数重载) (10 分)
  6. css ul1,CSS 列表样式 ul
  7. 函数信号发生器的功能介绍
  8. 关于矩阵相乘顺序的理解(跟旋转没关)
  9. [通讯方式] 串口通信
  10. excel文件转换成PDF格式