Android WebRTC 支持的编解码器

Android WebRTC supported codec

我刚刚在 google 上的一个帖子中看到,在使用 webrtc 时,荣耀和华为无法编码为 H264: https://groups.google.com/forum/#!searchin/discuss-webrtc/huawei$20h264%7Csort:date/discuss-webrtc/EA14U8FMT_k/Jn3CEG7YCQAJ

这是真的吗??? 这看起来很奇怪,我们不能那样做...

另外,我读了那个帖子是因为,我来这里是为了用三星而不是华为 P20 对我的流进行编码。 (使用华为创建的流保持 PV8 而不是我测试的其他设备是 H.264)

这是WebRTC中的代码,向不支持购买华为和荣耀的人证明:

final ArrayList<MediaCodecProperties> supported_codecs = new ArrayList<MediaCodecProperties>();
    supported_codecs.add(qcomH264HwProperties);
    supported_codecs.add(exynosH264HwProperties);
    if (PeerConnectionFactory.fieldTrialsFindFullName("WebRTC-MediaTekH264").equals("Enabled")) {
      supported_codecs.add(mediatekH264HwProperties);
    }
    return supported_codecs.toArray(new MediaCodecProperties[supported_codecs.size()]);
 }

如果需要,我可以添加我的代码片段。 感谢阅读。

是的,它很糟糕,如果您查看源代码 here(函数 isHardwareSupportedInCurrentSdkH264()),没有提到 hisilicon 只是 qualcomm exynos。

我看到有人在这个 issue 中解决了这个问题,只是在报价中强制使用 sdp,但它对我不起作用。

我不知道它是否会被修复,我想不会... 您可以切换到 vp8 编解码器,它具有 sw encode/decode 回退并且适用于华为设备。