/r/AV1

Photograph via //r/AV1

Subreddit for AV1 video codec

Subreddit for AV1 video codec

What is AV1?

r/AV1 Discord server - for enthusiasts

AV1 for Dummies Discord server - experts helping newcomers

IRC channel for SVT encoder

Codec Wiki - a beginner's guide to encoding

Related subreddits:

AOMedia, all things related to Open Alliance Media group, responsible for AV1 codec creation.

Webm, for posting your encoded content in webm container.

VP9, subreddit for all things related to VP9 encoder.

HEVC, subreddit for all things related to h.265 encoder.

Opus, most efficient audio codec currently available.

/r/AV1

10,615 Subscribers

2

SVT-AV1 introducing horrible artifacts when using presets lower than 10

Hi!

Just as for proof of concept, I have (successfully) managed to compile SVT-AV1 on a SoC (Raspberry Pi). Of course, I'm aware that this very weak CPU will allow only for really-really turtle-slow encodings, BUT it did compile. I do, however, experience nasty blocking artifacts when using any --preset under 10. Why is this? I have a wild guess that it's something about me using a x32 OS on the Raspberry, and SVTAV1 not having official support for x32 CPUs? Because, using the exact same revision/build, I don't get the same artifacts on a x64 system. Using --preset 10 (and above) yield nice results. Only the files produced with SvtAv1EncApp on the Raspberry is affected. Could someone with experience please shed some light over this mystery? Kind Regards / G.

4 Comments
2025/02/03
11:22 UTC

9

Av1 film grain

Hello everyone. Do you know what configuration I can use with the AV1 codec for black and white movies with film grain in handbrake? Thanks in advance.

6 Comments
2025/02/01
15:00 UTC

2

ffmpeg and av1_nvenc issue

I can compress most TV shows nicely using ffmpeg and av1_nvenc. But in a few cases (maybe 5% of files) I get bad output. The audio plays fine but the video is all black with VLC. The same source files compress nicely with ffmpeg and libsvtav1.

Anyone seen this before and have a clue about what's going wrong?

2 Comments
2025/01/31
18:21 UTC

2

AV1 recordings not showing HDR on YouTube

It’s possible to make HDR AV1 recordings made with nvidia overlay work on YouTube? Since my video is not showing HDR when uploaded. It’s fine when I use HEVC

0 Comments
2025/01/31
04:53 UTC

12

SVT-AV1 v2.3 Available

Our Software Implementation Working Group (SIWG) announced the release of SVT-AV1 v2.3, the latest update to our open-source, AV1-compliant encoder library. This version brings several improvements, particularly a new fast-decode mode that increases AV1 software cycle reduction without compromising quality. Read more & download: Software Implementation Working Group Releases SVT-AV1 v2.3 | Alliance for Open Media

0 Comments
2025/01/30
16:51 UTC

5

FGS table for AVIF.

I'm using XL converter, it has option to add additional args in avifenc in the settings section. I want to use fgs table (or film grain) of svt to encode images. How do I do that?

0 Comments
2025/01/29
10:17 UTC

4

Small form factor PC for SVT-AV1 transcoding

I’m looking for help building a PC in the smallest possible form factor that excels at transcoding, specifically using SVT-AV1. My budget does have a limit, but I’d like to explore all my options before setting a fixed cap.

One idea I’m considering is setting up multiple mini PCs with weaker CPUs and running transcoding tasks on each using Tdarr. Would this be a viable approach, or would a single compact powerhouse be better overall?

Any recommendations for components or setups would be greatly appreciated!

21 Comments
2025/01/28
21:40 UTC

9

How To Use Svt-av1-psy in StaxRip

Can Any One Tell me How I can Encode in StaxRip. Also Can Any One Know How To get Fgs Table and How to use It.

6 Comments
2025/01/28
19:32 UTC

18

Apple devices that support hardware decoding

