【问题标题】:How to improve video quality of my quickblox chat app?如何提高我的 quickblox 聊天应用程序的视频质量?
【发布时间】:2016-03-11 17:08:07
【问题描述】:

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

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

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

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

有什么解决办法或例子吗?

【问题讨论】:

    标签: ios quickblox vp8 vp9


    【解决方案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

    【讨论】:

    • 感谢您的回答
    【解决方案2】:

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

    【讨论】:

    • 嗨@Badal Shah。感谢您的回答。这不适用于当前版本的 QB SDK (2.5)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    相关资源
    最近更新 更多