当cpu空闲时,AVAssetExportSession非常慢

时间:2014-02-03 15:49:02

标签: objective-c avassetexportsession

我需要在使用UIImagePickerController录制视频后应用一些操作:

  • 应用用户选择的修剪
  • 将其转换为MP4
  • 如果已经使用iPad上下录制视频,则旋转视频

我使用AVAssetExportSession,但即使我没有修剪,也不要旋转并转换为MP4或QT(输入格式),720p视频上的导出很长(例如50s视频的50s)在iPad3上。)

我虽然首先是cpu密集型操作,但如果我对应用程序进行概要分析,则CPU仅在第一秒开始时处于活动状态,然后长时间处于空闲状态。如果我启动活动监控,我mediaserverd使用40%。

你认为这个过程是正常的持续时间吗?难道我做错了什么 ? “照片”应用程序可在不到1秒的时间内捕获并修剪长视频...

AVURLAsset *videoAsset = [AVURLAsset URLAssetWithURL:tempMediaURL options:nil];

AVAssetExportSession *exportSession = [[AVAssetExportSession alloc]   initWithAsset:videoAsset presetName:AVAssetExportPreset1280x720];
exportSession.outputURL = [[NSFileManager defaultManager] URLForInterviewWithFileName:newFileName];
exportSession.outputFileType = AVFileTypeMPEG4;

[exportSession exportAsynchronouslyWithCompletionHandler:^{ ...

1 个答案:

答案 0 :(得分:1)

如果你不依赖它是720p试试

presetName:AVAssetExportPresetPassthrough

你会发现处理时间显着减少,因为缩放可能是一项昂贵的操作。也在你的

AVMutableCompositionTrack

您应使用以下

指定修剪区域
[yourCompositionTrack insertTimeRange:someDurationAsaCMTime ofTrack:videoAVAssetTrack atTime:theInsertTimeasCMTime error:&someError];
然后,处理时间应该减少,因为它不必进行转码。

你有什么用来将视频从颠倒转换 - > not-oversidedown?