• IOS视频压缩


      最近在做视频上传的时候遇到了个问题,就是当上传自己录制的视频的时候尺寸过大,尤其是录制720p视频的时候尺寸更是不可想象,但是从iPad Library或者相册里面选择视频的时候系统会做一个压缩,不知道这是什么方式压缩的 ,求助论坛之后果。后来发现其实IOS里面是提供了几个API可以压缩视频的(准确的说应该是reEncode)。这几个API在AVFoundation里面。写出来希望能给遇到相同的问题的朋友一些帮助。知道的就请略过了。
    
    
    
    写了一个便捷的方法
    
    - (void) lowQuailtyWithInputURL:(NSURL*)inputURL
                                       outputURL:(NSURL*)outputURL
                                         blockHandler:(void (^)(AVAssetExportSession*))handler
    {
        AVURLAsset *asset = [AVURLAsset URLAssetWithURL:inputURL opti*****:nil];
        AVAssetExportSession *session = [[AVAssetExportSession alloc] initWithAsset:asset     presetName:AVAssetExportPresetMediumQuality];
        session.outputURL = outputURL;
        session.outputFileType = AVFileTypeQuickTimeMovie;
        [session exportAsynchronouslyWithCompletionHandler:^(void)
         {
             handler(session);
         }];
    }
    
    具体用法就是
    
    [self lowQuailtyWithInputURL:video outputURL:output blockHandler:^(AVAssetExportSession *session)
    {
         if (session.status == AVAssetExportSessi*****tatusCompleted)
         {
             
         }
         else
         {
             
             
         }
    }];
    
    在block里面检测成功,失败,或者是取消,然后释放session.
    
    期间可以通过不断的查看session的progress属性来获取转换的进度。
    
    可以设置这些压缩质量
    
    AVF_EXPORT NSString *c*****t AVAssetExportPresetLowQuality        NS_AVAILABLE_IOS(4_0);
    AVF_EXPORT NSString *c*****t AVAssetExportPresetMediumQuality     NS_AVAILABLE_IOS(4_0);
    AVF_EXPORT NSString *c*****t AVAssetExportPresetHighestQuality    NS_AVAILABLE_IOS(4_0);
    
    经过我的观察发现系统的压缩和AVAssetExportPresetMediumQuality相当 66m 的 480 * 640 视频压缩过后是15m.
    
    发现这种方法之前我一直是逐帧的压缩,就是一边向文件里面写视频帧一边压缩,这样导致视频非常的不清晰,通过以上的方式
    之后,视频质量的损失不大,可以达到视频分享的文件尺寸和清晰度的平衡。
    
    如果设置了session的shouldOptimizeForNetworkUse这个属性,效果会更好。
    
    下面再给一个官方的例子,
    
    https://developer.apple.com/library/ios/#samplecode/RosyWriter/Introduction/Intro.html#//apple_ref/doc/uid/DTS40011110
    
    这个例子给出了当写视频文件的时候手动设置位率和FPS.
    同时这个例子已经非常接近iPhone上实时滤镜的做法了。 
  • 相关阅读:
    SAP PI 如何实现消息定义查询
    EWM与ERP交互程序
    ITS Mobile Template interpretation failed. Template does not exist
    SAP Material Flow System (MFS) 物料流系统简介
    SAP EWM Table list
    EWM RF 屏幕增强
    SAP EWM TCODE list
    SAP扩展仓库管理(SAPEWM)在线研讨会笔记
    ERP与EWM集成配置ERP端组织架构(二)
    EWM RF(Radio Frequency)简介
  • 原文地址:https://www.cnblogs.com/jiackyan/p/3169740.html
Copyright © 2020-2023  润新知