13赞
917
当前位置:  开发笔记 > 编程语言 > 正文

为什么WebRTC仅在Chrome中支持H264,而在某些设备的本机应用程序中不支持

如何解决《为什么WebRTC仅在Chrome中支持H264,而在某些设备的本机应用程序中不支持》经验,为你挑选了1个好方法。

我使用官方示例在Android Chrome中创建商品SDP,我们发现a=rtpmap:100 H264/90000这意味着它可以支持H264。

但是,如果我构建AppRTC(官方Android示例)并使用 正式的预构建库版本1.0.25821,则调用createOffer然后在中接收SDP SdpObserver::onCreateSuccess,则该SDP 包含H264。

我的测试设备是Oppo R15(带有MTK Helio P60,Android 8.1)。

那么,为什么WebRTC仅在Chrome中支持H264,而在某些Android设备上不支持本机应用程序?



1> yumoji..:

Chrome版本使用openh264,而常规** WebRTC则不使用。我通常所说的是,您可能会使用chrome版本的h.264编码器软件,但我不建议这样做。

在Android WebRTC上,仅在以下情况下支持H.264

    设备硬件支持它,并且

    WebRTC硬件编码器粘合逻辑支持该硬件编码器。当前仅支持QCOMEXYNOS设备。因此,即使任何其他设备支持h.264 HW编码器,也不会被使用,也不会作为编解码器工厂的一部分被添加,并且您不会在从WebRTC示例应用程序生成的SDP中看到。

在Java级别,您可以看到在HardwareVideoEncoderFactory.java其中检查功能的QCOM和EXYNOS设备isHardwareSupportedInCurrentSdkH264

有趣的是,如果您使用的是本机代码,则甚至不支持QCOM和EXYNOS硬件编码器(Webrtc问题跟踪器中已记录了错误)。这是由于HW编码代码与JNI代码的紧密集成-绝对不是一个好的模块化代码。

推荐阅读
devbox
peanapple007
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有 京ICP备19059560号-4