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其实真的有下载,1分钟教程(有挂工具)在进入德普辅助器怎么...
透视法子!aapoker脚本,... 透视法子!aapoker脚本,AApoker下载本来有开挂,第3分钟教程(有挂解惑)1、下载好aap...
透视经验!wejoker辅助软... 透视经验!wejoker辅助软件视频,WePoKer机器人确实真的有脚本,第9分钟教程(证实有挂)1...
透视要领!aapoker怎么选... 透视要领!aapoker怎么选牌,AApoker软件一直有插件,五分钟教程(有挂规律)1、点击下载安...
透视教程书!hhpoker俱乐... 透视教程书!hhpoker俱乐部是干嘛的,HHpoker免费果然有神器,4分钟教程(真的有挂)1)h...
透视窍要!hhpoker为什么... 透视窍要!hhpoker为什么一直输,HHpoker德州局切实是有神器,第八分钟教程(有挂教程)hh...
透视步骤!wpk真的有透视嘛,... 透视步骤!wpk真的有透视嘛,WPK辅助器真是是有透视,五分钟教程(有挂神器)1、在wpk真的有透视...
透视操作!哈糖大菠萝有挂吗,H... 透视操作!哈糖大菠萝有挂吗,HHpoker模拟器本来存在有开挂,7分钟教程(有挂功能)1、哈糖大菠萝...
透视讲义!wpk模拟器多开,W... 透视讲义!wpk模拟器多开,WPK俱乐部确实是有工具,第8分钟教程(详细教程)1、玩家可以在wpk模...
透视窍要!哈糖大菠萝攻略,We... 透视窍要!哈糖大菠萝攻略,WePoKer破解器好像真的是有教程,第8分钟教程(有挂工具)哈糖大菠萝攻...