Selur's Little Message Board

Full Version: x264 rc-lookahead value
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

andrewschen

Set rc-lookahead to 40 in Hybrid, and the value of it in the encoded file always be 60.
Quote:Set rc-lookahead to 40 in Hybrid, and the value of it in the encoded file always be 60.
Hybrid doesn't show '--rc-lookahead 40' inside the command line since it's the default value:
Quote:--rc-lookahead <integer> Number of frames for frametype lookahead [40]
If you apply a preset, this might change.

What I tried to reproduce this is:
  1. start Hybrid
  2. loaded a source
  3. set x264->Base->General Settings->Encoding mode to 'constant rate factor (1-pass)' to get a shorter command line, which gave me:
    Code:
    x264 --crf 18.00 --profile high --level 4.1 --direct auto --sync-lookahead 27 --qcomp 0.5 --no-mbtree --partitions i4x4,p8x8,b8x8 --no-fast-pskip --subme 5 --trellis 0 --weightp 1 --aq-mode 0 --vbv-maxrate 62500 --vbv-bufsize 78125 --sar 1:1 --qpfile GENERATED_QP_FILE --non-deterministic --range tv --colormatrix bt470bg --demuxer raw --input-res 640x480 --input-csp i420 --input-depth 8 --fps 25 --output-depth 8 --output "H:\Temp\Test-AC3-5.1_new.264" -
  4. since no preset was applied, 'x264->Rate Control->Settings->Lookahead (frames)' is set to 40 and not shown inside the command line.
  5. set an output
  6. added a job to the job queue
  7. started the job
  8. waited for it to finish
  9. looked at the output using mediainfo to look at the 'Encoding settings'-info
'Encoding settings' shows:
Quote:Encoding settings : cabac=1 / ref=3 / deblock=1:0:0 / analyse=0x3:0x111 / me=hex / subme=5 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=0 / chroma_qp_offset=0 / threads=15 / lookahead_threads=3 / 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=3 / weightb=1 / open_gop=0 / weightp=1 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=crf / mbtree=0 / crf=18.0 / qcomp=0.50 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=62500 / vbv_bufsize=78125 / crf_max=0.0 / nal_hrd=none / filler=0 / ip_ratio=1.40 / pb_ratio=1.30 / aq=0
which looks right to me.

Note that:
  • applying 'preset slower/veryslow/placebo' does change the lookahead to 60 and the lookahead doesn't still show up in the command line since the presets change the assumed defaults.
  • if you are confused by Hybrid minimizing the command line for presets&co, you can disable 'x264->Misc->Main->Adjustments->Minimize command line' to see and Hybrid using an unshortened command line.

-> Can't reproduce that the output always shows 60 without further details.
So please provide more details into how you produce the problem.

Cu Selur

andrewschen

I guess the issue is just like what you said:

when 'x264->Misc->Main->Adjustments->Minimize command line' is enabled, Hybrid always minimize the rc-lookahead value in the command line when it is the default value of the current preset, or it is 40.

So if I:

1. Enable 'x264->Misc->Main->Adjustments->Minimize command line'
2. Apply a preset whose rc-lookahead value is not 40
3. Manually sets rc-lookahead to 40 by Hybrid GUI interface option
4. Encode a file, whose rc-lookahead value will be the default value ot current preset
5. Disable 'x264->Misc->Main->Adjustments->Minimize command line'
6. Encode again and save to a different file, whose rc-lookahead value will be 40 now

This looks like a bug to me about the 'x264->Misc->Main->Adjustments->Minimize command line' option.

Of course, if 'x264->Misc->Main->Adjustments->Minimize command line' is disabled, everything will be fine.
Will look into it over the weekend and report back.

Cu Selur