I started a list I’m planning to keep updated that tracks support for hardware-accelerated decoding of AV1 on different Apple devices:

https://fullystacked.net/apple-devices-av1-decoding/

By the end of 2025 it will most likely be all current Apple products.

7 Comments
2025/01/27
21:49 UTC

24

Was in any way AV1 playback on Youtube for better video quality or it was just to save space?

Youtube gives you the option to make AV1 the default but it doesn't look any better in a substantial way (i compared VP9 to AV1, recorded the screen with extreme high bitrate and compare them in davinci resolve) so the only thing that is does is ramp up your CPU cooler.

50 Comments
2025/01/27
00:15 UTC

10

does using AV1(NVEnc) make the file size bigger than if i used AV1 (SVT)?

55 Comments
2025/01/26
05:50 UTC

1

Arc B580 + OBS AV1 Settings?

I'm struggling to get my new B580 dialed in with OBS for streaming and video encoding in AV1. Anyone have any experience they would be willing to share?

4 Comments
2025/01/26
03:22 UTC

0

Does anyone know if converting H264 to H265 then to AV1 would it lose quality?

31 Comments
2025/01/25
03:42 UTC

4

Fighting with color changes

My goal is to pack a series of JPGs captured from a single camera into a video for comporession purposes. I want to avoid information loss as much as possible. My current trying is the following:

ffmpeg -framerate 30 -i %010d.jpg -c:v libsvtav1 -crf 18 -g 240 -pix_fmt yuv420p10le output_balanced.mkv -svtav1-params tune=1:color-range=1:preset=2

but no matter what I do -- colors are shifted in the result video. Can somebody please guide me on how can I preserve original colors from JPG? The color shift looks a bit like sRGB gamma correction, but I think it is not it.

demo of color shift

17 Comments
2025/01/23
16:42 UTC

5

I've been doing low res first pass with aomenc... But should I?

I was encoding a bunch of DVD resolution talks (hence the cq-level=30). But I found that the first pass was even faster if I scaled down the input (scale=320:180). And nothing bad seemed to happen. BTW, I'm using the ffmpeg-old.exe because my newer version would sometimes crash at random intervals on certain webm source files. Known issue. But anyhow... Am I doing something extremely suboptimal, or is this something aomenc should actually be doing automatically for first pass? After all, how often will frame types be different if determined based on a 320*something file, instead of the full res version? Are there other factors which make this a bad practice?

first pass:
for %i in ("source folder\*.webm") do "...\ffmpeg-old.exe" -i "%i" -filter:v "scale=320:180" -strict -1 -f yuv4mpegpipe -| "...\aomenc.exe" - --lag-in-frames=35 --enable-fwd-kf=1 --kf-max-dist=400 --end-usage=q --cq-level=30 --threads=16 --bit-depth=10 --enable-cdef=0 --tile-rows=1 --tile-columns=1 --passes=2 --pass=1 --fpf="dest folder\%~ni.txt" --cpu-used=5 -o "dest folder\%~ni.ivf"

second pass:
for %i in ("source folder\*.webm") do "...\ffmpeg-old.exe" -i "%i" -strict -1 -f yuv4mpegpipe -| "...\aomenc.exe" - --lag-in-frames=35 --enable-fwd-kf=1 --kf-max-dist=400 --end-usage=q --cq-level=30 --threads=16 --bit-depth=10 --enable-cdef=0 --tile-rows=1 --tile-columns=1 --passes=2 --pass=2 --fpf="dest folder\%~ni.txt" --cpu-used=5 -o "dest folder\%~ni.ivf"

6 Comments
2025/01/21
06:07 UTC

3

av1an + aom producing a few b/w frames from time to time

Newbie here. I'm playing with av1an + aom-av1 to see the results and I would say I am quite satisfied, except one thing - when scene changes (e.g. people's face disappears, etc.), right before the face disappears, the face turned black and white for a very short moment that I didn't even notice at the beginning. Here is the command line:

