____________________________________________________________
Encoding
Handbrake 1.8.1
Video.Svt-av1 10-bit fast decode crf 30 preset 4
Audio.Opus 128 kb/s for 2.0
AB-av1 crf-search for preset 4 → crf 30 VMAF 95.33
____________________________________________________________
File
Video: AV01 1920x1080 29.97fps [V: av1 main, yuv420p10le, 1920x1080 [default]]
Audio: Opus 48000Hz stereo 3072kbps [A: Stereo [jpn] (opus, 48000 Hz, stereo) [default]]
Subtitle: UTF-8 [S: Afrikaans [afr] (subrip) [default]]
Subtitle: UTF-8 [S: Arabic [ara] (subrip) [default]]
Subtitle: UTF-8 [S: Azerbaijani [aze] (subrip) [default]]
Subtitle: UTF-8 [S: Belarusian [bel] (subrip) [default]]
Subtitle: UTF-8 [S: Bulgarian [bul] (subrip) [default]]
Subtitle: UTF-8 [S: Bengali [ben] (subrip) [default]]
Subtitle: UTF-8 [S: Czech [cze] (subrip) [default]]
Subtitle: UTF-8 [S: Danish [dan] (subrip) [default]]
Subtitle: UTF-8 [S: German [ger] (subrip) [default]]
Subtitle: UTF-8 [S: Greek [gre] (subrip) [default]]
Subtitle: UTF-8 [S: English v1 from chinese [eng] (subrip) [default]]
Subtitle: UTF-8 [S: Spanish [spa] (subrip) [default]]
Subtitle: UTF-8 [S: Estonian [est] (subrip) [default]]
Subtitle: UTF-8 [S: Persian [per] (subrip) [default]]
Subtitle: UTF-8 [S: Finnish [fin] (subrip) [default]]
Subtitle: UTF-8 [S: French [fre] (subrip) [default]]
Subtitle: UTF-8 [S: Croatian [hrv] (subrip) [default]]
Subtitle: UTF-8 [S: Hungarian [hun] (subrip) [default]]
Subtitle: UTF-8 [S: Armenian [arm] (subrip) [default]]
Subtitle: UTF-8 [S: Indonesian [ind] (subrip) [default]]
Subtitle: UTF-8 [S: Italian [ita] (subrip) [default]]
Subtitle: UTF-8 [S: Hebrew [heb] (subrip) [default]]
Subtitle: UTF-8 [S: Japanese [jpn] (subrip) [default]]
Subtitle: UTF-8 [S: subrip [default]]
Subtitle: UTF-8 [S: Korean [kor] (subrip) [default]]
Subtitle: UTF-8 [S: Luxembourgish [ltz] (subrip) [default]]
Subtitle: UTF-8 [S: Malayalam [mal] (subrip) [default]]
Subtitle: UTF-8 [S: Malay [may] (subrip) [default]]
Subtitle: UTF-8 [S: Dutch [dut] (subrip) [default]]
Subtitle: UTF-8 [S: Norwegian [nor] (subrip) [default]]
Subtitle: UTF-8 [S: Polish [pol] (subrip) [default]]
Subtitle: UTF-8 [S: Breton [bre] (subrip) [default]]
Subtitle: UTF-8 [S: Russian [rus] (subrip) [default]]
Subtitle: UTF-8 [S: Slovak [slo] (subrip) [default]]
Subtitle: UTF-8 [S: Serbian [srp] (subrip) [default]]
Subtitle: UTF-8 [S: Sundanese [sun] (subrip) [default]]
Subtitle: UTF-8 [S: Swedish [swe] (subrip) [default]]
Subtitle: UTF-8 [S: Tamil [tam] (subrip) [default]]
Subtitle: UTF-8 [S: Telugu [tel] (subrip) [default]]
Subtitle: UTF-8 [S: Thai [tha] (subrip) [default]]
Subtitle: UTF-8 [S: Tagalog [tgl] (subrip) [default]]
Subtitle: UTF-8 [S: Turkish [tur] (subrip) [default]]
Subtitle: UTF-8 [S: Vietnamese [vie] (subrip) [default]]
Subtitle: UTF-8 [S: Chinese [chi] (subrip) [default]]
Subtitle: UTF-8 [S: Twi [twi] (subrip) [default]]
Subtitle: UTF-8 [S: Portuguese [por] (subrip) [default]]
Subtitle: UTF-8 [S: No subtitles]
General
Unique ID : 332506582379922475094798825827516405830 (0xFA267039173A0816935F8B09F21DD846)
Complete name : JUL-802.Marina.Shiraishi.21.12.23.xxx.1080p.av1.subs-Rosy.mkv
Format : Matroska
Format version : Version 4
File size : 1.38 GiB
Duration : 1 h 59 min
Overall bit rate : 1 650 kb/s
Frame rate : 29.970 FPS
Movie name : JUL-802.Marina.Shiraishi.21.12.23.xxx.1080p.av1.subs-Rosy
Encoded date : 2024-12-04 17:41:03 UTC
Writing application : mkvmerge v88.0 ('All I Know') 64-bit
Writing library : libebml v1.4.5 + libmatroska v1.7.1 / Lavf61.1.100
Cover : Yes
Attachments : cover.jpg
Video
ID : 1
Format : AV1
Format/Info : AOMedia Video 1
Format profile : [email protected]
Codec ID : V_AV1
Duration : 1 h 59 min
Bit rate : 1 555 kb/s
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 29.970 (30000/1001) FPS
Color space : YUV
Chroma subsampling : 4:2:0 (Type 0)
Bit depth : 10 bits
Bits/(Pixel*Frame) : 0.025
Stream size : 1.30 GiB (94%)
Default : Yes
Forced : No
Color range : Limited
Color primaries : BT.709
Transfer characteristics : BT.709
Matrix coefficients : BT.709
Audio
ID : 2
Format : Opus
Codec ID : A_OPUS
Duration : 1 h 59 min
Bit rate : 89.8 kb/s
Channel(s) : 2 channels
Channel layout : L R
Sampling rate : 48.0 kHz
Frame rate : 50.000 FPS (960 SPF)
Compression mode : Lossy
Stream size : 76.8 MiB (5%)
Title : Stereo
Language : Japanese
Default : Yes
Forced : No
____________________________________________________________
Source
[email protected]
General
Complete name : JUL-802\[email protected]
Format : MPEG-4
Format profile : Base Media
Codec ID : isom (isom/iso2/avc1/mp41)
File size : 5.17 GiB
Duration : 1 h 59 min
Overall bit rate mode : Variable
Overall bit rate : 6 189 kb/s
Frame rate : 29.970 FPS
Writing application : Lavf59.9.101
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Main@L4
Format settings : CABAC / 4 Ref Frames
Format settings, CABAC : Yes
Format settings, Reference fra : 4 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 1 h 59 min
Source duration : 1 h 59 min
Bit rate : 5 986 kb/s
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Variable
Frame rate : 29.970 (29970/1000) FPS
Minimum frame rate : 5.050 FPS
Maximum frame rate : 29.970 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.096
Stream size : 5.00 GiB (97%)
Source stream size : 5.00 GiB (97%)
Writing library : x264 core 161 r3015 4c2aafd
Encoding settings : cabac=1 / ref=1 / deblock=1:0:0 / analyse=0x1:0x111 / me=hex / subme=2 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=0 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=18 / lookahead_threads=6 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=1 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=10 / rc=abr / mbtree=1 / bitrate=6000 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
mdhd_Duration : 7181105
Codec configuration box : avcC
Audio
ID : 2
Format : AAC LC
Format/Info : Advanced Audio Codec Low Complexity
Codec ID : mp4a-40-2
Duration : 1 h 59 min
Bit rate mode : Variable
Bit rate : 192 kb/s
Maximum bit rate : 195 kb/s
Channel(s) : 2 channels
Channel layout : L R
Sampling rate : 48.0 kHz
Frame rate : 46.875 FPS (1024 SPF)
Compression mode : Lossy
Stream size : 164 MiB (3%)
Default : Yes
Alternate group : 1
____________________________________________________________
Tools
Ab-av1
FFBitrateViewer
FFmpeg
FFmetrics
Freefilesync
Handbrake
Jackett
Mediainfo
Mkvtoolknix
Qbittorent
Scenerulez
Shutterencoder
VVV-virtualvolumeview
Xnconvert
Xnview mp
===================== AV1 guide v20 ========================
1) TLDR ez recipe
Handbrake
svt-av1 10 bit
Preset 5-7
crf 25
fast-decode
____________________________________________________________
2) Encoding by crf
stv-av1 10 bit crf 25 - high quality
stv-av1 10 bit crf 20 - very high quality
stv-av1 10 bit crf 15 - super high quality
stv-av1 10 bit crf 10 - max quality (usually from here file gets bigger than original)
____________________________________________________________
3) Encoding by crf + vmaf
Step 1 - Check VMAF with Ab-av1
1.1 AV1
Source resolution → crf-search -i "c:\file.mkv" --pix-format yuv420p10le --svt fast-decode=1 --svt tune=0 --preset 5 --min-samples 20 --min-vmaf 98
1080p Downscale → crf-search -i "c:\file.mkv" --pix-format yuv420p10le --svt fast-decode=1 --svt tune=0 --preset 5 --min-samples 20 --min-vmaf 96 --vfilter "scale=-1:1080"
720p Downscale → crf-search -i "c:\file.mkv" --pix-format yuv420p10le --svt fast-decode=1 --svt tune=0 --preset 5 --min-samples 20 --min-vmaf 96 --vfilter "scale=-1:720"
Sample encode → sample-encode -i "c:\file.mkv" --pix-format yuv420p10le --svt fast-decode=1 --svt tune=0 --preset 5 --min-samples 20 --crf 20
1.2 x265
Source resolution → crf-search -i "c:\file.mkv" --encoder libx265 --pix-format yuv420p10le --preset medium --min-samples 20 --enc x265-params=fastdecode=1 --min-vmaf 98
1080p Downscale → crf-search -i "c:\file.mkv" --encoder libx265 --pix-format yuv420p10le --preset medium --min-samples 20 --enc x265-params=fastdecode=1 --min-vmaf 96 --vfilter "scale=-1:1080"
720p Downscale → crf-search -i "c:\file.mkv" --encoder libx265 --pix-format yuv420p10le --preset medium --min-samples 20 --enc x265-params=fastdecode=1 --min-vmaf 96 --vfilter "scale=-1:720"
Step 2 - HandBrake
Summary:
- Container: MKV
Dimensions:
- Cropping: None
- Anamorphic: None
- Borders: None
Video:
- Encoder: AV1 (10-bit SVT)
- Framerate: Same as source
- Preset: 5
- Fast Decode: ✓
- Encoder Profile: Main
- Encoder Level: Auto
- Quality: CRF determined from "ab-av1"(1), or crf 15-20-25
Audio:
- DTS to Opus Conversion:
- DTS 7.1 → Opus @ 512 kbps
- DTS 5.1 → Opus @ 384 kbps
- DTS 2.0 → Opus @ 128 kbps
*When passtrough? lossy codec(opus,aac, ac3, eac3,wma) 768-128 kbps
Step 3 - Subtitles
- Original → passtrough
- Subtitle Translator
- Whisper OpenAI
- Opensubtitles
- Subtitlecat
*If size is an issue don`t use pgs, prefer ass/srt.
____________________________________________________________
4) Encoding by vbr preset 5-7
Step 1 - recommended sizes:
av1 1080p 30min high quality - 400mb
av1 1080p 60min high quality - 800mb
av1 1080p 120min+ high quality - 1600mb
av1 1080p super high quality - 4000mb - 4600mb
av1 2160p 120min+ medium quality - 4000mb - 4600mb
av1 2160p 120min+ high quality - 6000 - 8400mb
av1 2160p 120min+ super high quality - 12000 - 16000mb
Step 2 - recommended bitrate:
1080p medium quality - 1000 kbps
1080p high quality - 1500 kbps
1080p very high quality - 2000 kbps
1080p super high quality - 4000 kbps
2160p medium quality - 4000 kbps
2160p high quality - 6000 kbps
2160p super high quality - 12000 - 16000 kbps
____________________________________________________________
5) Observations
AV1 presets have a significant impact on both bitrate and quality. For instance, moving from preset 5 to preset 2 can boost VMAF scores by 2-4 points. This behavior differs notably from x265, where higher-quality presets typically increase file size. In AV1, file size often remains unchanged or even decreases as quality improves with lower presets.
A good example is Netflix AV1 rips, which achieve decent quality at 1080p with astonishingly low bitrates of 500-700 kbps. This is likely due to the use of extremely low presets (2, 1, or 0), which require substantial computational power but yield remarkable results.
This demonstrates that bitrate alone is not a reliable indicator of quality. Similarly, relying solely on VMAF scores or subjective visual assessment can be misleading. A balanced approach that combines multiple evaluation methods is essential, particularly when faced with unusual cases, such as low VMAF scores despite high bitrates.
____________________________________________________________
References
1. Dolby, 2023. What are Dolby Vision profiles and levels? [Online]
2. Ozer, J., 2017. Video Encoding by the Numbers: Eliminate the Guesswork from your Streaming Video. Doceo Publishing.
3. Sayood, K., 2017. Introduction to Data Compression. 5th Edition.
4. Ozer, J., 2021. What is CBR, VBR, CRF, Capped-CRF? Rate Control Modes Explained.
5. Rassool, Reza. VMAF Reproducibility: Validating a Perceptual Practical Video Quality Metric.
6. Kah, A. e al. Fundamental relationships between subjective quality, user acceptance, and the VMAF metric for a quality-based bit rate ladder design for over-the-top video streaming services.
7. Boldrin, M. 2008. Against Intellectual Monopoly.