0

我正在尝试将一些透明动画视频添加到我的合成中作为过渡,但是在我的自定义合成器(AVVideoCompositing)中,当我尝试通过 AVAsynchronousVideoCompositionRequest.sourceFrame它获取像素缓冲区时返回 nil。如果我使用非透明 H.264 (mp4) 视频,它可以工作。透明视频 (mov) 使用时间码和 Apple ProRes 4444 编码。

我应该尝试使用 HEVC 吗?我已经看到一些建议在非透明视频上使用 Chroma CIFilter 来删除背景,但我不确定这是否是正确的方法。

可以在此处看到所需的动画过渡效果。

4

1 回答 1

0

iOS 上实际上不支持 ProRes。但是,您应该能够CMVideoCodecType.hevcWithAlpha用于您的用例。

要获取可用编码器的列表,您可以执行以下操作:

import VideoToolbox

var encoders: CFArray?
VTCopyVideoEncoderList(nil, &encoders)
print(encoders!)
于 2021-06-10T06:04:20.397 回答