av1an -i video.mkv -y --resume --verbose -e aom -w 4 --photon-noise=10 --set-thread-affinity=2 --split-method av-scenechange -c ffmpeg -m lsmash  -k -v "--threads=2 --cpu-used=3 --end-usage=q --cq-level=16 --enable-fwd-kf=1 --aq-mode=1 --lag-in-frames=48 --bit-depth=10 --kf-max-dist=240 --kf-min-dist=12 --enable-qm=1 --sb-size=64 --arnr-strength=1 --arnr-maxframes=3 --enable-restoration=0 --deltaq-mode=0 --sharpness=1 --enable-dnl-denoising=0 --denoise-noise-level=5" -a "-an" -o video.ivf

I took the -v part mostly from BlueSwordM's "Encoder tuning part 4" (https://www.reddit.com/r/AV1/comments/t59j32/encoder\_tuning\_part\_4\_a\_2nd\_generation\_guide\_to/?rdt=60011) and the av1an's options from somewhere I can't remember (sorry ;p). The videos are movie trailers from thedigitaltheater.com.

So where could I have done wrong?

3 Comments
2025/01/20
07:08 UTC

17

Why is SVT-AV1 performing so poorly on this video

I am reencoding my archival videos. I used to use HEVC, but now I am only using AV1 (via SVT-AV1). But I found that phone videos really suck with SVT-AV1. Even at nearly four times the bitrate the PSNR/SSIM/VMAF are significantly lower for the AV1 encode (using FFMetrics). Graph plot here.

PSNR-Value	SSIM-Value	VMAF-Value	Bitrate    File
21.594512	0.749845	48.050281	2856 Kbps  xxx.h265.1080p.mp4
17.942083	0.639828	34.565513	9047 Kbps  xxx.av1.1080p.mp4

Encoded with following command-line, source files are H.264 from cellphone, 20 Mbps bitrate:

ffmpeg \
  -f concat -i scripts/files.txt -c:v libx265 \
  -preset slower -crf 34 -pix_fmt yuv420p -x265-params range=full \
  -vf scale=1920:1080:in_range=full:out_range=full \
  -c:a aac -b:a 64k \
  xxx.h265.1080p.mp4

ffmpeg -f concat -i source-phone/files.txt \
  -c:v libsvtav1 -crf 36 -preset 4 -g 250 \
  -pix_fmt yuv420p \
  -vf scale=1920:1080:in_range=full:out_range=full \
  -c:a libopus -b:a 32k \
  xxx.av1.1080p.mp4

ffmpeg version 7.1-full_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developers

So what is going on?

28 Comments
2025/01/19
11:35 UTC

8

HDR10+ with Handbrake AV1 or AV1 PSY ?

Hi guys,

I noticed that using Handbrake with AV1 (or nightly with AV1 PSY), mkv metadata passtrough, I cannot get HDR10+, only HDR10. Comparing the source and results in mediainfo :

source is : HDR10 compatible / SMPTE ST 2094 App 4, Version HDR10+ Profile B, HDR10+ Profile B compatible

encoded video only mentions : SMPTE ST 2086, Version HDR10, HDR10 compatible

I don't use particular parameters for encoding (only sharpness 10 and film grain 10)

AV1 / Handbrake is supporting HDR10+ or not ?

9 Comments
2025/01/18
07:36 UTC

3

Questions about psy-rd in svt-av1-psy

Hello,

I'm trying svt-av1-psy after compiling it. So far I have only tried tune=3 with significant size gain with a small vmaf hit.

I want to test the psy-rd parameter, but I can't find any doc on how it works. From the --help, I only know it goes from 0.0 to 6.0, with the default being 0.0.

What does that parameter control? What does incrementing it do? What are the tradeoff? What are recommanded values from your experience?

Thank you.

3 Comments
2025/01/15
17:30 UTC

