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文件。

相关内容

热门资讯

透视app“哈糖大菠萝攻略”透... 透视app“哈糖大菠萝攻略”透视辅助机制(果然是真的有挂)1、起透看视 哈糖大菠萝攻略透明视辅助2、...
透视插件!德普之星透视辅助软件... 透视插件!德普之星透视辅助软件是真的吗,(德普之星)真是真的是有挂,微扑克教程(有挂插件);1、德普...
透视游戏“德州透视插件”透视辅... 透视游戏“德州透视插件”透视辅助软件(一贯是真的有挂);1、操作简单,无需注册,只需要使用手机进行登...
透视app!德扑圈有透视吗,德... 透视app!德扑圈有透视吗,德普辅助软件,可靠教程(有挂黑科技);1、在德扑圈有透视吗ai机器人技巧...
透视数据“uupoker透视”... 透视数据“uupoker透视”透视辅助安装(切实有挂)1)uupoker透视辅助挂:进一步探索uup...
透视挂!德普之星app安卓版破... 透视挂!德普之星app安卓版破解版,(德普之星)其实真的有挂,攻略教程(有挂介绍);1、操作简单,无...
透视安卓版“newpoker脚... 透视安卓版“newpoker脚本”透视辅助下载(真是真的有挂);1、金币登录送、破产送、升级送、活动...
透视计算“德州透视脚本”透视辅... 透视计算“德州透视脚本”透视辅助app(果然有挂)1、每一步都需要思考,不同水平的挑战会更加具有挑战...
透视透视!德普之星辅助器怎么用... 透视透视!德普之星辅助器怎么用,德扑圈有透视吗,必赢教程(有挂教程);亲,关键说明,德普之星辅助器怎...
透视有挂“德州辅助工具到底怎么... 透视有挂“德州辅助工具到底怎么样”透视辅助挂(切实有挂)1、金币登录送、破产送、升级送、活动送。详细...