PoporVideoTool 1.3

PoporVideoTool 1.3

popor 维护。



  • popor

PoporVideoTool

CI Status Version License Platform

示例

要运行示例项目,请克隆仓库,然后首先从 Example 目录运行 `pod install`。

需求

安装

PoporVideoTool 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中:

pod 'PoporVideoTool'
#import<PoporVideoTool/PoporVideoTool.h>

- (void)compressVideoUrl:(NSURL *)videoOriginUrl outputUrl:(NSURL *)outputURL{
    // 删除目标地址
    [NSFileManager deleteFile:outputURL.path];
    
    // 初始化 encoder
    PoporVideoTool *encoder = [PoporVideoTool.alloc initWithAsset:[AVAsset assetWithURL:videoOriginUrl]];
    encoder.outputFileType  = AVFileTypeMPEG4;
    encoder.outputURL       = outputURL;
    
    // 获取压缩视频Size
    CGSize prioritySize = CGSizeMake(540, 960);
    CGSize originSize   = [PoporVideoTool sizeVideoUrl:videoOriginUrl];
    CGSize targetSize   = [PoporVideoTool sizeFrom:originSize toSize:prioritySize];
    
    // 设置压缩配置
    encoder.videoSettings = [PoporVideoTool dicVideoSettingsSize:targetSize bitRate:0]; // 视频参数
    encoder.audioSettings = [PoporVideoTool dicAudioSettings]; // 音频参数
    
    // 异步压缩
    [encoder compressCompletion:^(PoporVideoTool * _Nonnull poporVideoTool) {
        switch (poporVideoTool.status) {
            case AVAssetExportSessionStatusCompleted: {
                NSLog(@"Video export succeeded");
                break;
            }
            case AVAssetExportSessionStatusCancelled: {
                NSLog(@"Video export cancelled");
                break;
            }
            default: {
                NSLog(@"Video export failed with error: %@ (%li)", encoder.error.localizedDescription, encoder.error.code);
                break;
            }
        }
    } progress:^(CGFloat progress) {
        NSLog(@"progress: %f", progress);
    }];
}

作者

popor,[email protected]

许可证

PoporVideoTool可在MIT许可证下使用。有关更多信息,请参阅LICENSE文件。