0

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

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

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

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

有什么解决方案或例子吗?

4

2 回答 2

1

来自 QuickBlox 文档:

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

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

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

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

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

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

视频质量

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

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

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

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

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

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

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

  3. 如果调用方和被调用方都支持 H264,则将使用 H264。

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

于 2016-03-14T09:13:31.253 回答
0

来自视频聊天质量快速箱的参考

您需要在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);
于 2016-03-11T17:22:20.787 回答