我正在通过AVMutableVideoCompositionLayerInstruction
iOS7 SDK 修改一些视频。
以下代码用于 iOS 6.1.3,但在 iOS7 中,视频在第一帧被冻结(尽管我仍然可以听到音频)。我摆脱了我为验证单独添加视频合成会导致问题而应用的所有实际转换。
AVURLAsset* videoAsset = [[AVURLAsset alloc] initWithURL:inputFileURL options:NULL];
AVAssetTrack *videoAssetTrack = [[videoAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0];
AVMutableVideoCompositionLayerInstruction *layerInstruction =
[AVMutableVideoCompositionLayerInstruction videoCompositionLayerInstructionWithAssetTrack:videoAssetTrack];
AVMutableVideoComposition *mainComposition = [AVMutableVideoComposition videoComposition];
AVMutableVideoCompositionInstruction *mainInstruction = [AVMutableVideoCompositionInstruction videoCompositionInstruction];
mainInstruction.layerInstructions = [NSArray arrayWithObject:layerInstruction];
mainInstruction.timeRange = CMTimeRangeMake(kCMTimeZero, videoAsset.duration);
mainComposition.instructions = [NSArray arrayWithObject:mainInstruction];
mainComposition.frameDuration = videoAsset.duration;
mainComposition.renderSize = CGSizeMake(320, 320);
...
exportSession.videoComposition = mainComposition;
如果我不设置视频记录的videoComposition
属性,exportSession
则可以,但我不能应用任何转换。有谁知道这可能是什么原因造成的?
谢谢。