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

相关内容

热门资讯

脚本揭露!德普之星透视免费,德... 脚本揭露!德普之星透视免费,德普之星辅助工具如何打开(透视)切实真的有方法(哔哩哔哩)一、游戏安装教...
脚本推荐!hhpoker有没有... 脚本推荐!hhpoker有没有作必弊辅助,hhpoker脚本下载(透视)好像真的有插件(哔哩哔哩)1...
透视关于!aa poker辅助... 透视关于!aa poker辅助,aapoker怎么设置抽水(透视)都是存在有脚本(哔哩哔哩)一、aa...
脚本教你!wpk辅助器是真的吗... 脚本教你!wpk辅助器是真的吗,wpk俱乐部有没有辅助(透视)本来是有方法(哔哩哔哩)1、实时透视辅...
脚本详情!德普之星app安卓版... 脚本详情!德普之星app安卓版破解版,德普之星透视辅助软件下载(透视)竟然有插件(哔哩哔哩)1、起透...
透视了解!德普之星私人局辅助器... 透视了解!德普之星私人局辅助器,德普之星辅助器app(透视)好像真的是有app(哔哩哔哩)1、下载好...
透视推荐!aapoker破解侠... 透视推荐!aapoker破解侠是真的吗,aapoker怎么提高中牌率(透视)确实真的有工具(哔哩哔哩...
脚本关于!aapoker脚本怎... 脚本关于!aapoker脚本怎么用,aapoker透视脚本(透视)本来是有技巧(哔哩哔哩)1、玩家可...
脚本了解!wpk可以作必弊吗,... 脚本了解!wpk可以作必弊吗,如何判断wpk辅助软件的真假(透视)总是是有神器(哔哩哔哩)1)辅助插...
脚本解谜!hhpoker德州有... 脚本解谜!hhpoker德州有挂吗,hhpoker透视工具(透视)切实真的有教程(哔哩哔哩)1、每一...