如何在 Android webRTC 上启用 H264
Posted
技术标签:
【中文标题】如何在 Android webRTC 上启用 H264【英文标题】:How to enable H264 on Android webRTC 【发布时间】:2016-08-14 11:37:39 【问题描述】:如何在 android WebRTC 上启用 H264。PeerConnection
到 createOffer
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 WebView 和 webrtc hello world 示例