Проблема с увеличением памяти для видеоконференцсвязи iOS WebRTC mesh

#ios #webrtc #conference #mesh-network #webrtc-ios

Вопрос:

введите описание изображения здесьПроблема: я работаю над конференц-звонком iOS WebRTC для 4 человек, и после запуска видеоконференции продолжительностью 5 или 6 минут объем памяти увеличивается, и все приложение зависает.

Сценарий: конференц-связь для 4 человек только для аудио или только для видео(без звука) работает нормально. но столкнулся с проблемой увеличения объема памяти при видеоконференции с 4 людьми.

Что мы делаем:

  1. Мы используем очень низкие скорости передачи и кадры, а также видеокодек по умолчанию.

Снимок экрана профилировщика:

Использование приведенной ниже конфигурации для 4 человек: Минимальная скорость передачи данных: 10000 Максимальная скорость передачи данных: 40000 Текущая скорость передачи данных: 20000

Мы используем самое низкое разрешение устройства с помощью:

  private func startCapturer(frontCamera:AVCaptureDevice, capturer:RTCCameraVideoCapturer) {
        let fps = 15
        let options = RTCCameraVideoCapturer.supportedFormats(for: frontCamera)
            var supportable = (options.sorted { (f1, f2) -> Bool in
                let width1 = CMVideoFormatDescriptionGetDimensions(f1.formatDescription).width
                let width2 = CMVideoFormatDescriptionGetDimensions(f2.formatDescription).width
                return width1 < width2
            }).first! 
        capturer.startCapture(with: frontCamera,
                              format: supportable,
                              fps: fps)
 

}

Ответ №1:

Пожалуйста, обратитесь к этим ссылкам для лучшего понимания:

Пользователи в WebRTC звонят

а для оценки эффективности, пожалуйста, следуйте документу:

Оценка эффективности для WebRTC

Комментарии:

1. Когда объем памяти увеличивается, мы получаем такие журналы, как:- [RTCCameraVideoCapturer captureOutput:didDropSampleBuffer:fromConnection:]): Отброшен буфер выборки. Причина: Нет буферов

2. Ссылка, по которой вы можете перейти для понимания журнала ошибок, который вы получаете: developer.apple.com/documentation/avfoundation/…

3. Есть ли способ, которым мы можем очистить этот буфер и управлять им.

4. Пожалуйста, следуйте соответствующим рекомендациям и инструкциям по этой ссылке: html5rocks.com/en/tutorials/webrtc/basics