2

在 iOS 上使用带有属性 kVTCompressionPropertyKey_AverageBitRate 的 VideoToolbox API 的 H.264 硬件加速编码的比特率不受限制。

据观察,尽管编码器的比特率配置正确,但 H.264 硬件加速编码的比特率有时高达 4mbps(对于 1280x780、640x360)。这个高比特率值不在可接受的范围内。*有一个用于设置比特率的属性,即 videoToolbox 中可用的 kVTCompressionPropertyKey_AverageBitRate。文档说“这不是硬限制;比特率可能会超过这个峰值”。

我尝试了以下两件事: 1. 将比特率和设置数据速率设置为一些硬编码值,作为 init 中 VTCompressionSessionCreate 的 encoderSpec 属性的一部分。删除了初始化后比特率的任何重新配置​​/设置。2. 使用 VTSessionSetProperty 运行时设置比特率和设置数据率

两者似乎都不起作用。

有没有办法将比特率限制在一定范围内?任何帮助是极大的赞赏。

4

1 回答 1

0

如果您处理运动场景,4 Mbps 或许是一个合适的值。在非实时情况下,我认为您应该尝试将 Profile 配置为Level 5 的High,将 H264EntropyMode 设置为 CABAC 并扩展 MaxKeyFrameInterval 键的值。

于 2016-08-25T18:09:20.083 回答