gpt4 book ai didi

ios - 如何在 AVMutableComposition 中组合纵向和横向资源进行预览

转载 作者:行者123 更新时间:2023-11-29 12:44:50 33 4
gpt4 key购买 nike

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

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

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

第 2 部分

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

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

第 3 部分

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

放在一边

顺便说一句,我想我不明白为什么 AVMutableVideoComposition 本身不像 AVMutableComposition 那样是 AVAsset 的后代。然后你就可以直接演奏作曲了。

最佳答案

   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];

这就是您预览所需的全部内容。如果您在 AVMutableVideoComposition 中使用 animationTool AVPlayer 不支持它。为此目的使用 AVSynchronizedLayer。

关于ios - 如何在 AVMutableComposition 中组合纵向和横向资源进行预览,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23928149/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com