androidiosquickbloxquickblox-android

How to get best video quality with Quickblox?


I m integrating quickblox to my enterprise app. (iOS & android).

When made video call between same OS (android-android, iOS-iOS), video quality is looks good.

But not so good between different OS (iOS-android, android-iOS).

Is there any solution ?


Solution

  • Video codecs: VP8 vs VP9 vs H264

    H264 is the most preferred video codec for iOS.

    Chrome added support for H264 video codec in 50 revision.

    VP9 for iOS exists only in development and webrtc doesn't have a stable version, so we are waiting for a stable one.

    VP8 should be used if you do support iOS7 because iOS7 does not have H264 hardware support.

    H264 is the only one video codec for iOS that has hardware support.

    Video quality

    1. Video quality depends on hardware you use. iPhone 4s will not handle FullHD rendering. But iPhone 6+ will.

    2. Video quality depends on network you use and how many connections you have.

    For multi-calls set lower video quality. For peer-to-peer calls you can set higher quality.

    WebRTC has auto scaling of video resolution and quality to keep network connection active.

    To get best quality and performance you should use H264.

    1. If you do support iOS 7, then WebRTC automatically switches to VP8 even if you set H264.

    2. If some android devices do not support H264, then automatically VP8 will be used.

    3. If both caller and callee have H264 support, then H264 will be used.

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