AVAssetExportSession剪切视频转换问题
创始人
2024-11-12 20:00:33
0

使用AVMutableComposition、AVMutableVideoComposition和AVMutableAudioMix创建新的AVAsset,并将其导出为视频文件。下面是示例代码:

AVURLAsset *originalAsset = [[AVURLAsset alloc] initWithURL:originalURL options:nil];
AVMutableComposition *composition = [AVMutableComposition composition];

AVAssetTrack *videoTrack = [[originalAsset tracksWithMediaType:AVMediaTypeVideo] firstObject];
AVMutableCompositionTrack *compositionVideoTrack = [composition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid];

[compositionVideoTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, originalAsset.duration)
                            ofTrack:videoTrack
                             atTime:kCMTimeZero
                              error:nil];

AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:composition presetName:AVAssetExportPresetMediumQuality];

AVMutableVideoComposition *videoComposition = [AVMutableVideoComposition videoComposition];
videoComposition.renderSize = CGSizeMake(640, 640);
videoComposition.frameDuration = CMTimeMake(1, 30);

AVMutableVideoCompositionInstruction *instruction = [AVMutableVideoCompositionInstruction videoCompositionInstruction];
instruction.timeRange = CMTimeRangeMake(kCMTimeZero, composition.duration);

AVMutableVideoCompositionLayerInstruction *layerInstruction = [AVMutableVideoCompositionLayerInstruction videoCompositionLayerInstructionWithAssetTrack:compositionVideoTrack];
[layerInstruction setTransform:CGAffineTransformMakeTranslation(64, 64) atTime:kCMTimeZero];

instruction.layerInstructions = @[layerInstruction];
videoComposition.instructions = @[instruction];
exportSession.videoComposition = videoComposition;
exportSession.outputFileType = AVFileTypeMPEG4;
exportSession.outputURL = outputFileURL;
[exportSession exportAsynchronouslyWithCompletionHandler:^{
    // Handle export completion or errors
}];

该代码将从原始视频文件中提取视频轨道,并使用AVMutableComposition创建新的AVAsset。AVMutableVideoComposition和AVMutableAudioMix对象用于对导出视频进行剪切和转换。最终,AVAssetExportSession用于将新的AVAsset导出为MPEG-4文件。

相关内容

热门资讯

科技通报“福建大菠萝辅助透视系... 科技通报“福建大菠萝辅助透视系统”原先有辅助器(揭秘有挂);无需打开直接搜索加薇136704302(...
技巧知识分享“心悦游戏万能透视... 技巧知识分享“心悦游戏万能透视辅助器免费”起初有辅助开挂器(真实有挂);亲,心悦游戏万能透视辅助器免...
带你了解“皮皮衡阳字牌黑科技视... 您好:皮皮衡阳字牌黑科技视频这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用...
透视app“常州茶苑辅助器下载... 透视app“常州茶苑辅助器下载”一向有开挂辅助工具(有挂讲解)1、下载安装好常州茶苑辅助器下载,进入...
分享认知“琼崖辅助软件”一向有... >>您好:琼崖辅助软件确实是有挂的,很多玩家在这款琼崖辅助软件游戏中打牌都会发现很多用户的牌特别好,...
推荐十款“圣盛荆州晃晃三五七辅... 圣盛荆州晃晃三五七辅助开挂教程视频分享装挂详细步骤在当今的网络游戏中,圣盛荆州晃晃三五七辅助作为一种...
推荐几款新版“新玉海楼游戏茶苑... 推荐几款新版“新玉海楼游戏茶苑”从来有辅助脚本(存在有挂);无需打开直接搜索微信(136704302...
透视黑科技“内蒙古边锋老友辅助... 内蒙古边锋老友辅助是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户可以加我...
分享一款“山西打锅子技巧”一向... >>您好:山西打锅子技巧确实是有挂的,很多玩家在这款山西打锅子技巧游戏中打牌都会发现很多用户的牌特别...
记者爆料“0759湛江吴川三脚... 记者爆料“0759湛江吴川三脚鸡辅助”原先有辅助开挂下载(有挂解惑);打开点击测试直接进入微信(13...