#ios #webrtc #conference #mesh-network #webrtc-ios
Вопрос:
Проблема: я работаю над конференц-звонком iOS WebRTC для 4 человек, и после запуска видеоконференции продолжительностью 5 или 6 минут объем памяти увеличивается, и все приложение зависает.
Сценарий: конференц-связь для 4 человек только для аудио или только для видео(без звука) работает нормально. но столкнулся с проблемой увеличения объема памяти при видеоконференции с 4 людьми.
Что мы делаем:
- Мы используем очень низкие скорости передачи и кадры, а также видеокодек по умолчанию.
Снимок экрана профилировщика:
Использование приведенной ниже конфигурации для 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:
Пожалуйста, обратитесь к этим ссылкам для лучшего понимания:
а для оценки эффективности, пожалуйста, следуйте документу:
Комментарии:
1. Когда объем памяти увеличивается, мы получаем такие журналы, как:- [RTCCameraVideoCapturer captureOutput:didDropSampleBuffer:fromConnection:]): Отброшен буфер выборки. Причина: Нет буферов
2. Ссылка, по которой вы можете перейти для понимания журнала ошибок, который вы получаете: developer.apple.com/documentation/avfoundation/…
3. Есть ли способ, которым мы можем очистить этот буфер и управлять им.
4. Пожалуйста, следуйте соответствующим рекомендациям и инструкциям по этой ссылке: html5rocks.com/en/tutorials/webrtc/basics