【问题标题】:Can not create answer sdp between ios and android (mediatek)无法在 ios 和 android (mediatek) 之间创建 answer sdp
【发布时间】:2019-10-01 08:13:36
【问题描述】:

我正在使用 webRTC 在 android 和 ios 之间创建电话。

如果android设备芯片支持H264(Snapdragon,Exynos)一切正常,但在使用联发科的android设备上,Android端无法从iOS客户端看到答案SDP。

这是我的编解码器块代码

final PeerConnectionFactory.Options options = new PeerConnectionFactory.Options();
        final DefaultVideoEncoderFactory encoderFactory = new DefaultVideoEncoderFactory(eglBase.getEglBaseContext(), true, true);
        final DefaultVideoDecoderFactory decoderFactory = new DefaultVideoDecoderFactory(eglBase.getEglBaseContext());
        peerConnectionFactory = PeerConnectionFactory.builder().setOptions(options).
                setVideoDecoderFactory(decoderFactory).
                setVideoEncoderFactory(encoderFactory).
                createPeerConnectionFactory();

而且Android(联发科)的offer SDP没有a=rtpmap:100 H264/90000

 a=rtpmap:96 VP8/90000
    a=rtcp-fb:96 goog-remb
    a=rtcp-fb:96 transport-cc
    a=rtcp-fb:96 ccm fir
    a=rtcp-fb:96 nack
    a=rtcp-fb:96 nack pli
    a=rtpmap:97 rtx/90000
    a=fmtp:97 apt=96
    a=rtpmap:98 VP9/90000
    a=rtcp-fb:98 goog-remb
    a=rtcp-fb:98 transport-cc
    a=rtcp-fb:98 ccm fir
    a=rtcp-fb:98 nack
    a=rtcp-fb:98 nack pli
    a=rtpmap:99 rtx/90000
    a=fmtp:99 apt=98
    a=rtpmap:100 red/90000
    a=rtpmap:101 rtx/90000
    a=fmtp:101 apt=100
    a=rtpmap:127 ulpfec/90000

以前有人遇到过这个问题吗?有人对我的问题有什么建议吗?任何回应将不胜感激。

【问题讨论】:

  • 如果我没记错的话,Android 的 WebRTC 默认没有 H264 软件解码器。所以在联发科设备上,WebRTC 无法获取 H264 格式。你能检查一下iOS客户端提供的SDP吗?
  • 谢谢你,但我没有收到iOS端的SDP回答,这个问题可能是因为iOS端不适用于VP8/VP9。

标签: android ios webrtc sdp


【解决方案1】:

终于找到了解决办法,根本原因是WebRTC ObjC SDK默认会在没有软件视频编解码器(VP8/VP9)的情况下构建。

我的解决方案如下:https://groups.google.com/forum/#!topic/discuss-webrtc/WgQPxtnICTQ

希望这可以帮助任何面临此问题的人。

【讨论】:

    猜你喜欢
    • 2019-02-06
    • 2019-03-21
    • 1970-01-01
    • 2017-06-22
    • 1970-01-01
    • 2017-10-08
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    相关资源
    最近更新 更多