Selur's Little Message Board

Full Version: Kvazaar - error
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hello Selur

I't seems that the version of Kvazaar released with the dev version 2020.12.31.1 changed behavior. When I try to use this encoder it complains about an input error due to an extra argument (in my case: "1280x720").

I attached the full debug output.
Already in bed. Will send you a link to a fixed dev version tomorrow.
Do you think to fix this issue or you are planning to remove the support for the Kvazaar encoder ?
Removed support since I don't see a problem in Hybrid, but a bug in Kvazaar, see: https://github.com/ultravideo/kvazaar/issues/294
-> waiting for feedback from the Kvazaar devs.

Cu Selur
Okay, problem is definitly current Kvazaar, using the v2.0.0 release from 22 Apr 2020 works fine.
-> hope the Kvazaar developers will fix it.
I tested all the versions released in Hybrid since August 2019. The only version that is "really" working is "Kvazaar v1.3.0-56-g1dd0619b 2019-08-08" released in Hybrid-2019.08.27.

I tested also the April version 2.0 as you suggested but this is not working with my script.

I restored the previous dev version with Kvazaar enabled and I substituted "Kvazaar v2.0.0-44-gd4341b3a 2020-11-18" with "Kvazaar v1.3.0-56-g1dd0619b 2019-08-08".
After this substitution I performed an encoding with Hybrid dev version "2020-12-31.1" and it failed with the reported error of wrong input.

Hybrid generated the following command line:

Code:
ffmpeg -y -loglevel fatal -noautorotate -nostdin -threads 8 -i "input.mkv" -map 0:0 -an -sn  -pix_fmt yuv420p -vsync 0  -f rawvideo - | kvazaar --preset medium  -i --input-res 1280x720 --input-fps 24000/1001 --input-format P420 --input-bitdepth 8 --level 6.2 --high-tier --qp 22 --ref 3 --subme 0 --sar 1:1 --range tv --colorprim undef --transfer undef --colormatrix bt709 auto -o "input_new_2021-01-05@22_00_59_9610_02.265"

In effect in this line there are 2 errors:

1) the "-i" option is not followed by the char "-" this issue generates the input error
2) at the and of the line, just before the "-o" option there is the "auto" parameter that should be removed.

After fixing these 2 errors, I was able to encode the movie with the following results:

preset fast:
Processed 681 frames,  84541352 bits AVG PSNR Y 40.7781 U 45.1778 V 46.2866
Total CPU time: 4.772 s.
Encoding time: 4.755 s.
Encoding wall time: 4.754 s.
Encoding CPU usage: 100.02%
FPS: 143.24


preset medium:
Processed 681 frames,  92746080 bits AVG PSNR Y 41.3425 U 45.4794 V 46.7170
Total CPU time: 11.253 s.
Encoding time: 11.234 s.
Encoding wall time: 11.234 s.
Encoding CPU usage: 100.00%
FPS: 60.62


So if you keep the kvazaar version 1.3.0-56-g1dd0619b and fix these small errors, you can enable again kvazaar.

you can find the movie used for this test at the following link: https://filebin.net/x5wm9nuvgp82glks

This is a very difficult movie to encode properly and currently I found few encoders able to encode it satisfactory well and unfortunately Kvazaar (like all the hardware encoders) is not among them.

I forgot to specify that in the previous test the flag kvzaar->Misc->Minimize command line was enabled.

If I disable it, I get the following command line (I just renamed the files):

Code:
ffmpeg -y -loglevel fatal -noautorotate -nostdin -threads 8 -i "input.mkv" -map 0:0 -an -sn  -pix_fmt yuv420p -vsync 0  -f rawvideo - | kvazaar -i - --input-res 1280x720 --input-fps 24000/1001 --input-format P420 --input-bitdepth 8 --level 6.2 --high-tier --qp 22 --no-lossless --ref 3 --open-gop --gop 8 --period 64 --deblock 0:0 --sao full --mv-constraint none --no-smp --no-amp --no-full-intra-search --no-transform-skip --me hexbs --me-steps -1 --subme 0 --pu-depth-inter 0-3 --pu-depth-intra 1-4 --tr-depth-intra 0 --no-bipred --cu-split-termination zero --me-early-termination on --fast-residual-cost 0 --rdoq --no-rdoq-skip --rd 0 --no-mv-rdo --early-skip --max-merge 5 --no-implicit-rdpcm --tmvp --no-intra-rdo-et --sar 1:1 --range tv --colorprim undef --transfer undef --colormatrix bt709 --no-erp-aqp --vps-period 0 --info --no-aud --no-signhide --threads auto --owf auto --wpp auto --psnr -o "output_new.265"

In this case it seems that the generated command line is correct, but this not the case, to be able to encode the movie I had, to remove the following options (even if theoretically are supported by the version 1.3.0): "--sao full", "--threads auto --owf auto --wpp auto"

This is the command line that worked for me:

Code:
ffmpeg -y -loglevel fatal -noautorotate -nostdin -threads 8 -i "input.mkv" -map 0:0 -an -sn  -pix_fmt yuv420p -vsync 0  -f rawvideo - | kvazaar -i - --input-res 1280x720 --input-fps 24000/1001 --input-format P420 --input-bitdepth 8 --level 6.2 --high-tier --qp 22 --no-lossless --ref 3 --open-gop --gop 8 --period 64 --deblock 0:0 --mv-constraint none --no-smp --no-amp --no-full-intra-search --no-transform-skip --me hexbs --me-steps -1 --subme 0 --pu-depth-inter 0-3 --pu-depth-intra 1-4 --tr-depth-intra 0 --no-bipred --cu-split-termination zero --me-early-termination on --fast-residual-cost 0 --rdoq --no-rdoq-skip --rd 0 --no-mv-rdo --early-skip --max-merge 5 --no-implicit-rdpcm --tmvp --no-intra-rdo-et --sar 1:1 --range tv --colorprim undef --transfer undef --colormatrix bt709 --no-erp-aqp --vps-period 0 --info --no-aud --no-signhide --psnr -o "output_new.265"

No idea on the reason of this behaviour, I think that kvazaar is far to be considered "stable".
I know there were bugs with 2020.12.13.1, but I fixed those.
Problem is using:
Code:
ffmpeg -y -loglevel fatal -noautorotate -nostdin -threads 8 -i "F:\TestClips&Co\files\test.avi" -map 0:0 -an -sn  -pix_fmt yuv420p -vsync 0  -f rawvideo - | kvazaar --preset medium  -i - --input-res 640x352 --input-fps 25/1 --input-format P420 --input-bitdepth 8 --level 6.2 --high-tier --qp 22 --ref 3 --subme 0 --sar 1:1 --range tv --colorprim undef --transfer undef --colormatrix bt470bg --no-cpuid -o "E:\Temp\test_2021-01-06@04_47_32_1810_02.265"
with the latest kvazaar version fails with error status/level -1073741784.
You can get the errorlevel of the last command line tool on Windows by calling 'echo %errorlevel%' after running it.

Quote:No idea on the reason of this behaviour, I think that kvazaar is far to be considered "stable".
Yup, they break it from time to time. Bug usually they fix it after a while again. Smile

Cu Selur