1

I use FFmpeg to compress videos (amongst other things) on Android. I have been using an FFmpeg build from 2015 for some time now and wanted to upgrade, preferably to the git master. I built FFmpeg master using a modification of:

https://github.com/writingminds/ffmpeg-android

It creates a compiled binary that is run from Java. In my tests I am finding that the master branch version is significantly (~x2) slower than my older version, and introducing many more out of memory errors. A sample comparison on a common device (Moto G) is:

2015-02-25 build log (27s):

11-22 10:44:40.015: ffmpeg -y -i new_a41900f8-1748-4834-a940-83160ee1887e.mp4 -f lavfi -i aevalsrc=0 -shortest -strict -2 -vcodec libx264 -vf scale=iw*min(1280/iw\,720/ih):ih*min(1280/iw\,720/ih),pad=1280:720:(1280-iw*min(1280/iw\,720/ih))/2:(720-ih*min(1280/iw\,720/ih))/2 -preset faster -crf 28 -acodec libfdk_aac -map_metadata -1 -movflags faststart new_a41900f8-1748-4834-a940-83160ee1887e_c.mp4 
11-22 10:44:40.067: WARNING: linker: ffmpeg has text relocations. This is wasting memory and prevents security hardening. Please fix.
11-22 10:44:40.074: ffmpeg version git-2015-02-25-b0d3322 Copyright (c) 2000-2015 the FFmpeg developers
11-22 10:44:40.074:   built with gcc 4.8 (GCC)
11-22 10:44:40.076:   configuration: --pkg-config-flags=--static --arch=arm --cpu=cortex-a8 --target-os=linux --enable-runtime-cpudetect --enable-pic --disable-shared --enable-static --cross-prefix=/home/jon/Development/android-ndk-r10d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi- --enable-cross-compile --sysroot=/home/jon/Development/android-ndk-r10d/platforms/android-9/arch-arm/ --extra-cflags='-I../x264 -mfloat-abi=softfp -mfpu=neon -fPIE -pie -I../libfdk_aac/include -mfloat-abi=softfp -mfpu=neon -fPIE -pie' --extra-ldflags='-L../x264 -fPIE -pie -L../libfdk_aac/lib -fPIE -pie' --enable-version3 --enable-gpl --disable-doc --enable-yasm --disable-decoders --enable-decoder='mpeg4,aac,h264,mpegvideo,mpeg1video,mpeg2video,png,mjpeg,rawvideo,mp3,pcm_s16le,pcm_u8' --disable-encoders --enable-encoder='mpeg4,aac,h264,libx264,mpeg1video,mpeg2video,png,mjpeg,libfdk_aac,rawvideo,pcm_s16le' --disable-parsers --enable-parser='aac,mpeg4video,ac3,h261,h264,vc1,mpegvideo' --disable-demuxers --enable-demuxer='aac,h264,mpegvideo,m4v,mov,vc1,mp4,concat,image2,mpegts,mp3,pcm_s16le' --disable-muxers --enable-muxer='h264,mpeg1video,mpeg2video,m4v,mov,vc1,md5,mp4,image2,mpegts,segment,null' --enable-protocols --disable-filters --enable-filter='aresample,scale,movie,overlay,color,fade,afade,pad,asetpts,amerge,aevalsrc,concat,amix,colorchannelmixer,eq,hue,atempo,hflip,vflip,transpose,volume,anullsrc' --enable-avfilter --disable-indevs --enable-indev=v4l2 --enable-indev=lavfi --disable-outdevs --enable-hwaccels --enable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-symver --enable-network --enable-libx264 --enable-zlib --enable-nonfree --enable-libfdk-aac --enable-pthreads
11-22 10:44:40.076:   libavutil      54. 19.100 / 54. 19.100
11-22 10:44:40.076:   libavcodec     56. 26.100 / 56. 26.100
11-22 10:44:40.076:   libavformat    56. 23.105 / 56. 23.105
11-22 10:44:40.076:   libavdevice    56.  4.100 / 56.  4.100
11-22 10:44:40.076:   libavfilter     5. 11.101 /  5. 11.101
11-22 10:44:40.076:   libswscale      3.  1.101 /  3.  1.101
11-22 10:44:40.077:   libswresample   1.  1.100 /  1.  1.100
11-22 10:44:40.077:   libpostproc    53.  3.100 / 53.  3.100
11-22 10:44:40.814: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'new_a41900f8-1748-4834-a940-83160ee1887e.mp4':
11-22 10:44:40.814:   Metadata:
11-22 10:44:40.814:     major_brand     : mp42
11-22 10:44:40.815:     minor_version   : 0
11-22 10:44:40.815:     compatible_brands: isommp42
11-22 10:44:40.815:     creation_time   : 2016-11-22 10:32:14
11-22 10:44:40.815:   Duration: 00:00:03.98, start: 0.000000, bitrate: 10927 kb/s
11-22 10:44:40.815:     Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720, 9986 kb/s, SAR 1:1 DAR 16:9, 20.86 fps, 90k tbr, 90k tbn, 180k tbc (default)
11-22 10:44:40.815:     Metadata:
11-22 10:44:40.815:       creation_time   : 2016-11-22 10:32:14
11-22 10:44:40.815:       handler_name    : VideoHandle
11-22 10:44:40.815:       encoder         : MOTO
11-22 10:44:40.816:     Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
11-22 10:44:40.816:     Metadata:
11-22 10:44:40.816:       creation_time   : 2016-11-22 10:32:14
11-22 10:44:40.816:       handler_name    : SoundHandle
11-22 10:44:40.821: Input #1, lavfi, from 'aevalsrc=0':
11-22 10:44:40.821:   Duration: N/A, start: 0.000000, bitrate: N/A
11-22 10:44:40.821:     Stream #1:0: Audio: pcm_f64le, 44100 Hz, mono, dbl, 2822 kb/s
11-22 10:44:40.828: [libx264 @ 0xb91a3970] using SAR=1/1
11-22 10:44:40.834: [libx264 @ 0xb91a3970] using cpu capabilities: ARMv6 NEON
11-22 10:44:40.960: [libx264 @ 0xb91a3970] profile High, level 3.1
11-22 10:44:40.961: [libx264 @ 0xb91a3970] 264 - core 142 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=1 ref=2 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=4 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=1 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=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=20 scenecut=40 intra_refresh=0 rc_lookahead=20 rc=crf mbtree=1 crf=28.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
11-22 10:44:40.977: Output #0, mp4, to 'new_a41900f8-1748-4834-a940-83160ee1887e_c.mp4':
11-22 10:44:40.978:   Metadata:
11-22 10:44:40.979:     encoder         : Lavf56.23.105
11-22 10:44:40.981:     Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 20.86 fps, 3735k tbn, 20.86 tbc (default)
11-22 10:44:40.982:     Metadata:
11-22 10:44:40.983:       encoder         : Lavc56.26.100 libx264
11-22 10:44:40.985:     Stream #0:1: Audio: aac (libfdk_aac) ([64][0][0][0] / 0x0040), 48000 Hz, stereo, s16, 139 kb/s (default)
11-22 10:44:40.985:     Metadata:
11-22 10:44:40.986:       encoder         : Lavc56.26.100 libfdk_aac
11-22 10:44:40.986: Stream mapping:
11-22 10:44:40.986:   Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
11-22 10:44:40.986:   Stream #0:1 -> #0:1 (aac (native) -> aac (libfdk_aac))
11-22 10:44:40.986: Press [q] to stop, [?] for help
11-22 10:44:41.512: Past duration 0.687492 too large
11-22 10:44:41.529: frame=    6 fps=0.0 q=0.0 size=       0kB time=00:00:01.00 bitrate=   0.4kbits/s  
11-22 10:44:41.540: Past duration 0.851555 too large
11-22 10:44:42.034: frame=   20 fps= 20 q=0.0 size=       0kB time=00:00:01.00 bitrate=   0.4kbits/s dup=0 drop=1    
11-22 10:44:44.118: frame=   27 fps=9.1 q=0.0 size=       0kB time=00:00:02.00 bitrate=   0.2kbits/s dup=0 drop=1    
11-22 10:44:44.129: Past duration 0.980461 too large
11-22 10:44:44.155: Past duration 0.941399 too large
11-22 10:44:44.364: Past duration 0.894524 too large
11-22 10:44:44.431: Past duration 0.851555 too large
11-22 10:44:44.554: Past duration 0.808586 too large
11-22 10:44:44.861: frame=   32 fps=9.0 q=33.0 size=      56kB time=00:00:02.00 bitrate= 226.7kbits/s dup=0 drop=1    
11-22 10:44:44.882: Past duration 0.765617 too large
11-22 10:44:45.164: Past duration 0.722649 too large
11-22 10:44:45.339: frame=   34 fps=8.1 q=33.0 size=      74kB time=00:00:02.00 bitrate= 300.6kbits/s dup=0 drop=1    
11-22 10:44:45.344: Past duration 0.675774 too large
11-22 10:44:45.645: Past duration 0.632805 too large
11-22 10:44:45.931: frame=   37 fps=7.7 q=33.0 size=      94kB time=00:00:02.00 bitrate= 383.2kbits/s dup=0 drop=1    
11-22 10:44:46.306: frame=   40 fps=7.5 q=33.0 size=     111kB time=00:00:02.02 bitrate= 450.3kbits/s dup=0 drop=1    
11-22 10:44:46.913: frame=   43 fps=7.3 q=33.0 size=     127kB time=00:00:03.00 bitrate= 344.9kbits/s dup=0 drop=1  
11-22 10:44:47.813: frame=   48 fps=7.3 q=33.0 size=     168kB time=00:00:03.00 bitrate= 456.9kbits/s dup=0 drop=1    
11-22 10:44:48.311: frame=   51 fps=7.0 q=33.0 size=     183kB time=00:00:03.00 bitrate= 497.2kbits/s dup=0 drop=1    
11-22 10:44:49.101: frame=   56 fps=7.1 q=33.0 size=     218kB time=00:00:03.00 bitrate= 594.6kbits/s dup=0 drop=1    
11-22 10:44:49.652: frame=   59 fps=6.9 q=33.0 size=     251kB time=00:00:03.00 bitrate= 682.4kbits/s dup=0 drop=1    
11-22 10:44:50.465: frame=   64 fps=7.0 q=33.0 size=     286kB time=00:00:03.90 bitrate= 599.1kbits/s dup=1 drop=1   
11-22 10:44:50.700: frame=   66 fps=6.8 q=33.0 size=     299kB time=00:00:03.90 bitrate= 626.9kbits/s dup=1 drop=1    
11-22 10:44:52.034: frame=   70 fps=6.6 q=33.0 size=     349kB time=00:00:03.90 bitrate= 731.5kbits/s dup=1 drop=1    
11-22 10:44:52.149: frame=   74 fps=6.6 q=33.0 size=     416kB time=00:00:03.90 bitrate= 872.8kbits/s dup=1 drop=1    
11-22 10:44:53.238: frame=   77 fps=6.4 q=33.0 size=     440kB time=00:00:03.90 bitrate= 923.3kbits/s dup=1 drop=1    
11-22 10:44:54.059: frame=   83 fps=6.6 q=33.0 size=     489kB time=00:00:03.90 bitrate=1024.9kbits/s dup=1 drop=1    
11-22 10:44:57.177: [mp4 @ 0xb91fe240] Starting second pass: moving the moov atom to the beginning of the file
11-22 10:44:57.193: frame=   83 fps=5.1 q=-1.0 Lsize=     818kB time=00:00:03.94 bitrate=1696.9kbits/s dup=1 drop=1    
11-22 10:44:57.196: video:745kB audio:68kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.498536%
11-22 10:44:57.212: [libx264 @ 0xb91a3970] frame I:2     Avg QP:28.52  size: 34902
11-22 10:44:57.213: [libx264 @ 0xb91a3970] frame P:44    Avg QP:29.24  size: 12132
11-22 10:44:57.213: [libx264 @ 0xb91a3970] frame B:37    Avg QP:32.25  size:  4296
11-22 10:44:57.213: [libx264 @ 0xb91a3970] consecutive B-frames: 20.5% 50.6% 28.9%  0.0%
11-22 10:44:57.213: [libx264 @ 0xb91a3970] mb I  I16..4: 10.5% 67.1% 22.4%
11-22 10:44:57.213: [libx264 @ 0xb91a3970] mb P  I16..4:  5.0% 16.7%  1.0%  P16..4: 39.5%  9.3%  1.5%  0.0%  0.0%    skip:27.0%
11-22 10:44:57.214: [libx264 @ 0xb91a3970] mb B  I16..4:  1.1%  3.3%  0.1%  B16..8: 22.8%  2.4%  0.1%  direct:15.9%  skip:54.3%  L0:41.9% L1:55.0% BI: 3.1%
11-22 10:44:57.217: [libx264 @ 0xb91a3970] 8x8 transform intra:72.8% inter:46.4%
11-22 10:44:57.217: [libx264 @ 0xb91a3970] coded y,uvDC,uvAC intra: 46.5% 63.6% 17.0% inter: 10.6% 23.3% 0.4%
11-22 10:44:57.217: [libx264 @ 0xb91a3970] i16 v,h,dc,p: 23% 39% 17% 20%
11-22 10:44:57.217: [libx264 @ 0xb91a3970] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 14% 37% 20%  2%  6%  5%  5%  5%  6%
11-22 10:44:57.217: [libx264 @ 0xb91a3970] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19% 29% 17%  4%  9%  5%  7%  4%  7%
11-22 10:44:57.217: [libx264 @ 0xb91a3970] i8c dc,h,v,p: 50% 27% 14%  8%
11-22 10:44:57.217: [libx264 @ 0xb91a3970] Weighted P-Frames: Y:9.1% UV:9.1%
11-22 10:44:57.217: [libx264 @ 0xb91a3970] ref P L0: 78.1% 21.9%
11-22 10:44:57.218: [libx264 @ 0xb91a3970] ref B L0: 86.8% 13.2%
11-22 10:44:57.218: [libx264 @ 0xb91a3970] ref B L1: 95.4%  4.6%
11-22 10:44:57.218: [libx264 @ 0xb91a3970] kb/s:1532.91

