大量(尽管不是全部)Android设备支持H.264视频编解码器的硬件加速,但不支持VP8 / VP9编解码器。为了提供更高质量的用户体验,我们希望尽可能选择硬件加速的编解码器。因此,希望运行时检测特定设备是否具有H.264硬件加速支持,并且基于此将设置在SDP中用于webRTC对等连接的会话协商的特定编解码器。即,如果硬件支持H.264,则将其设置为优先级较高的编解码器而不是VP8 / VP9。对此的任何想法将不胜感激。
答案 0 :(得分:7)
使用MediaCodecList API迭代可用的编码器和解码器。名称以OMX.google.
开头的编码器是SW编解码器 - 任何其他编解码器都可以或多或少地被假定为HW编解码器。最简单的可能是使用findEncoderForFormat
(和findDecoderForFormat
)并查看返回的名称。如果您需要更多细节,可以手动遍历列表。
答案 1 :(得分:1)
根据Justin Uberti的评论here,如果设备上有硬编码器,您将 在Android WebRTC中获得H.264。因此,您可以简单地将WebRTC设置为更喜欢H.264 - 如果有HW编码器,则将使用HW H.264。如果没有,那么它是VP8 / VP9。