gpt4 book ai didi

ios - 如何将 TPCircularBuffer 用于视频?

转载 作者:行者123 更新时间:2023-11-28 21:36:50 25 4
gpt4 key购买 nike

我们有适用于 iOS 平台的 VoIP 应用程序。我们使用 TPCircularBuffer 进行音频缓冲,它的性能非常好。

所以我想知道是否也可以使用 TPCircularBuffer 进行视频缓冲。我搜索了很多但没有找到任何关于“使用 TPCircularBuffer 用于视频”的有用信息。这甚至可能吗?如果是,那么任何人都可以在上面遮光吗?非常感谢任何代码示例。

最佳答案

我想您可以将视频帧的像素复制到TPCircularBuffer 中,从技术上讲您将拥有一个视频环形缓冲区,但您已经输掉了效率竞赛那时是因为您没有时间复制那么多数据。您需要保留对框架的引用。

或者,如果您真的想要将解决方案混合到 TPCircularBuffer 中,您可以将 CMSampleBuffer 指针写入缓冲区(注意保留并释放)。但这似乎有点笨拙,因为您实际上并没有从 TPCircularBuffer 神奇的内存映射包装中获得任何好处,因为指针太小了。

我会简单地制作我自己的 CMSampleBufferRef 环形缓冲区。你可以grab a prebuilt circular buffer或者自己做时钟算术:

 CMSampleBufferRef  ringBuffer[10]; // or some other number

ringBuffer[(++i) % 10] = frame;

当然,您真正的问题不是环形缓冲区本身,而是处理解压缩视频带宽非常高的事实,例如对于 1080p,每帧为 8MB,或以 24fps 的速度存储 1 秒的值(value)为 200MB,因此,如果您需要除微观视频缓冲区之外的任何东西,就必须非常有创意。

一些建议:

  • 以上数字是针对 RGBA 的,所以尝试在 YUV 中工作,其中数字变为 3MB 和 75MB/s
  • 尝试降低分辨率

关于ios - 如何将 TPCircularBuffer 用于视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33581369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com