[FFmpeg-user] Different conversion results on similar conversion runs.

Anatol anatol2002 at gmail.com
Sun Oct 13 05:47:07 CEST 2013


Hi,
I have came across a following strange ffmpeg behavior -
The same conversion session executed consecutively gives different results.
"same conversion session" means:
- same machine
- same source
- same ffmpeg
- same command line

The difference is of 2-3 kbps.

Command line + complete console output:
ffmpeg -threads 1 -i sourcefile.mp4 -c:v libx264  -subq 5 -qcomp 0.6 -qmin
10 -qmax 50 -qdiff 4 -coder 1 -refs 2 -vprofile main -force_key_frames
 0,2.002,4.004,6.006,8.008,10.01,12.012,14.014,16.016,18.018,20.02,22.022,24.024,26.026,28.028,30.03,32.032,34.034,36.036,38.038,40.04,42.042,44.044,46.046,48.048,50.0501,52.0521,54.0541,56.0561,58.0581,60.0601,62.0621,64.0641,66.0661,68.0681
-pix_fmt yuv420p -b:v 1200k -s 848x480 -r 29.97 -g 60 -c:a libfaac -b:a 64k
-ar 44100 -ac 2 -map_chapters -1 -map_metadata -1  -f mp4 -flags +loop+mv4
-cmp 256 -partitions +parti4x4+partp8x8+partb8x8 -trellis 1 -refs 1
-me_range 16 -keyint_min 20 -sc_threshold 40 -i_qfactor 0.71 -bt 400k
-maxrate 1200k -bufsize 1200k -rc_eq 'blurCplx^(1-qComp)' -level 30 -async
2  -vsync 1 -y outputfile.mp4

ffmpeg version 1.1.1 Copyright (c) 2000-2013 the FFmpeg developers
  built on Feb 26 2013 16:35:13 with gcc 4.1.2 (GCC) 20080704 (Red Hat
4.1.2-52)
  configuration: --extra-cflags=-O2 --enable-bzlib --disable-devices
--enable-libfaac --enable-libfdk-aac --enable-libaacplus --enable-libgsm
--enable-libmp3lame --enable-libschroedinger --enabl
e-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid
--enable-filter=movie --enable-avfilter --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-libopenjpeg --enable-libvp
x --enable-libspeex --enable-postproc --enable-pthreads --enable-libass
--enable-libfreetype --enable-fontconfig --disable-static --enable-shared
--enable-gpl --disable-debug --disable-optimizat
ions --disable-stripping --extra-cflags=-fPIC --extra-ldflags=-fPIC
--enable-nonfree --enable-version3 --libdir=/usr/local/lib
  libavutil      52. 13.100 / 52. 13.100
  libavcodec     54. 86.100 / 54. 86.100
  libavformat    54. 59.106 / 54. 59.106
  libavdevice    54.  3.102 / 54.  3.102
  libavfilter     3. 32.100 /  3. 32.100
  libswscale      2.  1.103 /  2.  1.103
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'sourcefile.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf54.59.106
  Duration: 00:01:10.78, start: 0.023220, bitrate: 1129 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p,
1024x576, 1046 kb/s, 29.97 fps, 29.97 tbr, 11988 tbn, 59.94 tbc
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo,
fltp, 74 kb/s
    Metadata:
      handler_name    : SoundHandler
-async is forwarded to lavfi similarly to -af
aresample=async=2:min_hard_comp=0.100000.
[libx264 @ 0x13f52e0] MB rate (47652) > level limit (40500)
[libx264 @ 0x13f52e0] using cpu capabilities: MMX2 SSE2Fast SSSE3
FastShuffle SSE4.2 AVX
[libx264 @ 0x13f52e0] profile Main, level 3.0
[libx264 @ 0x13f52e0] 264 - core 129 - H.264/MPEG-4 AVC codec - Copyleft
2003-2012 - - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x1:0x111 me=hex
subme=5 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=0 threads=48
lookahead_threads=7 sliced_threads=0 nr=0 decimate=1 in
terlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2
b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=60
keyint_min=20 scenecut=40 intra_refresh=0 rc_lookahead=4
0 rc=cbr mbtree=1 bitrate=1200 ratetol=1.0 qcomp=0.60 qpmin=10 qpmax=50
qpstep=4 vbv_maxrate=1200 vbv_bufsize=1200 nal_hrd=none ip_ratio=1.40
aq=1:1.00
Output #0, mp4, to 'outputfile.mp4':
  Metadata:
    encoder         : Lavf54.59.106
    Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 848x480,
q=10-50, 1200 kb/s, 11988 tbn, 29.97 tbc
    Stream #0:1: Audio: aac ([64][0][0][0] / 0x0040), 44100 Hz, stereo,
s16, 64 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (h264 -> libx264)
  Stream #0:1 -> #0:1 (aac -> libfaac)
Press [q] to stop, [?] for help
frame=  537 fps=133 q=19.0 size=    1768kB time=00:00:17.80 bitrate=
813.5kbits/s dup=1 drop=0
frame= 1169 fps=145 q=16.0 size=    3940kB time=00:00:38.89 bitrate=
843.6kbits/s dup=1 drop=0
frame= 1685 fps=139 q=19.0 size=    5929kB time=00:00:53.80 bitrate=
867.6kbits/s dup=1 drop=0
frame= 2121 fps=140 q=-1.0 Lsize=    8071kB time=00:01:10.77 bitrate=
934.2kbits/s dup=1 drop=0
video:7533kB audio:464kB subtitle:0 global headers:0kB muxing overhead
0.927112%
[libx264 @ 0x13f52e0] frame I:43    Avg QP:17.97  size: 58212
[libx264 @ 0x13f52e0] frame P:774   Avg QP:20.93  size:  5918
[libx264 @ 0x13f52e0] frame B:1304  Avg QP:19.52  size:   483
[libx264 @ 0x13f52e0] consecutive B-frames: 16.9%  1.9%  4.2% 76.9%
[libx264 @ 0x13f52e0] mb I  I16..4: 32.8%  0.0% 67.2%
[libx264 @ 0x13f52e0] mb P  I16..4: 13.5%  0.0%  4.9%  P16..4: 28.7% 10.1%
 5.1%  0.0%  0.0%    skip:37.6%
[libx264 @ 0x13f52e0] mb B  I16..4:  0.2%  0.0%  0.0%  B16..8:  5.6%  1.6%
 0.1%  direct: 4.3%  skip:88.1%  L0:34.4% L1:58.4% BI: 7.2%
[libx264 @ 0x13f52e0] coded y,uvDC,uvAC intra: 34.7% 63.6% 31.7% inter:
5.6% 15.0% 2.2%
[libx264 @ 0x13f52e0] i16 v,h,dc,p: 31% 34% 19% 16%
[libx264 @ 0x13f52e0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 21% 25% 21%  3%  8%
10%  6%  4%  4%
[libx264 @ 0x13f52e0] i8c dc,h,v,p: 47% 27% 18%  8%
[libx264 @ 0x13f52e0] Weighted P-Frames: Y:3.7% UV:3.2%
[libx264 @ 0x13f52e0] kb/s:871.88


thanks,
Anatol


More information about the ffmpeg-user mailing list