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

相关内容

热门资讯

三分钟实锤!德州微扑克辅助(德... 三分钟实锤!德州微扑克辅助(德州ai)一直真的有挂(详细辅助新2025版);1、下载好德州微扑克辅助...
第五分钟实锤!德州AI智能辅助... 第五分钟实锤!德州AI智能辅助机器人(德扑ai)都是真的有挂(详细辅助安装教程)1、德州AI智能辅助...
8分钟实锤!德州免费辅助神器a... 8分钟实锤!德州免费辅助神器app(手机德州)确实是有挂(详细辅助wepoke教程)德州免费辅助神器...
八分钟实锤!德州免费辅助神器a... 八分钟实锤!德州免费辅助神器app(线上德州)切实真的有挂(详细辅助曝光教程);1.德州免费辅助神器...
三分钟实锤!德州之星有外挂(n... 三分钟实锤!德州之星有外挂(nzt德州)好像真的有挂(详细辅助细节揭秘)1、玩家可以在德州之星有外挂...
五分钟实锤!德扑起手牌胜率图(... 五分钟实锤!德扑起手牌胜率图(德州)切实存在有挂(详细辅助可靠教程)1、每一步都需要思考,不同水平的...
六分钟实锤!智星德州菠萝(德扑... 六分钟实锤!智星德州菠萝(德扑)确实真的有挂(详细辅助必胜教程)1、很好的工具软件,可以解锁游戏的智...
第七分钟实锤!德扑之星有作弊(... 第七分钟实锤!德扑之星有作弊(德州机器人)都是真的是有挂(详细辅助爆料教程)1、德扑之星有作弊系统规...
七分钟实锤!智星德州菠萝外挂(... 七分钟实锤!智星德州菠萝外挂(德州ai)一贯真的是有挂(详细辅助必赢方法)所有人都在同一条线上,像星...
八分钟实锤!德州ai人工智能(... 八分钟实锤!德州ai人工智能(云扑克德州)好像真的有挂(详细辅助必胜教程)1、玩家可以在德州ai人工...