如何在 Android webRTC 上启用 H264

Posted

技术标签:

【中文标题】如何在 Android webRTC 上启用 H264【英文标题】:How to enable H264 on Android webRTC 【发布时间】:2016-08-14 11:37:39 【问题描述】:

如何在 android WebRTC 上启用 H264。PeerConnectioncreateOffer SDP 中没有 h264 描述。

【问题讨论】:

【参考方案1】:

出于某种原因,默认情况下 Google 会阻止他们自己的软件编解码器,因此如果您的芯片组中没有硬件解码(或者如果您使用模拟器),那么当 webrtc 检查它们时,您将不会获得 h264 编解码器。

如果您进入 webrtc 代码并从 https://chromium.googlesource.com/external/webrtc/+/HEAD/sdk/android/src/java/org/webrtc/MediaCodecUtils.java#33 中删除“OMX.google”,然后根据该代码为 android 创建自定义构建的 webrtc,软件编码器将被解锁。

编辑:删除了我错误地认为可以链接到的专有信息 ?

【讨论】:

嘿,保罗,我正在使用你的 aar 文件,但我的应用程序仍然抛出以下错误,你能帮我找到根本原因吗? E/ACodec: [OMX.MTK.VIDEO.DECODER.VPX] ERROR(0x80001005) E/ACodec: signalError(omxError 0x80001005, internalError -2147483648) E/MediaCodec: Codec 报告错误 0x80001005, actionCode 0, while in state 6 E/ org.webrtc.Logging:AndroidVideoDecoder:deliverDecodedFrame 失败 当然,您要播放什么类型的视频?您使用的是什么类型的设备?我的直觉是 OMX.MTK.VIDEO.DECODER.VPX 告诉我们这是 VPX 编码视频,而不是 h264?【参考方案2】:

Google 当前的 WebRTC 实施仅支持 Android 上的硬件 H.264 解码和编码,并且仅支持部分芯片组。因此,如果特定设备不支持硬件 H.264 或具有不受支持的芯片组,您将只能获得 VP8/VP9。

【讨论】:

请在下面查看我的答案,我已经能够为此创建一个解决方法。【参考方案3】:

H.264 在 Android M57 上的 Chrome 中与 WebRTC 配合使用。

【讨论】:

以上是关于如何在 Android webRTC 上启用 H264的主要内容,如果未能解决你的问题,请参考以下文章

如何在 android 上播放 webrtc.AudioTrack(无视频)

如何正确地在android上计算webrtc

Android WebView 和 webrtc hello world 示例

如何在 Spring Boot 中启用 H2 数据库服务器模式

如何在 Spring Boot 库中启用 H2 控制台?

如何使用 Gluon 在 Android 平台上将 H2 数据库连接为嵌入式模式?