我创建了一个自定义 AVVideoComposition 类并像这样使用它:
AVAsset *asset = ...
AVMutableVideoComposition *videoComposition = [AVMutableVideoComposition videoCompositionWithPropertiesOfAsset:asset];
videoComposition.customVideoCompositorClass = [MyCustomCompositor class];
MyCustomInstruction *instruction = // custom instruction holding CIFilter that is applied to every video frame
videoComposition.instructions = @[instruction];
导出会话后使用如下:
AVAssetExportSession *session = [[AVAssetExportSession alloc] initWithAsset:asset presetName:AVAssetExportPresetHighestQuality];
session.outputURL = ...
session.outputFileType = AVFileTypeQuickTimeMovie;
session.videoComposition = videoComposition;
[session exportAsynchronouslyWithCompletionHandler:^{
...
}];
根据文档,如果我正在使用AVVideoComposition
,轨道preferredTransform
将不起作用。同样使用自定义AVVideoCompostion
指令,我无法AVMutableVideoCompositionLayerInstruction
使用setTransform:atTime:进行设置。
如何获得正确方向的视频?