[FFmpeg-trac] #448(avcodec:new): libx264 preset's rc_lookahead value is overwritten
FFmpeg
trac at avcodec.org
Fri Sep 9 22:53:07 CEST 2011
#448: libx264 preset's rc_lookahead value is overwritten
------------------------------------+--------------------------------------
Reporter: rectalogic | Type: defect
Status: new | Priority: normal
Component: avcodec | Version: git-master
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
------------------------------------+--------------------------------------
Specifying -preset slow with libx264 should result in rc_lookahead of 50,
instead it is 40.
In X264_init() x4->params.rc.i_lookahead is initialized to 50 by
x264_param_default_preset() for the "slow" preset. But then later it is
overwritten by avctx->rc_lookahead which is 40
This problem was introduced in commit
d4b967131842e7c225e5f83cb82337d4474a0bb7 which added the rc_lookahead
private option.
From a gdb session:
{{{
257 if (x4->preset || x4->tune)
(gdb)
258 if (x264_param_default_preset(&x4->params, x4->preset,
x4->tune) < 0) {
(gdb) p x4->preset
$7 = 0x14790c0 "slow"
(gdb) n
263 if (avctx->level > 0)
(gdb) p x4->params.rc.i_lookahead
$8 = 50
[...]
335 if (avctx->rc_lookahead >= 0)
(gdb)
336 x4->params.rc.i_lookahead =
avctx->rc_lookahead;
(gdb)
337 if (avctx->weighted_p_pred >= 0)
(gdb) p x4->params.rc.i_lookahead
$9 = 40
}}}
Full ffmpeg output:
{{{
ffmpeg -i /tmp/apollo11.mov -an -codec:v libx264 -preset:v slow -y
/tmp/foo.mp4
ffmpeg version N-32420-g88fddd0, Copyright (c) 2000-2011 the FFmpeg
developers
built on Sep 9 2011 20:33:39 with gcc 4.4.3
configuration: --extra-cflags=-I/opt/motionbox/foundation/6.4.0/include
--extra-ldflags=-L/opt/motionbox/foundation/6.4.0/lib --enable-libx264
--enable-gpl --enable-debug=gdb3 --disable-optimizations
libavutil 51. 16. 0 / 51. 16. 0
libavcodec 53. 13. 0 / 53. 13. 0
libavformat 53. 12. 0 / 53. 12. 0
libavdevice 53. 3. 0 / 53. 3. 0
libavfilter 2. 39. 0 / 2. 39. 0
libswscale 2. 1. 0 / 2. 1. 0
libpostproc 51. 2. 0 / 51. 2. 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x25d6780] max_analyze_duration 5000000 reached
at 5000000
Seems stream 0 codec frame rate differs from container frame rate: 600.00
(600/1) -> 3.00 (3/1)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/apollo11.mov':
Metadata:
creation_time : 1998-01-05 21:59:31
Duration: 00:00:06.66, start: 0.000000, bitrate: 22 kb/s
Stream #0.0(eng): Video: svq1 (SVQ1 / 0x31515653), yuv410p, 80x60, 13
kb/s, SAR 1:1 DAR 4:3, 3 fps, 3 tbr, 600 tbn, 600 tbc
Metadata:
creation_time : 1998-01-05 21:59:31
Stream #0.1(eng): Audio: qcelp (Qclp / 0x706C6351), 8000 Hz, 1
channels, flt
Metadata:
creation_time : 1998-01-05 21:59:31
Incompatible pixel format 'yuv410p' for codec 'libx264', auto-selecting
format 'yuv420p'
[buffer @ 0x25d1200] w:80 h:60 pixfmt:yuv410p tb:1/1000000 sar:1/1
sws_param:
[buffersink @ 0x25d7ec0] auto-inserting filter 'auto-inserted scaler 0'
between the filter 'src' and the filter 'out'
[scale @ 0x25d8520] w:80 h:60 fmt:yuv410p -> w:80 h:60 fmt:yuv420p
flags:0x4
[libx264 @ 0x25de5c0] using SAR=1/1
[libx264 @ 0x25de5c0] using cpu capabilities: MMX2 SSE2Fast SSSE3
FastShuffle SSE4.2
[libx264 @ 0x25de5c0] profile Main, level 1.0
[libx264 @ 0x25de5c0] 264 - core 116 mbox/4.3.1 - H.264/MPEG-4 AVC codec -
Copyleft 2003-2011 - http://www.videolan.org/x264.html - options: cabac=1
ref=5 deblock=1:0:0 analyse=0x1:0x111 me=umh subme=8 psy=1
psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=1 8x8dct=0
cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=1
sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0
constrained_intra=0 bframes=3 b_pyramid=0 b_adapt=2 b_bias=0 direct=3
weightb=0 open_gop=0 weightp=2 keyint=250 keyint_min=3 scenecut=40
intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60
qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to '/tmp/foo.mp4':
Metadata:
creation_time : 1998-01-05 21:59:31
encoder : Lavf53.12.0
Stream #0.0(eng): Video: h264 (![0][0][0] / 0x0021), yuv420p, 80x60
[SAR 1:1 DAR 4:3], q=-1--1, 3 tbn, 3 tbc
Metadata:
creation_time : 1998-01-05 21:59:31
Stream mapping:
Stream #0.0 -> #0.0 (svq1 -> libx264)
Press [q] to stop, [?] for help
frame= 20 fps= 0 q=21.0 Lsize= 16kB time=00:00:06.33 bitrate=
20.8kbits/s
video:15kB audio:0kB global headers:0kB muxing overhead 7.083741%
frame I:1 Avg QP:20.35 size: 867
[libx264 @ 0x25de5c0] frame P:9 Avg QP:22.59 size: 852
[libx264 @ 0x25de5c0] frame B:10 Avg QP:23.73 size: 611
[libx264 @ 0x25de5c0] consecutive B-frames: 15.0% 50.0% 15.0% 20.0%
[libx264 @ 0x25de5c0] mb I I16..4: 15.0% 0.0% 85.0%
[libx264 @ 0x25de5c0] mb P I16..4: 4.4% 0.0% 57.8% P16..4: 10.6% 11.7%
15.6% 0.0% 0.0% skip: 0.0%
[libx264 @ 0x25de5c0] mb B I16..4: 0.0% 0.0% 37.5% B16..8: 18.0% 18.0%
19.6% direct: 6.5% skip: 0.5% L0:49.4% L1:27.2% BI:23.4%
[libx264 @ 0x25de5c0] direct mvs spatial:0.0% temporal:100.0%
[libx264 @ 0x25de5c0] coded y,uvDC,uvAC intra: 96.1% 94.7% 63.3% inter:
75.4% 92.2% 28.5%
[libx264 @ 0x25de5c0] i16 v,h,dc,p: 0% 64% 18% 18%
[libx264 @ 0x25de5c0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 32% 13% 11% 5% 6%
9% 6% 8% 10%
[libx264 @ 0x25de5c0] i8c dc,h,v,p: 35% 18% 29% 17%
[libx264 @ 0x25de5c0] Weighted P-Frames: Y:33.3% UV:22.2%
[libx264 @ 0x25de5c0] ref P L0: 76.5% 8.8% 5.9% 5.9% 1.5% 1.5%
[libx264 @ 0x25de5c0] ref B L0: 96.8% 2.4% 0.9%
[libx264 @ 0x25de5c0] kb/s:17.57
}}}
--
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/448>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list