Posts: 10.981
Threads: 57
Joined: May 2017
Nope, path is okay. I just made a typo.
Instead of '-vmaf-model-path' it needs to be '
--vmaf-model-path'.
-> will fix and send you a new link to a dev once I recompiled and packaged it.
Cu Selur
Posts: 53
Threads: 8
Joined: Nov 2020
Now it seems to work
(didn't finished the encoding because it needed 100x the time of source with currently settings -I'll read the previous articles linked before change it)
Posts: 53
Threads: 8
Joined: Nov 2020
Edit: (in this case is better to edit or make a new reply? -edits are notified?-)
I read the articles and I concluded to add the following arguments in the encoding
--passes=2 --lag-in-frames=48 --enable-cdef=1 --enable-restoration=0 --enable-qm=1
But it seems it is not possible because --passes is already set to 1 in Constant Quality mode (and there isn't the two-passes one in hybrid)
Also, is right that Tune: none and Tune: VMAF with pre-processing have the same arguments? (without vmaf model path)
Posts: 10.981
Threads: 57
Joined: May 2017
09.04.2022, 10:04
(This post was last modified: 09.04.2022, 10:05 by Selur.)
Quote:(in this case is better to edit or make a new reply? -edits are notified?-)
Assuming there is more than a few minutes after your first post, make a new reply.
Quote:But it seems it is not possible because --passes is already set to 1 in Constant Quality mode (and there isn't the two-passes one in hybrid)
There is no contant quality rate control mode.
--end-usage=<arg> Rate control mode
vbr, cbr, cq, q
vbr = variable bit rate
cbr = constrant bit rate
cq = constrained quality
q = constant quantizer
Hybrid offers '--passes=2' with 'vbr' and 'cq' as 2pass doesn't make sense for constant quantizer or constant bit rate rate control.
Also, is right that Tune: none and Tune: VMAF with pre-processing have the same arguments? (without vmaf model path)
No that's a bug.
I will look at it.
(it's a typo, the option in the dropdown is missing an 'g' at the end.
)
Cu Selur
Posts: 53
Threads: 8
Joined: Nov 2020
(09.04.2022, 10:04)Selur Wrote: Quote:But it seems it is not possible because --passes is already set to 1 in Constant Quality mode (and there isn't the two-passes one in hybrid)
There is no contant quality rate control mode.
--end-usage=<arg> Rate control mode
vbr, cbr, cq, q
vbr = variable bit rate
cbr = constrant bit rate
cq = constrained quality
q = constant quantizer
Hybrid offers '--passes=2' with 'vbr' and 'cq' as 2pass doesn't make sense for constant quantizer or constant bit rate rate control.
Sorry I mean 'q' constant quantizer. Based on the previous linked articles the encoder need 2pass to enable scene-detection.
Quote:2-pass was extremely important in vpxenc-vp9, as not only was it the only way for the encoder to utilize scene-detection, but it also allowed for the placement of alternate reference frames. Not doing that seriously cripples the encoder in what it can do. It also disables other stuff, but this also applies to aomenc-av1, so letÂ’s move on to the AV1 encoder again.
In aomenc-av1, 2-pass allows for these things in particular:
- More advanced scene detection when the lookahead buffer is high enough.
- Partition recoding: the encoder itself can decide whether or not to redo partition selection based on the preset on other conditions, resulting in better partition selection.
- Better auto-alt-ref placement through the encoded stream.
It also does some more advanced things, so IÂ’d advise keeping it on if you can
So yeah, always use 2-pass if you can. Luckily, itÂ’s set by default in the standalone encoder, so you donÂ’t need to do anything if you utilize a utility like nmkoder or av1an
Posts: 10.981
Threads: 57
Joined: May 2017
Have you actually tried using 2pass with constant quantizer?
With a fixed quantizer, there should be no rate control, so I don't see how you could benefit from running 2passes.
Cu Selur
Posts: 53
Threads: 8
Joined: Nov 2020
(08.04.2022, 17:00)Werve Wrote: Now it seems to work
(didn't finished the encoding because it needed 100x the time of source with currently settings -I'll read the previous articles linked before change it)
Unfortunately it don't work.
Almost at the end of encoding it says Crashed with exit status 1
Quote:Have you actually tried using 2pass with constant quantizer?
Not yet, I'm still experimenting
Posts: 10.981
Threads: 57
Joined: May 2017
Debug output shows that
after over an hour and encoding 226 frames:
22673F[K Pass 1/1 frame 226/178 1378917B 4556693 ms 2.98 fpm [ETA unknown]
the encoder crashes with:
process finished with exitcode: -1073740940 and exitStatus: 1
Since the encoding starts, the calls must be okay
doing a quick test with;
ffmpeg -y -loglevel fatal -noautorotate -nostdin -threads 8 -i "G:\TestClips&Co\files\test.avi" -map 0:0 -an -sn -vf zscale=rangein=tv:range=tv -pix_fmt yuv420p10le -strict -1 -vsync 0 -f yuv4mpegpipe - | aomenc --passes=1 --pass=1 --end-usage=cq --cq-level=10 --target-bitrate=15000 --profile=0 --cpu-used=5 --min-q=1 --max-q=63 --undershoot-pct=0 --overshoot-pct=0 --buf-sz=6 --buf-initial-sz=4 --buf-optimal-sz=5 --drop-frame=0 --kf-min-dist=0 --kf-max-dist=250 --auto-alt-ref=0 --noise-sensitivity=0 --denoise-noise-level=0 --sharpness=0 --static-thresh=0 --tune-content=default --tune=vmaf_without_preprocessing --vmaf-model-path="I:/Hybrid/64bit/vmaf_v0.6.1.json" --tile-columns=6 --tile-rows=2 --frame-boost=0 --aq-mode=1 --min-gf-interval=0 --max-gf-interval=2 --threads=64 --width=640 --height=352 --input-bit-depth=10 --bit-depth=10 --denoise-noise-level=0 --min-partition-size=4 --max-partition-size=128 --sb-size=0 --max-reference-frames=7 --disable-trellis-quant=0 --enable-tpl-model=1 --enable-keyframe-filtering=0 --force-video-mode=1 --reduced-tx-type-set=1 --use-intra-dct-only=0 --use-inter-dct-only=0 --use-intra-default-tx-only=0 --quant-b-adapt=1 --coeff-cost-upd-freq=0 --mode-cost-upd-freq=0 --mv-cost-upd-freq=0 -o "E:\Temp\2022-04-09@14_42_18_5410_01.ivf" -
which seems to work fine.
So my guess is that either:
- something is wrong with the source a frame around 226
- something is interfering with the encoding process (or the communication between the decoder and the encoder)
- you are running out of ram (or space)
- your system is overclocked (which causes memory issues)
- there is some bug in aomenc
-> this does not look like a bug in Hybrid.
Cu Selur