gpt4 book ai didi

ios - 在不完全处理的情况下过滤并显示 AVAsset

转载 作者:搜寻专家 更新时间:2023-11-01 07:11:05 29 4
gpt4 key购买 nike

我只想使用 native API(UIKit、AVFoundation、Core Image 等)来过滤 AVAsset,同时在 AVPlayerLayer 或等效的 UI 组件中显示它。我不会使用 GPUImage,因为它对我来说非常成问题。

换句话说,我能否在显示每一帧之前(或提前几帧)过滤每一帧,这样我就不必在每次要过滤时都完全处理整部电影?

我也会接受描述如何使用帧缓冲区或类似内容设置自定义 AVPlayerLayer 的答案。


还有,这个有过滤标签吗?我看到的都是信号。

最佳答案

AVPlayerItem 有一个属性 videoComposition

你可以使用这个属性来处理每一帧

第一种方式

如果你想使用来自 iOS9 的 CoreImage,你可以使用 init(asset:applyingCIFiltersWithHandler:) 方法。

To process video frames using Core Image filters—whether for display or export—create a composition with this method. AVFoundation calls your applier block once for each frame to be displayed (or processed for export) from the asset’s first enabled video track. In that block, you access the video frame and return a filtered result using the provided

参见 docs了解更多信息。

第二种方式

AVVideoComposition 有一个属性 customVideoCompositorClass。您需要将该属性设置为 AVVideoCompositing 协议(protocol)的一个实例。 Here是一个例子。 (它在 Objective-C 中,但我认为将其转换为 swift 并不难)

关于ios - 在不完全处理的情况下过滤并显示 AVAsset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44895802/

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