DEV Community

Cover image for Introducing Daily Adaptive HEVC for iOS native video
Tasha for Daily

Posted on • Edited on • Originally published at daily.co

Introducing Daily Adaptive HEVC for iOS native video

By Jonathan Taylor
Watch Jon's explainer video

Daily Adaptive HEVC is designed to deliver unparalleled video quality on a wider range of real-work networks by adopting HEVC codec support, resulting in smoother playback that consumes less bandwidth and power.

Introducing Daily Adaptive HEVC

As part of our commitment to supporting higher quality video on more devices and networks, we’re excited to announce Daily Adaptive HEVC – an industry-first implementation providing all the benefits of HEVC while preserving essential cross-platform support. With this feature, developers building native mobile applications can extend HEVC capabilities to iOS users, without sacrificing support for others.

Daily Adaptive HEVC architecture diagram

Daily Adaptive HEVC works by encoding both H.265 and H.264 together, with the latter serving as a reliable fallback for scenarios where HEVC is not available. It utilizes device hardware acceleration and granularly optimized encoder settings to provide parallel video streams that look great, but use less device power and bandwidth.

With Daily Adaptive HEVC, you can:

  • Build better mobile-centric interactive live streaming apps, such as live commerce or creator studio experiences, that deliver higher quality video across real-time, HLS or RTMP use cases.
  • Enable creators on your apps to produce better recorded content that breaks free of the typical video-conference look, entering the realm of high-value video production.
  • Provide enhanced, resource efficient experiences for your iOS user base, unlocking use cases that would typical bottleneck network or CPU.

Let’s delve deeper into how this release empowers mobile-focused developers. We'll explore the myriad benefits of the HEVC codec and how our implementation lets developers harness its potential right away.

What is HEVC / H.265?

HEVC (High Efficiency Video Codec), also known as H.265, is a video encoding standard that capitalizes on advanced compression methods. This leads to optimized utilization of system and network resources, proving to be a boon for developers working on real-time video, streaming, or recording capabilities within their apps. With HEVC, developers can provide superior quality video at significantly reduced bitrates.

In real-world terms, developers often find themselves tuning encoder settings to cater to a vast range of connectivity scenarios, which may include slower home broadband or varying mobile networks. Today’s viewers have grown accustomed to expecting high-definition video content, thus creating a complex balancing act between maintaining quality and supporting those on slower networks.

HEVC stands out by offering equal or better quality at less bandwidth compared to earlier-generation codecs (such as H.264 or VP8). To put it into perspective, these older codecs can require up to 3Mbps of upload bandwidth to achieve satisfactory quality at 720p. HEVC delivers excellent video quality at 1Mbps.

This highlights HEVC as a powerful tool for developers to hit an equivalent quality target while using significantly less bandwidth for both sender and receiver.. This highlights the potential of HEVC as a powerful tool for developers to reach an equivalent perceived quality of video using significantly less upstream bandwidth. With HEVC, developers can make less concessions when supporting creators across a wide range of real-world networks.

So, why hasn't HEVC become the go-to codec for video API providers? Regrettably, its support isn't universal. There is fierce competition among hardware vendors, with major players like Apple endorsing HEVC, while Google backs VP9 (the successor to VP8). Consequently, cross-platform support remains ambiguous, with its adoption primarily seen in the iOS ecosystem, and soon, Safari. Apps targeting viewers across other platforms such as Android or web-based Chrome face a significant blocker - there's no assurance that users would be capable of rendering and viewing video encoded in HEVC.

Daily Adaptive HEVC, with its unified codec approach, removes this blocker. It allows developers to provide all the benefits of the HEVC codec on devices that support it whilst still retaining great looking video for everyone else.

What about AV1?

Alongside HEVC, another codec garnering a lot of attention is AV1. Given its royalty-free licensing and impressive performance gains, AV1 is likely to gain more usage as the ecosystem around it matures. Daily can do AV1 encoding and decoding, but today we don’t recommend using AV1 because it requires hardware support to be a practical choice for real-time video. There are not yet many devices that have AV1 hardware, but that's starting to change. As always, if you have questions about AV1 or a specific use case that would benefit from using AV1 reach out to our engineering support team.

Whilst the future is bright for better cross-platform mobile video, Daily Adaptive HEVC provides your iOS users all the aforementioned benefits today.

Getting started

Using Daily Adaptive HEVC is as simple as adding one configuration property to your client code:

callClient.updatePublishing(.set(
    camera: .set(
        isPublishing: .set(true),
        sendSettings: .set(
            maxQuality: .set(.high),
            encodings: .set(.mode(.iOSOptimized))
        )
    )
))
Enter fullscreen mode Exit fullscreen mode

With this in place, your app will shift from rendering two VP8-encoded simulcast layers to a combination of the following:

Sender:
H.265 at 1Mbps, 30fps & H.264 at 400Kbps, 30fps

Receiver:
H.265 at 1Mbps, 30fps & H.264 at 400Kbps, 30fps which is automatically adapted to a minimum of 200Kbps, 15fps with bad network conditions.

We’ve been heavily testing and optimizing the default encoder configuration across a variety of different use cases, so you can build with confidence knowing that your app’s video looks and performs better.

We suggest trying this feature out yourself, and have released a starter kit app to support you in doing so, built with Daily’s Client SDK for iOS.

Daily is committed to adopting technology innovations that provide a smooth developer experience for building high-quality video applications. We’re always keen to hear more about what developers are excited to work with. Please reach out, or head over to peerConnection, our WebRTC community, to share your thoughts or feedback with us.

Top comments (0)