1

我有AVAssets纵向和横向方向。当我一次播放一个时,AVPlayer它们会以正确的方向播放。因此,AVPlayer正在阅读每个视频AVAssetTrack preferredTransform并进行相应调整。

另一方面,当我将肖像资产添加到 aAVMutableComposition时,它会横向显示。大概这是因为AVMutableCompositionTrack只是有一个默认preferredTransformCGAffineTransformIdentity.

我想要的是让我AVMutableComposition尊重preferredTransform我添加到其中的资产,以便一切都正确显示。

第2部分

AVMutableVideoCompositionLayerInstructions我知道我可以通过向 提供合成指令 ( ) 来执行视频旋转AVAssetExportSession,例如,如此所述。但我还不想导出视频。

AVAssetExportSession唯一AVMutableVideoComposition一个作为输入的类吗?

第 3 部分

我正在尝试播放即将导出的视频的预览,唯一的合成操作是转换为纵向或横向。所以我认为应该有一种更轻量级的方法来做到这一点,而无需在AVAssetExportSession每次用户更改可变组合时运行。这是正确的吗?

在旁边

顺便说一句,我想我不明白为什么is not 本身就是like isAVMutableVideoComposition的后代。然后你可以直接播放作曲。AVAssetAVMutableComposition

4

2 回答 2

1
   AVPlayerItem * item item = [[AVPlayerItem alloc] initWithAsset:[collageComposition mutableCopy]];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(itemDidFinishPlaying:) name:AVPlayerItemDidPlayToEndTimeNotification object:item];
item.videoComposition = [collageVideoComposition mutableCopy];
[item setSeekingWaitsForVideoCompositionRendering:NO];
item.audioMix = audioMix;
self.previewPlayer = [AVPlayer playerWithPlayerItem:item];

这就是您预览所需的全部内容。如果您animationToolAVMutableVideoCompositionAVPlayer 中使用,请不要支持它。为此目的使用 AVSynchronizedLayer。

于 2014-05-30T06:49:43.663 回答
0

啊,AVPlayerItem有财产videoComposition。修改AVPlayerItem将适合预览显示。

于 2014-05-29T07:58:57.283 回答