OGeek|极客世界-中国程序员成长平台

标题: android - 了解如何在 android/Iphone 之间为 offer/answer (webrtc) 生成正确的 sdp [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 20:30
标题: android - 了解如何在 android/Iphone 之间为 offer/answer (webrtc) 生成正确的 sdp

当信号在 Iphone 和 android 手机之间时,我很难理解正确的方法来做出正确的报价答案。由于不同的编解码器 Iphone setRemoteDescription 失败。众所周知,android 不接受 H264。

(Failed to set remote video description send parameters)

android/android 之间都可以正常工作,因为两部手机都有相同的 VP8/9 编解码器。但在我的情况下,IOS 仅使用 H264 编解码器发送到 android sdp 报价。看来这就是问题所在。尽管 android 正在设置 remotedescription 并且在没有 VP8/9 编解码器信息的情况下使用 sdp 创建答案。这个答案 sdp 正在将 Iphone 设置为上述错误。所以我问为什么在 android answer sdp 不符合 VP8/9 或任何编解码器。 您可以在此问题中查看优惠和回答 sdps ( offer and answer sdp )。 所以我尝试按照以下方式初始化 PeerconnectionFactory

    let decoderFactory = RTCDefaultVideoDecoderFactory.init()
    let encoderFactory = RTCDefaultVideoEncoderFactory.init()
    let videoCodedInfo = RTCVideoCodecInfo.init(name: kRTCVideoCodecVp8Name )
    encoderFactory.preferredCodec = videoCodedInfo        
    let connectionFactory = RTCPeerConnectionFactory.init(encoderFactory: encoderFactory, decoderFactory: decoderFactory)

但即使我使用这样的初始化 sdp 提供和答案也不会改变。那么问题出在哪里以及如何为 android/Ios 创建正确的 sdp,这样 setremotedescription 就不会显示错误。

我从 2015 年开始使用 libjingle 的 android 应用,从 2018 年开始使用 IOS 应用 GoogleWebRTC pod。



Best Answer-推荐答案


你可以试试

let decoderFactory = RTCDefaultVideoDecoderFactory()
let encoderFactory = RTCDefaultVideoEncoderFactory()
factory = RTCPeerConnectionFactory(encoderFactory: encoderFactory, decoderFactory: decoderFactory)

我使用 https://cocoapods.org/pods/GoogleWebRTC在IOS中。 当使用 Android 4.x 通话时,这对我有用,视频类型为 VP8,而使用 IOS 视频通话时为 H264。 期待你

关于android - 了解如何在 android/Iphone 之间为 offer/answer (webrtc) 生成正确的 sdp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52121715/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4