git master log (45s):

11-22 10:36:56.308: ffmpeg -y -i new_a41900f8-1748-4834-a940-83160ee1887e.mp4 -f lavfi -i aevalsrc=0 -shortest -strict -2 -vcodec libx264 -vf scale=iw*min(1280/iw\,720/ih):ih*min(1280/iw\,720/ih),pad=1280:720:(1280-iw*min(1280/iw\,720/ih))/2:(720-ih*min(1280/iw\,720/ih))/2 -preset faster -crf 28 -acodec libfdk_aac -map_metadata -1 -movflags faststart new_a41900f8-1748-4834-a940-83160ee1887e_c.mp4 
11-22 10:36:56.379: WARNING: linker: ffmpeg: unused DT entry: type 0x6ffffffe arg 0x1db4
11-22 10:36:56.380: WARNING: linker: ffmpeg: unused DT entry: type 0x6fffffff arg 0x3
11-22 10:36:56.380: ffmpeg version N-82113-g490c6bd Copyright (c) 2000-2016 the FFmpeg developers
11-22 10:36:56.380:   built with gcc 4.9.x (GCC) 20150123 (prerelease)
11-22 10:36:56.380:   configuration: --target-os=linux --cross-prefix=/home/jon/workspace/writing-minds-ffmpeg-android/toolchain-android/bin/arm-linux-androideabi- --arch=arm --cpu=cortex-a8 --enable-runtime-cpudetect --sysroot=/home/jon/workspace/writing-minds-ffmpeg-android/toolchain-android/sysroot --enable-pic --enable-libx264 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-fontconfig --enable-pthreads --disable-debug --disable-ffserver --enable-version3 --enable-hardcoded-tables --disable-ffplay --disable-ffprobe --enable-gpl --enable-yasm --disable-doc --disable-shared --enable-static --pkg-config=/home/jon/workspace/writing-minds-ffmpeg-android/ffmpeg-pkg-config --prefix=/home/jon/workspace/writing-minds-ffmpeg-android/build/armeabi-v7a --extra-cflags='-I/home/jon/workspace/writing-minds-ffmpeg-android/toolchain-android/include -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-all' --extra-ldflags='-L/home/jon/workspace/writing-minds-ffmpeg-android/toolchain-android/lib -Wl,-z,relro -Wl,-z,now -pie' --extra-libs='-lpng -lexpat -lm' --extra-cxxflags= --disable-decoders --enable-decoder='mpeg4,aac,h264,mpegvideo,mpeg1video,mpeg2video,png,mjpeg,rawvideo,mp3,pcm_s16le,pcm_u8' --disable-encoders --enable-encoder='mpeg4,aac,h264,libx264,mpeg1video,mpeg2video,png,mjpeg,libfdk_aac,rawvideo,pcm_s16le,wrapped_avframe' --disable-parsers --enable-parser='aac,mpeg4video,ac3,h261,h264,vc1,mpegvideo' --disable-demuxers --enable-demuxer='aac,h264,mpegvideo,m4v,mov,vc1,mp4,concat,image2,mpegts,mp3,pcm_s16le' --disable-muxers --enable-muxer='h264,mpeg1video,mpeg2video,m4v,mov,vc1,md5,mp4,image2,mpegts,segment,null' --disable-filters --enable-filter='aresample,scale,movie,overlay,color,fade,afade,pad,asetpts,amerge,aevalsrc,concat,amix,colorchannelmixer,eq,hue,atempo,hflip,vflip,transpose,volume,anullsrc' --enable-protocols --enable-avfilter --disable-indevs --enable-indev=v4l2 --enable-indev=lavfi --disable-outdevs --enable-hwaccels --enable-network --enable-zlib --enable-nonfree --enable-libfdk-aac
11-22 10:36:56.380:   libavutil      55. 33.100 / 55. 33.100
11-22 10:36:56.381:   libavcodec     57. 63.103 / 57. 63.103
11-22 10:36:56.381:   libavformat    57. 55.100 / 57. 55.100
11-22 10:36:56.381:   libavdevice    57.  0.103 / 57.  0.103
11-22 10:36:56.381:   libavfilter     6. 64.100 /  6. 64.100
11-22 10:36:56.381:   libswscale      4.  1.100 /  4.  1.100
11-22 10:36:56.381:   libswresample   2.  2.100 /  2.  2.100
11-22 10:36:56.381:   libpostproc    54.  0.100 / 54.  0.100
11-22 10:36:57.206: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'new_a41900f8-1748-4834-a940-83160ee1887e.mp4':
11-22 10:36:57.207:   Metadata:
11-22 10:36:57.210:     major_brand     : mp42
11-22 10:36:57.211:     minor_version   : 0
11-22 10:36:57.211:     compatible_brands: isommp42
11-22 10:36:57.212:     creation_time   : 2016-11-22T10:32:14.000000Z
11-22 10:36:57.215:   Duration: 00:00:03.98, start: 0.000000, bitrate: 10927 kb/s
11-22 10:36:57.215:     Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720, 9986 kb/s, SAR 1:1 DAR 16:9, 20.86 fps, 90k tbr, 90k tbn, 180k tbc (default)
11-22 10:36:57.218:     Metadata:
11-22 10:36:57.219:       creation_time   : 2016-11-22T10:32:14.000000Z
11-22 10:36:57.219:       handler_name    : VideoHandle
11-22 10:36:57.219:       encoder         : MOTO
11-22 10:36:57.220:     Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
11-22 10:36:57.221:     Metadata:
11-22 10:36:57.221:       creation_time   : 2016-11-22T10:32:14.000000Z
11-22 10:36:57.221:       handler_name    : SoundHandle
11-22 10:36:57.221: Input #1, lavfi, from 'aevalsrc=0':
11-22 10:36:57.221:   Duration: N/A, start: 0.000000, bitrate: N/A
11-22 10:36:57.221:     Stream #1:0: Audio: pcm_f64le, 44100 Hz, mono, dbl, 2822 kb/s
11-22 10:36:57.254: [libx264 @ 0xb8a56880] using SAR=1/1
11-22 10:36:57.263: [libx264 @ 0xb8a56880] using cpu capabilities: none!
11-22 10:36:57.455: [libx264 @ 0xb8a56880] profile High, level 3.1
11-22 10:36:57.456: [libx264 @ 0xb8a56880] 264 - core 148 - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - http://www.videolan.org/x264.html - options: cabac=1 ref=2 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=4 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=1 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=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=20 scenecut=40 intra_refresh=0 rc_lookahead=20 rc=crf mbtree=1 crf=28.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
11-22 10:36:57.459: Output #0, mp4, to 'new_a41900f8-1748-4834-a940-83160ee1887e_c.mp4':
11-22 10:36:57.459:   Metadata:
11-22 10:36:57.460:     encoder         : Lavf57.55.100
11-22 10:36:57.462:     Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 20.86 fps, 3735k tbn, 20.86 tbc (default)
11-22 10:36:57.463:     Metadata:
11-22 10:36:57.463:       encoder         : Lavc57.63.103 libx264
11-22 10:36:57.464:     Side data:
11-22 10:36:57.464:       cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
11-22 10:36:57.466:     Stream #0:1: Audio: aac (libfdk_aac) ([64][0][0][0] / 0x0040), 48000 Hz, stereo, s16, 139 kb/s (default)
11-22 10:36:57.466:     Metadata:
11-22 10:36:57.466:       encoder         : Lavc57.63.103 libfdk_aac
11-22 10:36:57.466: Stream mapping:
11-22 10:36:57.466:   Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
11-22 10:36:57.466:   Stream #0:1 -> #0:1 (aac (native) -> aac (libfdk_aac))
11-22 10:36:57.466: Press [q] to stop, [?] for help
11-22 10:36:58.047: frame=    3 fps=0.0 q=0.0 size=       0kB time=00:00:01.00 bitrate=   0.0kbits/s speed=1.85x  
11-22 10:36:58.144: Past duration 0.687492 too large
11-22 10:36:58.207: Past duration 0.851555 too large
11-22 10:36:58.554: frame=   14 fps= 13 q=0.0 size=       0kB time=00:00:01.00 bitrate=   0.0kbits/s speed=0.957x    
11-22 10:36:59.082: frame=   23 fps= 15 q=0.0 size=       0kB time=00:00:02.00 bitrate=   0.0kbits/s dup=0 drop=1 speed=1.27x  
11-22 10:37:04.570: frame=   27 fps=4.0 q=0.0 size=       0kB time=00:00:02.00 bitrate=   0.0kbits/s dup=0 drop=1 speed=0.298x    
11-22 10:37:04.578: Past duration 0.980461 too large
11-22 10:37:04.610: Past duration 0.941399 too large
11-22 10:37:05.154: Past duration 0.894524 too large
11-22 10:37:05.198: frame=   30 fps=3.9 q=0.0 size=       0kB time=00:00:02.00 bitrate=   0.0kbits/s dup=0 drop=1 speed=0.261x    
11-22 10:37:05.201: Past duration 0.851555 too large
11-22 10:37:05.248: Past duration 0.808586 too large
11-22 10:37:06.767: Past duration 0.765617 too large
11-22 10:37:07.329: frame=   33 fps=3.5 q=33.0 size=      60kB time=00:00:02.00 bitrate= 244.3kbits/s dup=0 drop=1 speed=0.216x    
11-22 10:37:07.329: Past duration 0.722649 too large
11-22 10:37:07.568: frame=   34 fps=3.4 q=33.0 size=      74kB time=00:00:02.00 bitrate= 300.6kbits/s dup=0 drop=1 speed=0.203x    
11-22 10:37:07.569: Past duration 0.675774 too large
11-22 10:37:08.517: Past duration 0.632805 too large
11-22 10:37:08.848: frame=   36 fps=3.3 q=33.0 size=      82kB time=00:00:02.00 bitrate= 333.3kbits/s dup=0 drop=1 speed=0.182x    
11-22 10:37:10.298: frame=   39 fps=3.1 q=33.0 size=     100kB time=00:00:02.00 bitrate= 409.7kbits/s dup=0 drop=1 speed=0.161x    
11-22 10:37:10.434: frame=   40 fps=3.1 q=33.0 size=     111kB time=00:00:02.68 bitrate= 339.6kbits/s dup=0 drop=1 speed=0.207x   
11-22 10:37:11.658: frame=   42 fps=3.0 q=33.0 size=     118kB time=00:00:03.00 bitrate= 322.3kbits/s dup=0 drop=1 speed=0.217x   
11-22 10:37:13.216: frame=   45 fps=2.9 q=33.0 size=     133kB time=00:00:03.00 bitrate= 362.9kbits/s dup=0 drop=1 speed=0.195x    
11-22 10:37:14.658: frame=   48 fps=2.9 q=33.0 size=     168kB time=00:00:03.00 bitrate= 456.9kbits/s dup=0 drop=1 speed=0.179x    
11-22 10:37:15.778: frame=   50 fps=2.8 q=33.0 size=     176kB time=00:00:03.00 bitrate= 478.2kbits/s dup=0 drop=1 speed=0.171x    
11-22 10:37:15.809: frame=   51 fps=2.8 q=33.0 size=     183kB time=00:00:03.00 bitrate= 497.2kbits/s dup=0 drop=1 speed=0.164x    
11-22 10:37:17.275: frame=   54 fps=2.8 q=33.0 size=     202kB time=00:00:03.00 bitrate= 549.2kbits/s dup=0 drop=1 speed=0.158x    
11-22 10:37:17.897: frame=   55 fps=2.8 q=33.0 size=     206kB time=00:00:03.00 bitrate= 559.9kbits/s dup=0 drop=1 speed=0.152x    
11-22 10:37:18.178: frame=   56 fps=2.7 q=33.0 size=     218kB time=00:00:03.00 bitrate= 594.6kbits/s dup=0 drop=1 speed=0.147x    
11-22 10:37:19.318: frame=   58 fps=2.8 q=33.0 size=     234kB time=00:00:03.00 bitrate= 636.5kbits/s dup=0 drop=1 speed=0.143x    
11-22 10:37:20.048: frame=   59 fps=2.7 q=33.0 size=     251kB time=00:00:03.00 bitrate= 683.2kbits/s dup=0 drop=1 speed=0.138x    
11-22 10:37:20.486: frame=   60 fps=2.7 q=33.0 size=     256kB time=00:00:03.00 bitrate= 696.0kbits/s dup=0 drop=1 speed=0.133x    
11-22 10:37:20.545: frame=   60 fps=2.6 q=33.0 size=     256kB time=00:00:03.39 bitrate= 617.2kbits/s dup=0 drop=1 speed=0.147x  
11-22 10:37:22.928: frame=   65 fps=2.6 q=33.0 size=     292kB time=00:00:03.90 bitrate= 611.7kbits/s dup=1 drop=1 speed=0.159x  
11-22 10:37:22.961: frame=   66 fps=2.6 q=33.0 size=     300kB time=00:00:03.90 bitrate= 629.4kbits/s dup=1 drop=1 speed=0.153x    
11-22 10:37:23.582: frame=   68 fps=2.6 q=33.0 size=     314kB time=00:00:03.90 bitrate= 659.4kbits/s dup=1 drop=1 speed=0.15x    
11-22 10:37:26.220: frame=   71 fps=2.5 q=33.0 size=     377kB time=00:00:03.90 bitrate= 790.2kbits/s dup=1 drop=1 speed=0.136x    
11-22 10:37:27.154: frame=   73 fps=2.5 q=33.0 size=     412kB time=00:00:03.90 bitrate= 863.6kbits/s dup=1 drop=1 speed=0.132x    
11-22 10:37:29.358: frame=   77 fps=2.5 q=33.0 size=     443kB time=00:00:03.90 bitrate= 928.6kbits/s dup=1 drop=1 speed=0.125x    
11-22 10:37:29.386: frame=   78 fps=2.4 q=33.0 size=     454kB time=00:00:03.90 bitrate= 953.4kbits/s dup=1 drop=1 speed=0.122x    
11-22 10:37:30.246: frame=   80 fps=2.4 q=33.0 size=     470kB time=00:00:03.90 bitrate= 986.8kbits/s dup=1 drop=1 speed=0.119x    
11-22 10:37:32.018: frame=   83 fps=2.5 q=33.0 size=     491kB time=00:00:03.90 bitrate=1030.6kbits/s dup=1 drop=1 speed=0.117x    
11-22 10:37:32.019: frame=   83 fps=2.4 q=33.0 size=     491kB time=00:00:03.90 bitrate=1030.6kbits/s dup=1 drop=1 speed=0.113x    
11-22 10:37:41.401: [mp4 @ 0xb89f8cc0] Starting second pass: moving the moov atom to the beginning of the file
11-22 10:37:41.408: frame=   83 fps=1.9 q=-1.0 Lsize=     820kB time=00:00:03.94 bitrate=1700.8kbits/s dup=1 drop=1 speed=0.0898x  
11-22 10:37:41.409: video:747kB audio:68kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.499330%
11-22 10:37:41.423: [libx264 @ 0xb8a56880] frame I:2     Avg QP:28.52  size: 34902
11-22 10:37:41.427: [libx264 @ 0xb8a56880] frame P:44    Avg QP:29.20  size: 12156
11-22 10:37:41.428: [libx264 @ 0xb8a56880] frame B:37    Avg QP:32.21  size:  4318
11-22 10:37:41.429: [libx264 @ 0xb8a56880] consecutive B-frames: 20.5% 50.6% 28.9%  0.0%
11-22 10:37:41.429: [libx264 @ 0xb8a56880] mb I  I16..4: 10.5% 67.1% 22.4%
11-22 10:37:41.430: [libx264 @ 0xb8a56880] mb P  I16..4:  4.9% 16.7%  1.0%  P16..4: 39.6%  9.3%  1.5%  0.0%  0.0%    skip:27.0%
11-22 10:37:41.430: [libx264 @ 0xb8a56880] mb B  I16..4:  1.1%  3.4%  0.1%  B16..8: 22.9%  2.4%  0.1%  direct:15.7%  skip:54.2%  L0:42.0% L1:55.0% BI: 3.0%
11-22 10:37:41.431: [libx264 @ 0xb8a56880] 8x8 transform intra:72.9% inter:46.4%
11-22 10:37:41.432: [libx264 @ 0xb8a56880] coded y,uvDC,uvAC intra: 46.5% 63.3% 16.9% inter: 10.7% 23.3% 0.4%
11-22 10:37:41.433: [libx264 @ 0xb8a56880] i16 v,h,dc,p: 24% 39% 17% 20%
11-22 10:37:41.433: [libx264 @ 0xb8a56880] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 14% 37% 20%  2%  6%  5%  5%  5%  6%
11-22 10:37:41.433: [libx264 @ 0xb8a56880] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19% 29% 17%  4%  9%  5%  7%  4%  7%
11-22 10:37:41.433: [libx264 @ 0xb8a56880] i8c dc,h,v,p: 51% 27% 14%  8%
11-22 10:37:41.433: [libx264 @ 0xb8a56880] Weighted P-Frames: Y:9.1% UV:9.1%
11-22 10:37:41.433: [libx264 @ 0xb8a56880] ref P L0: 77.9% 22.1%
11-22 10:37:41.433: [libx264 @ 0xb8a56880] ref B L0: 86.8% 13.2%
11-22 10:37:41.434: [libx264 @ 0xb8a56880] ref B L1: 95.0%  5.0%
11-22 10:37:41.434: [libx264 @ 0xb8a56880] kb/s:1536.67

I very much doubt that FFmpeg has gotten slower over time, so there must be some negative change in my build process. Can anyone spot what it is? How can I figure out what it is? Looking at the difference between the two logs, I only see improvements.

  • 1
    x264 shows the following differences: using cpu capabilities: ARMv6 NEON vs using cpu capabilities: none!. You'll have to tweak the x264 make configuration for that. – Gyan Nov 22 '16 at 16:37
  • I always wondered how much slower it could be. – llogan Nov 22 '16 at 18:34
  • Thanks. There are some references to removing --disable-asm from my x264 build. Is that likely the solution? – Jon G Nov 22 '16 at 19:34
  • @JonG It's definitely a step in the right direction. Also, update your x264 while you're at it. – llogan Nov 22 '16 at 23:10
  • Thanks. Updating x264 and libfdk_aac to master alongside ffmpeg seems to have made a significant improvement. 22s for the same file (don't quote me on that). using cpu capabilities: ARMv6 NEON is back. Next step, try and figure out --enable-mediacodec! – Jon G Nov 23 '16 at 15:35

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Browse other questions tagged or ask your own question.