【问题标题】:Display H.264 encoded images via AVSampleBufferDisplayLayer通过 AVSampleBufferDisplayLayer 显示 H.264 编码图像
【发布时间】:2014-09-19 18:34:23
【问题描述】:

我一直在探索 iOS 上实现原始 H.264 流的硬件加速解码的选项,到目前为止我只发现唯一的选择是将 H.264 流写入 MP4 文件,然后将文件传递给AVAssetReader 的一个实例。虽然这种方法有效,但它并不是特别适合实时应用程序。 AVFoundation 参考表明存在可以显示压缩视频帧(AVSampleBufferDisplayLayer)的 CALayer,我相信这将是上述方法的有效替代方案。不幸的是,这一层仅在 OSX 上可用。我想提交一个附魔雷达,但在我这样做之前,我想从有此层经验的人那里知道是否确实可以用于显示 H.264 原始数据(如果在 iOS 上可用)。目前在我的应用程序中,解压缩的 YUV 帧是通过 openGLES 呈现的。使用这一层意味着我不再需要使用 openGLES 了吗?

【问题讨论】:

  • AVSampleBufferDisplayLayer 在 iOS 上不可用。
  • 我知道这不可用,请参阅我的问题:“不幸的是,该层仅在 OSX 上可用”。如果适合显示 H.264 编码图像,我想问任何有使用这种类型 CALayer 经验的人
  • 糟糕,抱歉。所以 AVSampleBufferDisplayLayer 看起来完全可以替代您的 GLES 实现。

标签: ios macos avfoundation


【解决方案1】:

在 iOS 8 中,AVSampleBufferDisplayLayer 类现在可用。

Take a Look and have Fun

【讨论】:

  • @Karsten:你有一个可行的例子吗?因为我试图让它工作,但没有显示任何内容:stackoverflow.com/questions/25980070/…
  • 我提供了一些代码 sn-ps。 => stackoverflow.com/questions/26035380/…
  • @Karsten:感谢您提供 sn-ps。但是我遇到了与 Md1079 相同的问题,因为我想从网络解码 RTP 流。我想评论他的回答,但我的名声不允许:(另外,现在问题解决了,我可以解码网络流。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-03
  • 2020-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多