jriker1
11th March 2023, 03:21
I have been trying to understand AV1 and beyond the bitrate oddly low testing multiple videos, I encoded the same video two ways, one straight ffmpeg using libsvtav1. The other ffmpeg piped to svtav1encapp. Content is 4k HDR10 and 1 hour 47 minutes. Below are the results:
Straight libsvtav1:
ffmpeg.exe -y -i <video>.mkv -map 0:V:0 -c:v:0 libsvtav1 -pix_fmt yuv420p10le -svtav1-params "preset=3:keyint=300:crf=26:tune=0:enable-hdr=1:color-primaries=bt2020:transfer-characteristics=smpte2084:matrix-coefficients=bt2020-ncl:mastering-display=G(0.17,0.797)B(0.131,0.046)R(0.708,0.292)WP(0.3127,0.329)L(1000,0.0005):content-light=639,243:chroma-sample-position=topleft:film-grain-denoise=0:film-grain=0: profile=main:level=51" converted.ivf
Output was:
Took about 2 hours to encode with Ryzen 7950x
From mediainfo: 1 470 kb/s, 3840*1590 (2.40:1), at 23.976 (24000/1001) FPS, AV1 (Main@L5.1)
Resulting File size: 1,158,273 KB (is this real?)
-------------
Pipe to SVTAV1ENCAPP:
ffmpeg -i <video>.mkv -map 0:v:0 -pix_fmt yuv420p10le -f yuv4mpegpipe -strict -1 - | SvtAv1EncApp -i stdin --preset 3 --keyint 300 --crf 26 --tune 0 --enable-hdr 1 --color-primaries bt2020 --transfer-characteristics smpte2084 --matrix-coefficients bt2020-ncl --mastering-display "G(0.17,0.797)B(0.131,0.046)R(0.708,0.292)WP(0.3127,0.329)L(1000,0.0005)" --content-light 639,243 --chroma-sample-position topleft --film-grain-denoise 0 --film-grain 0 --profile main --level 5.1 -b pipe.ivf
Output was:
Took about 11 hours to run with Ryzen 7950x
From mediainfo: 1 237 kb/s, 3840*1590 (2.40:1), at 23.976 (24000/1001) FPS, AV1 (Main@L5.1)
File size: 974,627 KB
So technically these encodes should be identical as far as values.
Any idea if these bitrates make sense
What is causing the difference in encoding duration?
Note I can't really compare the output as my monitors are like 14 years old and trying to compare one at a time on my TV won't be easy to tell when I have to watch one and stop and load the other. All i can say is there is no pixilation and things look clear this just seems wrong.
Straight libsvtav1:
ffmpeg.exe -y -i <video>.mkv -map 0:V:0 -c:v:0 libsvtav1 -pix_fmt yuv420p10le -svtav1-params "preset=3:keyint=300:crf=26:tune=0:enable-hdr=1:color-primaries=bt2020:transfer-characteristics=smpte2084:matrix-coefficients=bt2020-ncl:mastering-display=G(0.17,0.797)B(0.131,0.046)R(0.708,0.292)WP(0.3127,0.329)L(1000,0.0005):content-light=639,243:chroma-sample-position=topleft:film-grain-denoise=0:film-grain=0: profile=main:level=51" converted.ivf
Output was:
Took about 2 hours to encode with Ryzen 7950x
From mediainfo: 1 470 kb/s, 3840*1590 (2.40:1), at 23.976 (24000/1001) FPS, AV1 (Main@L5.1)
Resulting File size: 1,158,273 KB (is this real?)
-------------
Pipe to SVTAV1ENCAPP:
ffmpeg -i <video>.mkv -map 0:v:0 -pix_fmt yuv420p10le -f yuv4mpegpipe -strict -1 - | SvtAv1EncApp -i stdin --preset 3 --keyint 300 --crf 26 --tune 0 --enable-hdr 1 --color-primaries bt2020 --transfer-characteristics smpte2084 --matrix-coefficients bt2020-ncl --mastering-display "G(0.17,0.797)B(0.131,0.046)R(0.708,0.292)WP(0.3127,0.329)L(1000,0.0005)" --content-light 639,243 --chroma-sample-position topleft --film-grain-denoise 0 --film-grain 0 --profile main --level 5.1 -b pipe.ivf
Output was:
Took about 11 hours to run with Ryzen 7950x
From mediainfo: 1 237 kb/s, 3840*1590 (2.40:1), at 23.976 (24000/1001) FPS, AV1 (Main@L5.1)
File size: 974,627 KB
So technically these encodes should be identical as far as values.
Any idea if these bitrates make sense
What is causing the difference in encoding duration?
Note I can't really compare the output as my monitors are like 14 years old and trying to compare one at a time on my TV won't be easy to tell when I have to watch one and stop and load the other. All i can say is there is no pixilation and things look clear this just seems wrong.