【问题标题】:Playing CMSampleBufferRef's with AVPlayer使用 AVPlayer 播放 CMSampleBufferRef
【发布时间】:2015-05-10 11:09:11
【问题描述】:

我正在开发一个 OSX 视频编辑应用程序,并且在一个数组中有一组 CMSampleBufferRef,代表视频的每一帧。

我想使用 AVPlayer 渲染视频预览 - 是否可以将这些示例直接馈入 AVPlayer?

我查看了大多数 AVFoundation 类。我知道我可以使用 AVAssetWriter 写入文件,但希望避免这种情况,因为用户仍将进行更多编辑(拥有原始帧数据真是太好了)。

有什么想法吗?

【问题讨论】:

    标签: ios macos avfoundation avplayer


    【解决方案1】:

    是的,你可以。

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

    This answer 拥有完成此操作所需的所有代码。

    关于使用AVPlayer,我不确定你是否真的需要这样做,因为你可以通过你的CMSampleBufferRef array 完全访问并且你可以转换和渲染这些样本正确,我认为没有必要将这些样本放在AVPlayer,相反,您可以直接在CGImage 渲染CALayer

    希望对你有帮助。

    【讨论】:

    • 感谢您的回答。这是否意味着我需要编写自己的自定义播放器来处理每一帧的时间等?我希望视频帧一次又一次地循环播放。
    • 是的,如果你只需要循环遍历帧,手动实现很简单:) 有一个很好的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-21
    • 2019-11-29
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多