13

Is an upgrade from 5800X to 5950X for svtav1 encoding worth it?

Hello, I have a home server that struggles the most with svtav1 encoding, because I send all media of all of extended family members to the server so think phones, drones, action cameras, etc. Where I compress them. Add to that, that the same number of people need access to plex transcoded media and I use svtav1 for everything.

The server does a lot of other things that are irrelevant because it's all working fine. The ffmpeg encoding is where it falls short and the cpu struggles a lot.

Whenever an encoding job comes the cpu sits at around max usage until it's done, even if it was almost at 0 before. This means that other applications become slow or crash.

Here are my specs:

Ryzen 5800X
RAM: 128Gb of DDR4

PSU: 400W

I was wondering if upgrading to a 5950X is going to solve my problem altogether, or at least significantly improve it, or if I have to upgrade the platform into DDR5 and change the motherboard, cpu, psu and ram. Main concern is that I'd rather keep my spending low. But in someone's experience changing to the 5950X is not going to have a significant impact then I'll switch to the new interface.

24 Comments
2025/01/15
14:43 UTC

3

What exactly is quantization matrices AKA quantisation matrices AKA quantization matrix AKA quantisation matrix AKA enable-qm and what does it's parameters qm-min and qm-max do?

I haven't seen this question brought up here before in greater detail, so i decided to add every possible spelling that i found is being used in SVT-AV1 docs, so that future passer-by had more chances do actually find it using search.

SVT-AV1 documentation explains it very vaguely, with no examples of cases where you might want to turn it on, or actually maybe turning it off. It's qm-min and qm-max parameters are also having lackluster explanation.

I use FFMPEG shipped with latest base SVT-AV1 from BtbN's FFmpeg Builds, it works great for me, so i got stuck with using it that way. But i highly respect and adore SVT-AV1-PSY efforts at enhancing baseline SVT-AV1 abilities, so i try to bring it's defaults to override SVT-AV1 default settings, SVT-AV1-PSY conveniently lists it's changed defaults on their github page.
One of such parameters is enable-qm=1, which is off in mainline SVT-AV1 as of version 2.3.0 that available for use today. I just turn it on manually, to be compliant with PSY defaults.

  1. Is there any cases where you might want to turn it on, or turn it off? Or just better to always turn it on, and tune it's parameters qm-min and qm-max?
  2. Documentation says that when it's on, encoder will decide the quant level that it will use, selecting from the range specified by qm-min and qm-max on per-frame basis. Does that mean that when enable-qm=0 (OFF), it will encode all frames with highest possible level (15)? Ignoring qm-max, just using the highest possible thing.
  3. ELI5 qm-min and qm-max. Actually, no need to gloss over the details, it would be very beneficial to get the whole picture of what they're doing.
  4. When would you want to tune qm-min and qm-max? Is there any cases where you might want to lower the qm-max from it's default level 15?
  5. How does the functionality of QM differs from things like CRF that already does allocation of required bitrate of per-frame basis

Also, i noticed that when encoding with and without enable-qm=1:qm-min=0, size of the resulting encoded test sample didn't change much (no QM 7162KiB VS QM 7126KiB), but some of the aspects have slightly degraded in quality with QM enabled. Is that expected behavior?
For context, it was 3 minutes of gameplay downscaled to 360p using lanczos from 1080p source.
Here's the whole prompt of with/without QM (text in bold is removed for no QM config).
ffmpeg -i input.mp4 -t 00:03:00 -pix_fmt yuv420p10le -vf "scale=-1:360:flags=lanczos" -c:v libsvtav1 -svtav1-params keyint=15s:tune=2**:enable-qm=1:qm-min=0**:enable-variance-boost=1:lp=6 -preset 3 -crf 50 -an output**_noQM**.mkv

CPU: Intel i5 8400
uname -a:
6.1.0-29-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 (2025-01-02) x86_64 GNU/Linux

