Ios 自定义AVVideoComposition的AVAsset首选变换
我创建了一个自定义的AVVideoComposition类,并按如下方式使用它:Ios 自定义AVVideoComposition的AVAsset首选变换,ios,orientation,avfoundation,avasset,avvideocomposition,Ios,Orientation,Avfoundation,Avasset,Avvideocomposition,我创建了一个自定义的AVVideoComposition类,并按如下方式使用它: AVAsset *asset = ... AVMutableVideoComposition *videoComposition = [AVMutableVideoComposition videoCompositionWithPropertiesOfAsset:asset]; videoComposition.customVideoCompositorClass = [MyCustomCompositor cla
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:^{
...
}];
导出会话后,使用如下方式:
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
将不起作用。此外,对于自定义avvideocomposition
指令,我无法使用setTransform:atTime:设置AVMutableVideoCompositionLayerInstruction
如何获得方向正确的视频?请阅读我问题的编辑部分。我见过这个问题,但没用。你解决这个问题了吗,汤姆?我们被困在这些问题上,这是很久以前的事了,所以我不是100%确定。我想我最后是手工修改了转换矩阵。你有没有用过的代码?