如何提高我的quickblox聊天应用程序的视频质量?

时间:2016-03-11 17:08:08

标签: ios quickblox vp8 vp9

我正在开发企业iOS应用。在我的应用程序中,我正在集成Quickblox进行视频通话。

据我所知,quickblox ios sdk支持视频编解码器的VP8,H264。

在android-ios(iOS-android)之间进行视频通话时,视频质量不错,但不是很好。

所以我要为我的视频通话应用添加VP9。

有任何解决方案或示例吗?

2 个答案:

答案 0 :(得分:1)

来自QuickBlox文档:

视频编解码器:VP8与VP9对比H264

H264是iOS最受欢迎的视频编解码器。

Chrome在50版本中添加了对H264视频编解码器的支持。

iOS版VP9仅存在于开发阶段且webrtc没有稳定版本,因此我们正在等待稳定版本。

如果您支持iOS7,则应使用VP8,因为iOS7没有H264硬件支持。

H264是唯一一款支持硬件的iOS视频编解码器。

视频质量

  1. 视频质量取决于您使用的硬件。 iPhone 4s无法处理FullHD渲染。但iPhone 6+会。

  2. 视频质量取决于您使用的网络以及您拥有的连接数。

  3. 对于多通话设置较低的视频质量。对于点对点呼叫,您可以设置更高的质量。

    WebRTC可自动调整视频分辨率和质量,以保持网络连接的正常运行。

    为了获得最佳质量和性能,您应该使用H264。

    1. 如果您支持iOS 7,即使您设置了H264,WebRTC也会自动切换到VP8。

    2. 如果某些Android设备不支持H264,则会自动使用VP8。

    3. 如果来电者和被叫者都有H264支持,则会使用H264。

    4. http://quickblox.com/developers/Sample-webrtc-ios#Video_codecs:_VP8_vs_VP9_vs_H264

答案 1 :(得分:0)

来自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);