当Iphone和Android手机之间发出信号时,我正在努力理解正确提供答案的方法。由于不同的编解码器,Iphone setRemoteDescription失败了。众所周知,android不接受H264。
(无法设置远程视频描述发送参数)
在android / android之间一切正常,因为两款手机都有相同的VP8 / 9编解码器。但在我的情况下,IOS只使用H264编解码器向android sdp发送。所以很明显这就是问题所在。尽管android正在设置remotedescription,而afterher使用sdp创建答案而没有VP8 / 9编解码器信息。这个答案sdp正在设置Iphone上面提到的错误。所以我问为什么在android中回答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不显示错误。
我有Android应用程序使用2015年的libjingle和IOS应用程序GoogleWebRTC pod从2018年。
你可以试试
let decoderFactory = RTCDefaultVideoDecoderFactory()
let encoderFactory = RTCDefaultVideoEncoderFactory()
factory = RTCPeerConnectionFactory(encoderFactory: encoderFactory, decoderFactory: decoderFactory)
我在IOS中使用https://cocoapods.org/pods/GoogleWebRTC。当使用Android 4.x拨打电话时,这对我有用,视频类型为VP8,当与IOS视频通话时为H264。希望你
我认为这是google-webrtc版本的问题。但我不知道为什么。你不应该使用'org.webrtc:google-webrtc:1.0。+'。你可以试试一个合适的版本,比如'org.webrtc:google-webrtc:1.0.24277'