转换 mp4格式的视频

我是新手,试图创建一个应用程序,记录视频或从库中选择视频,比我上传视频到网络。但这个文件没有在一些 android 设备播放。所以我想将其转换为mp4格式。

我是新手,试图创建一个应用程序,记录视频或从库中选择视频,比我上传视频到网络。但这个文件没有在一些 android 设备播放。所以我想将其转换为mp4格式。

因此,我想问一下如何将保存的mov转换为mp4objective-C

仅供参考,我已经研究了很多,但没有发现任何有用的信息。

这是我的代码:

- (void)openCamera {
    UIImagePickerController *picker = [[UIImagePickerController alloc] init];
    picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    picker.delegate = self;
    picker.showsCameraControls = YES;
    picker.allowsEditing = YES;
    picker.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeMovie, nil];
    [self presentViewController:picker animated:YES completion:nil];
} 
- (void) imagePickerController: (UIImagePickerController *) picker didFinishPickingMediaWithInfo: (NSDictionary *) info {
    NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType];
    if (CFStringCompare ((__bridge_retained CFStringRef) mediaType, kUTTypeMovie, 0) == kCFCompareEqualTo)
    {
        NSString *moviePath = [[info objectForKey:UIImagePickerControllerMediaURL] path];
        videoURL = info[UIImagePickerControllerMediaURL];
        if (UIVideoAtPathIsCompatibleWithSavedPhotosAl(moviePath))
        {
            UISaveVideoAtPathToSavedPhotosAl(moviePath, self, nil, nil);
        }
    }
    [self dismissViewControllerAnimated:YES completion:nil];
}
5

您可以签出my so post。它可能会对您有所帮助

你在做正确的事情..现在你需要将这个 mov 文件转换为 mp4 如下。

NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType];
if (CFStringCompare ((__bridge_retained CFStringRef) mediaType, kUTTypeMovie, 0) == kCFCompareEqualTo)
 {
   if (UIVideoAtPathIsCompatibleWithSavedPhotosAl(moviePath))
   {
         NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
         NSString *moviePath = [[info objectForKey:UIImagePickerControllerMediaURL] path];
         NSString *videoPath1 =[NSString stringWithFormat:@"%@/xyz.mov",docDir];
         NSURL *videoURL = [info objectForKey:UIImagePickerControllerMediaURL];
         NSData *videoData = [NSData dataWithContentsOfURL:videoURL];
         [videoData writeToFile:videoPath1 atomically:NO];
       //  UISaveVideoAtPathToSavedPhotosAl(moviePath, self, nil, nil);
   }
 }
    URLAsset *avAsset = [URLAsset URLAssetWithURL:[NSURL fileURLWithPath:videoPath1] options:nil];
    NSArray *compatiblePresets = [AssetExportSession exportPresetsCompatibleWithAsset:avAsset];
    if ([compatiblePresets containsObject:AssetExportPresetLowQuality])
    {
        AssetExportSession *exportSession = [[AssetExportSession alloc]initWithAsset:avAsset presetName:AssetExportPresetPassthrough];
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        videoPath = [NSString stringWithFormat:@"%@/xyz.mp4", [paths objectAtIndex:0]];
        exportSession.outputURL = [NSURL fileURLWithPath:videoPath];
        NSLog(@"videopath of your mp4 file = %@",videoPath);  // PATH OF YOUR .mp4 FILE
        exportSession.outputFileType = FileTypeMPEG4;
      //  CMTime start = CMTimeMakeWithSeconds(1.0, 600);
      //  CMTime duration = CMTimeMakeWithSeconds(3.0, 600);           
      //  CMTimeRange range = CMTimeRangeMake(start, duration);            
      //   exportSession.timeRange = range;        
      //  UNCOMMENT ABOVE LINES FOR CROP VIDEO   
        [exportSession exportAsynchronouslyWithCompletionHandler:^{
            switch ([exportSession status]) {
                case AssetExportSessionStatusFailed:
                    NSLog(@"Export failed: %@", [[exportSession error] localizedDescription]);
                    break;
                case AssetExportSessionStatusCancelled:
                    NSLog(@"Export canceled");
                    break;
                default:
                    break;
            }
             UISaveVideoAtPathToSavedPhotosAl(videoPath, self, nil, nil);
            [exportSession release];
        }];
    }
[self dismissViewControllerAnimated:YES completion:nil];

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(521)
数据库连接在jupiter笔记本中工作 但不是气流
上一篇
不相等时的大小写上的 SQLSUM
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(83条)