首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >FairPlay流:在AVPlayerItemVideoOutput上调用copyPixelBufferForItemTime返回NULL

FairPlay流:在AVPlayerItemVideoOutput上调用copyPixelBufferForItemTime返回NULL
EN

Stack Overflow用户
提问于 2017-03-16 16:35:19
回答 1查看 1.1K关注 0票数 1

有没有人有使用HLS和Fairplay并成功地检索像素缓冲区的经验?

我使用的是AVURLAsset及其resourceLoader委托集。我的AVAssetResourceLoaderDelegate负责处理公平游戏过程。

但是,当我尝试使用附加到AVPlayerLayer上的AVPlayerItemVideoOutput并在其上使用copyPixelBufferForItemTime时,返回的pixelBuffer总是为NULL。

另一方面,当我使用非加密流而不使用resourceLoader时,copyPixelBufferForItemTime会按预期返回一个像素缓冲区。

这是按计划进行的吗?(也就是说,使用FairPlay进行保护的流不公开其像素缓冲区以防止误用。)

如果没有,是否有任何方法从使用FairPlay在iOS上保护的流中获取像素缓冲区?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-18 10:43:08

在进一步研究这个问题之后,我得出的结论是,苹果设计他们的AVPlayer时,一旦使用了FairPlay保护的HLS,就会成为解密数据copyPixelBufferForItemTime总是返回零的唯一出口点(参见A:)。

  • 我在没有加密的情况下测试了完全相同的流,copyPixelBufferForItemTime按预期返回对像素缓冲区的引用。
  • 我在一个上用加密测试了完全相同的流AVPlayerLayer,它将视频显示为例外。

看来,一旦使用FairPlay,显示受保护的视频内容的唯一方法就是使用AVPlayerLayer。到今天为止,似乎还没有办法从苹果的API中检索受FairPlay保护的HLS媒体,以便在3D空间的OpenGL纹理上显示它。

答:copyPixelBufferForItemTime是唯一的出口点,因为在AVPlayerLayer上调用renderInContext不起作用

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42839831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档