5 Comments
2025/01/15
10:16 UTC

19

In AV1-PSY, psy-rd is buggy, do not use (for now)

I recommend to use this only after it's patch, it help to make the video having more consistent details, it's like having the details stop being shifted and make it look like h264 compression, it's a really good features, I strongly recommend using it after the bug is fixed: https://github.com/psy-ex/svt-av1-psy/issues/117

12 Comments
2025/01/14
15:40 UTC

3

Animated AVIF Image Viewer

Which image viewers for Windows support playing animated AVIF files, other than web browsers? What about Android apps?

1 Comment
2025/01/14
15:33 UTC

1

Trying svt-av1 2.3.0, curious results, or am I out of the loop?

So I was building 2.3.0, and since I hadn't used it in over a year, I wanted to try it on a few short videos.

Source materials are generally:

Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1080x1920 [SAR 1:1 DAR 9:16], 6129 kb/s, 23.98 fps, 23.98 tbr, 24k tbn (default)

Not sure if GPU encoded, but its is mostly 1080p with a fixed bitrate of 6000 kb/s.

I asked an LLM some default parameters that I then adjusted for my use :

parallel -j 1 --bar "mkdir -p out/(dirname {}) ; ffmpeg -y -i {} -c:v libsvtav1 -preset 4 -crf 28 -svtav1-params film-grain=0:enable-qm=1:enable-overlays=1:tune=0 -pix_fmt yuv420p10le -c:a libopus -b:a 192k out/(string replace -r '\\.[^.]*\$' '.webm' -- {})

The process was not that slow, 0.250x, around 6 frames per second on my laptop: AMD Ryzen 9 5900HS with Radeon Graphics (8 cores, 16 threads, 3.5 GHz when not overheating).

What surprised me the most was the results, a few videos have increased in size, but most were halved.

A 42 seconds video went from 6.000 mbps to 3.9 mbps ? From 33,228,938 bytes to 16,148,026 bytes?

((33_228_938 - 16_148_026)/33_228_938)*100
51.40372527102733

51% reduction? Static video of a dark night with fireworks in Vegas. I expected banding but no.

A 3:50 mn video went from 6.000 mbps to 2.324 mbps ? From 177,849,678 bytes to 63,924,451 bytes?

((177_849_678 - 63_934_451)/177_849_678)*100
64.0514103151764

64% reduction? The video is very static too, not much movement or action so it is a good candidate for compression. I'd need to try with a faster movie.

Nevertheless, this seemed suspicious, so I computed VMAF and al. with -lavfi libvmaf='model=version=vmaf_v0.6.1:log_path=20250101_0hx5z8bxjmx3i0zk0w5hq_source2.json:log_fmt=json:feature=name=cambi|name=psnr_hvs|name=ciede|name=float_ssim|name=float_ms_ssim':

  • first video:

"cambi": {
  "min": 0.483634,
  "max": 2.563413,
  "mean": 1.019167,
  "harmonic_mean": 0.991314
},
"psnr_hvs_y": {
  "min": 43.100631,
  "max": 52.838056,
  "mean": 47.020209,
  "harmonic_mean": 46.986024
},
"psnr_hvs_cb": {
  "min": 39.963184,
  "max": 52.419626,
  "mean": 48.284781,
  "harmonic_mean": 48.257279
},
"psnr_hvs_cr": {
  "min": 38.438863,
  "max": 52.364891,
  "mean": 46.658104,
  "harmonic_mean": 46.625581
},
"psnr_hvs": {
  "min": 43.116828,
  "max": 52.724945,
  "mean": 47.076659,
  "harmonic_mean": 47.045787
},
"ciede2000": {
  "min": 41.955499,
  "max": 51.686814,
  "mean": 47.781980,
  "harmonic_mean": 47.761121
},
"float_ssim": {
  "min": 0.995532,
  "max": 0.999311,
  "mean": 0.997632,
  "harmonic_mean": 0.997632
},
"float_ms_ssim": {
  "min": 0.994679,
  "max": 0.999015,
  "mean": 0.997139,
  "harmonic_mean": 0.997139
},
"vmaf": {
  "min": 92.921360,
  "max": 100.000000,
  "mean": 96.003151,
  "harmonic_mean": 95.986735
}
  • second video:

