多段视频合并核心代码

本文展示了如何使用AVFoundation框架将多个短视频合并成一个完整的视频,并裁剪为正方形。通过遍历视频文件URL,创建AVMutableComposition实例,处理每个视频的转码、方向调整和组合。最后,使用AVAssetExportSession导出合并后的视频。
摘要由CSDN通过智能技术生成

//将所有分段视频合成为一段完整视频,并且裁剪为正方形包含所有视频分段的文件URL数组,必须是[NSURL fileURLWithString:...]得到的

- (void)mergeAndExportVideosAtFileURLs:(NSArray *)fileArray{

    /// fileArray 是多短视频的本地存储路径数组,,视频存于沙盒目录

    NSMutableArray *fileURLArray = [NSMutableArray array];

    fileArray里的视频路径是字符串类型,,转换成URL

    for (NSString *str in fileArray) {

        [fileURLArray addObject:[NSURL fileURLWithPath:str]];

    }

    NSError *error = nil;

    CGSize renderSize = CGSizeMake(0, 0);

    NSMutableArray *layerInstructionArray = [[NSMutableArray alloc] init];

    AVMutableComposition *mixComposition = [[AVMutableComposition alloc] init];

    CMTime totalDuration = kCMTimeZero;

    //先去assetTrack 也为了取renderSize

    NSMutableArray *assetTrackArray = [[NSMutableArray alloc] init];

    NSMutableArray *assetArray = [[NSMutableArray alloc] init];

    for (NSURL *fileURL in fileURLArray) {

        AVAsset *asset = [AVAsset assetWithURL:fileURL];

        if (!asset) {

            continue;

        }

        [assetArray addObject:asset];

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值