zoukankan      html  css  js  c++  java
  • convert2Mp4 code snippet

    #pragma mark - helper

    - (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;

    }

  • 相关阅读:
    态度决定你的人生高度(一个人能否成功,就看他的态度)
    要取得成功,必须有所牺牲:职场超级成功秘诀
    28位世界名人得到过的最佳忠告(仔细体味,获益匪浅)
    你可知道
    不要把失败的责任推给你的命运,你距离你的目标有多远
    一个人凭什么自信?认识自我—你就是一座金矿
    试一下,把你的生命折叠51次 相信你会得到成功的厚度
    赠鹰飞道扬(帮别人名字作诗)
    魏海燕(帮别人名字作诗)
    职场有感
  • 原文地址:https://www.cnblogs.com/Keys/p/4613488.html
Copyright © 2011-2022 走看看