使用AVPlayer播放CMSampleBufferRef

3
我正在开发一个针对OSX的视频编辑应用程序,有一组CMSampleBufferRef在数组中表示每个视频帧。
我想使用AVPlayer渲染视频预览 - 是否可以直接将这些样本馈送到AVPlayer中?
我已经查看了大部分AVFoundation类。我知道可以使用AVAssetWriter写入文件,但是希望避免这样做,因为用户仍将进行更多编辑(因此最好具有原始帧数据)。
有什么想法吗?
1个回答

1

可以的。

首先,您应该将 CMSampleBufferRef 转换为 CGImageRef,这将允许您在屏幕上显示帧样本。

这个答案 包含了所有必要的代码。

关于使用 AVPlayer,我不确定您是否真的需要这样做,因为您通过您的 CMSampleBufferRef 数组 具有完全访问权限,并且能够正确转换和渲染这些样本,我认为不需要将这些样本放在 AVPlayer 中,而是可以直接在 CALayer 中渲染 CGImage

希望这可以帮到您。


谢谢你的回答。这是否意味着我需要编写自己的自定义播放器来处理每个帧的时间等?我希望视频帧可以一遍又一遍地循环播放。 - Andy Hin
是的,如果你只需要循环遍历帧,那么手动实现起来非常简单 :) 祝你编码愉快。 - Jan Cássio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接