sud*_*sti 2 android android-mediacodec
全部,
我正在使用 MediaCodec 类生成视频/avc 视频流。流编码很好,但是,我想使用 B 帧以获得更好的压缩。虽然我已将配置文件设置为 AVCProfileHigh 编码器不会生成 B 帧。视频流只有 I 帧和 P 帧。
以下是媒体配置文件配置。
mFormat.setInteger(MediaFormat.KEY_PROFILE, MediaCodecInfo.CodecProfileLevel.AVCProfileHigh);
MediaCoder 支持 B 帧吗?如果是,则锄头配置 B 帧。
这取决于设备。Android O 和 P 短暂地为 AVC High profile 编码自动启用了 B 帧,但许多应用程序开始崩溃,因为它们没有预料到帧乱序,因此它在启动后不久就被禁用了。此外,MediaMuxer 在某些带有 B 帧的压力流上也会失败(例如,如果 B 帧从未来超过 1 秒的帧引用回来)。这在 Android Q 中已得到修复,但反向引用仍限制为 30 分钟。
从技术上讲,应用程序可以选择使用 MediaFormat.KEY_OUTPUT_REORDER_DEPTH 格式键获取 B 帧(设置高配置文件后),但设备不需要对此支持,并且未连接到 AOSP 中。
| 归档时间: |
|
| 查看次数: |
1545 次 |
| 最近记录: |