Понимание того, как создать правильный sdp для предложения / ответа (webrtc) между Android / Iphone - PullRequest
0 голосов
/ 31 августа 2018

Я изо всех сил пытаюсь понять правильный способ сделать правильный ответ предложения, когда сигнализация между Iphone и телефоном Android. Из-за разных кодеков Iphone setRemoteDescription не работает. Как известно андроид не принимает H264.

(Не удалось установить параметры отправки описания удаленного видео)

Между android / android все работает нормально, потому что оба телефона имеют одинаковые кодеки VP8 / 9. Но в моем случае IOS отправляет на Android SDP предложение только с кодеком H264. По-видимому, это проблема. Несмотря на это, android устанавливает remotedescription, а afterher создает ответ с sdp без информации о кодеке VP8 / 9. Этот ответ SDP устанавливает Iphone с вышеупомянутой ошибкой. Поэтому я спрашиваю, почему в Android-ответе sdp нет линии с VP8 / 9 или любым кодеком. Вы можете увидеть предложения и ответить на sdps в этом вопросе ( предложить и ответить 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 предлагает и ответы не меняются. Так в чем же проблема и как я могу создать правильный sdp для android / Ios, чтобы setremotedescription не показывало ошибку.

У меня есть приложение для Android, использующее libjingle с 2015 года, и для приложения IOS модуль GoogleWebRTC от 2018.

Ответы [ 2 ]

0 голосов
/ 24 мая 2019

Я думаю, что это проблема версии Google-webrtc. но я не знаю почему. Вы не должны использовать org.webrtc: google-webrtc: 1.0. +. Вы можете попробовать правильную версию, например 'org.webrtc: google-webrtc: 1.0.24277'

0 голосов
/ 01 сентября 2018

Вы можете попробовать

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

Я использую https://cocoapods.org/pods/GoogleWebRTC в IOS. Это сработало для меня при звонке с Android 4.x, тип видео - VP8, а при звонке с IOS - H264. Надеюсь на вас

...