当信号在 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-推荐答案 strong>
你可以试试
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/
|