1

录制视频后,我需要应用一些操作UIImagePickerController

  • 应用用户选择的修剪
  • 将其转换为 MP4
  • 如果它是用 iPad 倒置/倒置录制的,则旋转视频

我为此使用 AVAssetExportSession,但即使我不修剪、不旋转并转换为 MP4 或 QT(这是输入格式),720p 视频的导出时间也很长(例如,iPad3 上 80 秒的视频需要 50 秒) )。

我虽然首先这是一个 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:^{ ...
4

1 回答 1

1

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

presetName:AVAssetExportPresetPassthrough

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

AVMutableCompositionTrack

您应该使用以下内容指定修剪区域

[yourCompositionTrack insertTimeRange:someDurationAsaCMTime ofTrack:videoAVAssetTrack atTime:theInsertTimeasCMTime error:&someError];

处理时间应该会减少,因为它不必进行转码。

你用什么将视频从颠倒->不颠倒转换?

于 2014-02-03T15:58:39.290 回答