iOS视频转码 mov 转 mp4
来源:互联网 发布:mysql begin end 用法 编辑:程序博客网 时间:2024/06/06 08:40
利用AVFoundation框架实现视频格式转码,下面以mov转mp4为例:<pre>/**mov转mp4格式*/-(void)convertMovSourceURL:(NSURL *)sourceUrl{AVURLAsset *avAsset = [AVURLAsset URLAssetWithURL:sourceUrl options:nil];NSArray *compatiblePresets=[AVAssetExportSession exportPresetsCompatibleWithAsset:avAsset];//NSLog(@"%@",compatiblePresets);if ([compatiblePresets containsObject:AVAssetExportPresetHighestQuality]) {AVAssetExportSession *exportSession=[[AVAssetExportSession alloc] initWithAsset:avAsset presetName:AVAssetExportPresetHighestQuality];NSDateFormatter *formater=[[NSDateFormatter alloc] init];//用时间给文件全名[formater setDateFormat:@"yyyyMMddHHmmss"];NSString *mp4Path=[[NSUserDefaults standardUserDefaults] objectForKey:@"kMP4FilePath"];NSString *resultPath=[NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES)[0] stringByAppendingFormat:@"/output-%@.mp4", [formater stringFromDate:[NSDate date]]];
exportSession.outputURL=[NSURL fileURLWithPath:resultPath]; exportSession.outputFileType = AVFileTypeMPEG4; exportSession.shouldOptimizeForNetworkUse = YES; [exportSession exportAsynchronouslyWithCompletionHandler:^(void){ switch (exportSession.status) { case AVAssetExportSessionStatusCancelled: NSLog(@"AVAssetExportSessionStatusCancelled"); break; case AVAssetExportSessionStatusUnknown: NSLog(@"AVAssetExportSessionStatusUnknown"); break; case AVAssetExportSessionStatusWaiting: NSLog(@"AVAssetExportSessionStatusWaiting"); break; case AVAssetExportSessionStatusExporting: NSLog(@"AVAssetExportSessionStatusExporting"); break; case AVAssetExportSessionStatusCompleted: { //NSLog(@"resultPath = %@",resultPath); UIAlertController \*alert=[UIAlertController alertControllerWithTitle:@"提示" message:@"转换完成" preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction \*confirm=[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:nil]; [alert addAction:confirm]; [[UIApplication sharedApplication].keyWindow.rootViewController presentViewController:alert animated:YES completion:nil]; BOOL success=[[NSFileManager defaultManager]moveItemAtPath:resultPath toPath:[mp4Path stringByAppendingPathComponent:@"1.mp4"] error:nil]; if(success) { NSArray \*files=[[NSFileManager defaultManager] contentsOfDirectoryAtPath:mp4Path error:nil]; NSLog(@"%@",files); NSLog(@"success"); } break; } case AVAssetExportSessionStatusFailed: NSLog(@"AVAssetExportSessionStatusFailed"); break; } }];}
}</pre>
用法如下:
<pre>
@interface ViewController ()<UIImagePickerControllerDelegate,UINavigationControllerDelegate>@end
@implementation ViewController
(void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor=[UIColor whiteColor];
self.navigationController.navigationBar.barStyle=UIBarStyleBlack;
self.title=@"视屏格式转换";UIButton *btn=[[UIButton alloc]initWithFrame:CGRectMake(0, 0, 100, 50)];
[btn setTitle:@"转换" forState:UIControlStateNormal];
btn.backgroundColor=[UIColor orangeColor];
[self.view addSubview:btn];
[btn addTarget:self action:@selector(convert:) forControlEvents:UIControlEventTouchUpInside];
btn.center=self.view.center;
}pragma mark - UIImagePicker
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
NSURL *videoURL=[info objectForKey:@"UIImagePickerControllerMediaURL"];
//[ProgressHUD show:@"转换中..."];
[self convertMovSourceURL:videoURL];
[picker dismissViewControllerAnimated:YES completion:nil];
}
-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[picker dismissViewControllerAnimated:YES completion:nil];
}
</pre>
作者:CGPointZero
链接:http://www.jianshu.com/p/25c218019fa0
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
- iOS视频转码 mov 转 mp4
- iOS开发-进阶:MOV格式视频转MP4格式
- MOV转MP4格式
- cordova-plugin-camera 拍照改录像&ios的mov视频转mp4
- 苹果 mov avi 转 mp4 等格式
- Linux批量操作------mov转MP4
- iOS-视频格式转换(MOV->MP4)
- 在iOS中,摄像头录制的视频是mov格式的,虽然mov兼容mp4,但是有些需求需要用到mp4格式的视频文件。
- 腾讯视频转MP4
- MP4/MOV/3GP文件的“ftyp”(转)
- 腾讯视频qlv转mp4
- 【转】OpenCV读取MP4,mpeg, wmv, flv, mov, 3gp etc. on Win32
- Android h264视频与G711转码合并MP4文件
- 视频转换格式 qlv 转 mp4 详解
- 腾讯视频qlv格式转MP4格式
- 腾讯视频QVL格式转MP4格式
- QuickTimer Container(mov/mp4格式)
- iOS支持MP4,AVI,NAVI,DV-AVI,DIVX,MOV,ASF,WMV,RM,RMVB等视频格式。
- 练习
- Nagle 算法和 Silly Window Syndrome
- ZOJ
- 白话算法之【动态规划入门】
- 操作系统基础知识总结
- iOS视频转码 mov 转 mp4
- CGLIB动态代理
- Go select 语句
- POJ:1086-Parencodings
- 使用PyInstaller打包Python程序
- webpack
- Python学习(10)--函数的调用和参数
- es插件安装以及常用插件介绍
- Ubuntu常用软件