WebRTC (iOS): локальное видео не получает поток на удаленной стороне

Я пытаюсь создать приложение с аудио, видеозвонком с помощью WebRTC.

удаленное видео и аудио работают правильно в моем приложении, но мой локальный поток не отображается на стороне клиента.

вот что я написал, чтобы добавить видеодорожку

let videoSource = self.rtcPeerFactory.videoSource()
let videoCapturer = RTCCameraVideoCapturer(delegate: videoSource)

guard let frontCamera = (RTCCameraVideoCapturer.captureDevices().first { $0.position == .front }),

    // choose highest res
    let format = (RTCCameraVideoCapturer.supportedFormats(for: frontCamera).sorted { (f1, f2) -> Bool in
        let width1 = CMVideoFormatDescriptionGetDimensions(f1.formatDescription).width
        let width2 = CMVideoFormatDescriptionGetDimensions(f2.formatDescription).width
        return width1 < width2
    }).last,

    // choose highest fps
    let fps = (format.videoSupportedFrameRateRanges.sorted { return $0.maxFrameRate < $1.maxFrameRate }.last) else {
        print(.error, "Error in createLocalVideoTrack")
        return nil
}

videoCapturer.startCapture(with: frontCamera,
                           format: format,
                           fps: Int(fps.maxFrameRate))


self.callManagerDelegate?.didAddLocalVideoTrack(videoTrack: videoCapturer)
let videoTrack = self.rtcPeerFactory.videoTrack(with: videoSource, trackId:  K.CONSTANT.VIDEO_TRACK_ID)

и это для добавления звуковой дорожки

let constraints: RTCMediaConstraints = RTCMediaConstraints.init(mandatoryConstraints: [:], optionalConstraints: nil)

let audioSource: RTCAudioSource = self.rtcPeerFactory.audioSource(with: constraints)
let audioTrack: RTCAudioTrack = self.rtcPeerFactory.audioTrack(with: audioSource, trackId: K.CONSTANT.AUDIO_TRACK_ID)

мой полный журнал webRTC прикреплен здесь.

некоторые журналы, которые я получаю (я думаю, что это что-то не так)

(thread.cc:303): Waiting for the thread to join, but blocking calls have been disallowed
(basic_port_allocator.cc:1035): Port[31aba00:0:1:0:relay:Net[ipsec4:2405:204:8888:x:x:x:x:x/64:VPN/Unknown:id=2]]: Port encountered error while gathering candidates.

...

(basic_port_allocator.cc:1017): Port[38d7400:audio:1:0:local:Net[en0:192.168.1.x/24:Wifi:id=1]]: Port completed gathering candidates.
(basic_port_allocator.cc:1035): Port[3902c00:video:1:0:relay:Net[ipsec5:2405:204:8888:x:x:x:x:x/64:VPN/Unknown:id=3]]: Port encountered error while gathering candidates.

person Akash Soni    schedule 27.05.2019    source источник
comment
Голосование вверх, потому что это отличный пример того, как получить максимальное поддерживаемое разрешение.   -  person Arik Segal    schedule 09.06.2020
comment
@ArikSegal 'didAddLocalVideoTrack' - что делает этот метод.   -  person Karthick Ramesh    schedule 12.02.2021
comment
@KarthickRamesh Этот вопрос следует адресовать Акаш Сони   -  person Arik Segal    schedule 14.02.2021


Ответы (1)


наконец, найдите решение, которое было связано с протоколом TCP на сервере TURN.

person Akash Soni    schedule 03.06.2019
comment
привет, тогда как вы это решаете? Можете ли вы дать мне решение, моя проблема в том, что я не могу отправить локальное видео на сервер, но получить удаленное видео в порядке - person famfamfam; 02.07.2020
comment
не могли бы вы объяснить решение подробнее, пожалуйста, спасибо - person Thelouras; 11.09.2020