"cambi": {
  "min": 0.002945,
  "max": 0.580998,
  "mean": 0.088782,
  "harmonic_mean": 0.086792
},
"psnr_hvs_y": {
  "min": 40.659271,
  "max": 51.226098,
  "mean": 44.279699,
  "harmonic_mean": 44.236165
},
"psnr_hvs_cb": {
  "min": 43.435119,
  "max": 50.566870,
  "mean": 46.282067,
  "harmonic_mean": 46.266379
},
"psnr_hvs_cr": {
  "min": 42.269972,
  "max": 50.333730,
  "mean": 45.414015,
  "harmonic_mean": 45.394693
},
"psnr_hvs": {
  "min": 41.126351,
  "max": 51.059095,
  "mean": 44.536908,
  "harmonic_mean": 44.499755
},
"ciede2000": {
  "min": 42.045218,
  "max": 48.038874,
  "mean": 44.769963,
  "harmonic_mean": 44.755671
},
"float_ssim": {
  "min": 0.990675,
  "max": 0.998748,
  "mean": 0.995702,
  "harmonic_mean": 0.995701
},
"float_ms_ssim": {
  "min": 0.991128,
  "max": 0.998383,
  "mean": 0.995739,
  "harmonic_mean": 0.995739
},
"vmaf": {
  "min": 90.016311,
  "max": 100.000000,
  "mean": 97.110377,
  "harmonic_mean": 97.076109
}

This is reaching transparency. SVT-AV1 did become that good?!

12 Comments
2025/01/14
04:07 UTC

7

Does Streamlabs OBS support AV1 codec for Twitch live streaming?

10 Comments
2025/01/14
02:42 UTC

20

How to encode HDR with SVT-AV1 AND keep the HDR metadata?

I am kind of lost on this subject... It can't be as simple as --enabler-hdr... I have seen posts that suggest it isn't, and I haven't seen a lot of posts on encoding 4k HDR with SVT-AV1.

Can anybody point me at any materials or reading on this?

16 Comments
2025/01/12
07:31 UTC

0

AVIF inside PDF without transcoding to JPEG/PNG

I was wondering if you could inbed AVIF as the main image type inside of a PDF, my cousin has manga that's 1 whole GB for a whole book, and even with a powerful CPU, the browser doesn't like to open it, it's quite slow. And just for a fun experiment, if it's possible to add AVIF images into a PDF

11 Comments
2025/01/11
18:25 UTC

0

Can't seek in AV1 video due to lack of I frames

ffmpeg -i "cd.mp4" -c:v libaom-av1 -vf "tblend=all_mode=average,fps=ntsc" -row-mt true -refs 2 -threads 4 -cpu-used 3 -lag-in-frames 10 -tiles 1x2 -crf 25 -b:v 2500k -c:a copy output3.mkv

It doesn't make video seekable:

[matroska,webm] seek_frame_generic failed as this stream seems to contain no keyframes after the target timestamp, 1002 non keyframes found,

By default, libaom's maximum keyframe interval is 9999 frames. https://trac.ffmpeg.org/wiki/Encode/AV1

ffprobe output4.mkv -show_entries frame=pict_type

It shows only four I and rest is P type in 17 minute video - 31653 frames long. It clearly uses default max keyframe interval.

Why AOM encoder do not use I frame on scene cut? Looks like libaom-av1 preferred way of encoding is one I and rest of P (if encoder could).

5 Comments
2025/01/11
14:41 UTC

Back To Top