如何提高我的 quickblox 聊天应用程序的视频质量?
How to improve video quality of my quickblox chat app?
我正在开发企业 iOS 应用程序。在我的应用程序中,我正在集成 Quickblox 以进行视频通话。
据我所知,quickblox ios sdk 支持视频编解码器的 VP8、H264。
在android-ios(iOS-android)之间进行视频通话时,视频质量不错,但不是很好。
所以我要为我的视频通话应用程序添加 VP9。
有什么解决办法或者例子吗?
引用自Video Chat quality quickbox
您需要在 videoChatConfiguration,
中设置 kQBVideoChatFrameQualityPreset
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);
来自 QuickBlox 文档:
视频编解码器:VP8 vs VP9 vs H264
H264 是 iOS 的首选视频编解码器。
Chrome 在 50 版本中添加了对 H264 视频编解码器的支持。
iOS 的 VP9 仅在开发中存在,webrtc 没有稳定版本,因此我们正在等待稳定版本。
如果您支持 iOS7,则应使用 VP8,因为 iOS7 不支持 H264 硬件。
H264 是唯一一种具有硬件支持的 iOS 视频编解码器。
视频质量
视频质量取决于您使用的硬件。 iPhone 4s 将无法处理全高清渲染。但是iPhone6+会。
视频质量取决于您使用的网络和您拥有的连接数。
对于多人通话设置较低的视频质量。对于点对点通话,您可以设置更高的质量。
WebRTC 可以自动缩放视频分辨率和质量以保持网络连接活跃。
要获得最佳质量和性能,您应该使用 H264。
如果你支持iOS7,即使你设置了H264,WebRTC也会自动切换到VP8。
如果某些android设备不支持H264,那么会自动使用VP8。
如果主叫和被叫都支持H264,则使用H264。
http://quickblox.com/developers/Sample-webrtc-ios#Video_codecs:_VP8_vs_VP9_vs_H264
我正在开发企业 iOS 应用程序。在我的应用程序中,我正在集成 Quickblox 以进行视频通话。
据我所知,quickblox ios sdk 支持视频编解码器的 VP8、H264。
在android-ios(iOS-android)之间进行视频通话时,视频质量不错,但不是很好。
所以我要为我的视频通话应用程序添加 VP9。
有什么解决办法或者例子吗?
引用自Video Chat quality quickbox
您需要在 videoChatConfiguration,
中设置 kQBVideoChatFrameQualityPresetNSMutableDictionary *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);
来自 QuickBlox 文档:
视频编解码器:VP8 vs VP9 vs H264
H264 是 iOS 的首选视频编解码器。
Chrome 在 50 版本中添加了对 H264 视频编解码器的支持。
iOS 的 VP9 仅在开发中存在,webrtc 没有稳定版本,因此我们正在等待稳定版本。
如果您支持 iOS7,则应使用 VP8,因为 iOS7 不支持 H264 硬件。
H264 是唯一一种具有硬件支持的 iOS 视频编解码器。
视频质量
视频质量取决于您使用的硬件。 iPhone 4s 将无法处理全高清渲染。但是iPhone6+会。
视频质量取决于您使用的网络和您拥有的连接数。
对于多人通话设置较低的视频质量。对于点对点通话,您可以设置更高的质量。
WebRTC 可以自动缩放视频分辨率和质量以保持网络连接活跃。
要获得最佳质量和性能,您应该使用 H264。
如果你支持iOS7,即使你设置了H264,WebRTC也会自动切换到VP8。
如果某些android设备不支持H264,那么会自动使用VP8。
如果主叫和被叫都支持H264,则使用H264。
http://quickblox.com/developers/Sample-webrtc-ios#Video_codecs:_VP8_vs_VP9_vs_H264