2016-03-11 25 views
0

我开发了企业iOS应用程序。在我的应用程序中,我将Quickblox集成到视频通话中。如何提高我的quickblox聊天应用程序的视频质量?

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

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

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

有没有解决方案或例子?

回答

1

从QuickBlox文档:

视频编解码器:VP8 VS VP9 VS H264

H264是适用于iOS的最优选的视频编解码器。

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

VP9 for iOS只存在于开发环境中,webrtc没有稳定的版本,所以我们正在等待一个稳定的版本。

如果您确实支持iOS7,则应使用VP8,因为iOS7不支持H264硬件。

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

视频质量

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

  2. 视频质量取决于您使用的网络和您有多少个连接。

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

WebRTC具有自动缩放视频分辨率和质量的功能,以保持网络连接的活跃。

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

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

  2. 如果有些android设备不支持H264,那么会自动使用VP8。

  3. 如果呼叫者和被呼叫者都支持H264,那么将使用H264。

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

+0

感谢您的回答 – gstream79

0

借鉴Video Chat quality quickbox

你需要设置kQBVideoChatFrameQualityPresetvideoChatConfiguration

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); 
+0

嗨@Badal沙阿。 感谢您的回答。 这不适用于当前版本的QB SDK(2.5)。 – gstream79

相关问题