Как улучшить качество видео моего приложения для чата quickblox?
Я занимаюсь разработкой корпоративного приложения для iOS. В моем приложении я интегрирую Quickblox для видеозвонков.
Как я знаю, quickblox ios sdk поддерживает VP8, H264 для видеокодека.
Качество видео хорошее, но не очень хорошее, когда вы делаете видеозвонок между android-ios (iOS-android).
Поэтому я собираюсь добавить VP9 для моего приложения для видеовызовов.
Есть ли решение или пример?
2 ответа
Из документации QuickBlox:
Видеокодеки: VP8 против VP9 против H264
H264 является наиболее предпочтительным видеокодеком для iOS.
В Chrome добавлена поддержка видеокодека H264 в 50 ревизии.
VP9 для iOS существует только в разработке, и у webrtc нет стабильной версии, поэтому мы ждем стабильной.
VP8 следует использовать, если вы поддерживаете iOS 7, потому что iOS7 не имеет аппаратной поддержки H264.
H264 - единственный видеокодек для iOS, имеющий аппаратную поддержку.
Качество видео
Качество видео зависит от используемого вами оборудования. iPhone 4s не будет обрабатывать рендеринг FullHD. Но iPhone 6+ будет.
Качество видео зависит от используемой сети и количества подключений.
Для мульти-звонков установите более низкое качество видео. Для одноранговых вызовов вы можете установить более высокое качество.
WebRTC имеет автоматическое масштабирование разрешения и качества видео, чтобы поддерживать активное сетевое соединение.
Чтобы получить лучшее качество и производительность, вы должны использовать H264.
Если вы поддерживаете iOS 7, WebRTC автоматически переключается на VP8, даже если вы установили H264.
Если некоторые устройства Android не поддерживают H264, то автоматически будет использоваться VP8.
Если и вызывающий, и вызываемый имеют поддержку H264, то будет использоваться H264.
Ссылка из видео чата quickbox
вам нужно установить kQBVideoChatFrameQualityPreset в videoChatConfiguration,
NSMutableDictionary *videoChatConfiguration = [[QBSettings videoChatConfiguration] mutableCopy]; [videoChatConfiguration setObject:@20 forKey:kQBVideoChatCallTimeout]; [videoChatConfiguration setObject:@10 forKey:kQBVideoChatVideoFramesPerSecond]; // config video quality here [videoChatConfiguration setObject:AVCaptureSessionPresetMedium forKey:kQBVideoChatFrameQualityPreset]; [QBSettings setVideoChatConfiguration:videoChatConfiguration];
Доступная опция
//achieve high quality video and audio output.defaultvalue. AVF_EXPORT NSString *const AVCaptureSessionPresetHigh NS_AVAILABLE(10_7, 4_0); //achieve output video and audio bitrates suitable for sharing over WiFi. AVF_EXPORT NSString *const AVCaptureSessionPresetMedium NS_AVAILABLE(10_7, 4_0); //achieve output video and audio bitrates suitable for sharing over 3G. AVF_EXPORT NSString *const AVCaptureSessionPresetLow NS_AVAILABLE(10_7, 4_0);