Transcoding to AV1

Could we add support for AV1 transcoding? It would offer tremendous savings on bandwidth when streaming remotely. Most people would be happy with 1Mbps.

My cmd line looks like

-c:v libsvtav1 -preset 8 -g 240 -svtav1-params lp=6 -b:v 1024k

and transcoding a 1080p24 video shows speed=4.2x

CPU load on M4 Mini - 1000% as all CPUs are used.

EDIT: Preset 12 gives speed=13.5x which means the machine could support that many live stream encoding sessions at once.

1 Like

And what clients support AV1? Very few do at this time. Most are software based and would eat way more power on the client side to decode if not hardware supported.

Last time this question came up, the devs said something to the effect that that codec is too new, not widely supported and not something they plan to implement anytime soon.

Add to that the fact there are currently issues even with H.265 transcoding.
And not everyone has a Mac M4 Mini to dedicate to transcoding :grinning:

The issues with H.265 are caused by incompatible hardware. This is a software solution. It just needs a modified set of arguments when calling ffmpeg. Even an older Beelink with i5-8259U CPU can keep up with 720p50.. Here is a Beelink transcoding at 3.36x, preset 12

Svt[info]: SVT [version]:       SVT-AV1 Encoder Lib v1.4.1
Svt[info]: SVT [build]  :       GCC 12.2.0       64 bit
Svt[info]: -------------------------------------------
Svt[info]: Number of logical cores available: 4
Svt[info]: Number of PPCS 54
Svt[info]: [asm level on system : up to avx2]
Svt[info]: [asm level selected : up to avx2]
Svt[info]: -------------------------------------------
Svt[info]: SVT [config]: main profile   tier (auto)     level (auto)
Svt[info]: SVT [config]: width / height / fps numerator / fps denominator               : 1280 / 720 / 50 / 1
Svt[info]: SVT [config]: bit-depth / color format                                       : 8 / YUV420
Svt[info]: SVT [config]: preset / tune / pred struct                                    : 12 / PSNR / random access
Svt[info]: SVT [config]: gop size / mini-gop size / key-frame type                      : 240 / 16 / key frame
Svt[info]: SVT [config]: BRC mode / target bitrate (kbps)                               : VBR / 1024
Svt[info]: -------------------------------------------
Output #0, webm, to '“The Settlers” (2025) — full documentary.webm':
  Stream #0:0: Video: av1, yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 1024 kb/s, 50 fps, 1k tbn (default)
    Metadata:
      encoder         : Lavc libsvtav1
    Side data:
      cpb: bitrate max/min/avg: 0/0/1024000 buffer size: 1024000 vbv_delay: N/A
  Stream #0:1: Audio: opus, 48000 Hz, stereo, flt, 48 kb/s (default)
    Metadata:
      encoder         : Lavc libopus
frame=11335 fps=181 q=42.0 size=   28672kB time=00:03:46.77 bitrate=1035.7kbits/s speed=3.63x

Even Beelink with Celeron(R) J4125 CPU @ 2.00GHz does the same video 540p50 speed 1.5x on preset 12 at 512kbps

1 Like

AppleTV which is what matters most.

Not natively it doesn’t. I believe it’s only supported natively in the YouTube app that developers mentioned that previously.

I’ve tried a AV1 files and get a lot of dropped frames both in channels as well as infuse pro especially for 4K videos I don’t think the hardware is quite there yet. Maybe with the next gen of Apple TV it will improve.

4k AV1 is too much for AppleTV for now, but we are talking about 1080p at most.

1 Like

AV1 is not natively decoded in hardware on Apple TV and it’s rare in other devices.

Additionally, the only GPUs that encode AV1 are gamer level GPUs released in the last 4 or so years.

In your example, your CPU is at 1000%, that’s not efficient use of resources.

CPU only encoding and decoding is why we haven’t bothered to support AV1 at this time.

While encoding at 13x speed. Real time encoding will require 13x fewer resources so the expected load will be less than 80%. That's less than a single core.

1 Like

I'd be for this. JF already has this. While the codec is still kinda young, it's gonna be used A LOT more often in the future due to its efficiency in space saving. You can get good quality from a 100 MB av1 file that has a 20 min show.

1 Like

Sad, truly sad. We have all kinds of settings check boxes under advanced that AV1 encoding would fit right in. I would certainly use this feature frequently as some of my camping spots have trash LTE download speeds. I could care less about efficiency of resources concerning my server cpu in these situations.

1 Like

Does seem like a good "Experimental" option when the Channels devs have some spare time. Curious, is H.265 hardware encoding still not prevalent enough to make it the standard? I would expect we're approaching a time when that could become the primary method, with something like AV1 moved to it's experimental slot.

3 Likes