Willus.com Home   |   Archive   |   About  

FFmpeg/avconv Benchmarks
Comparing the ffmpeg.exe and avconv.exe win32/win64 versions
November 21, 2012

  
 
21 NOV 2012 FFMPEG/AVCONV BENCHMARKS

OLDER FFMPEG/AVCONV BENCHMARKS
  26 Dec 2011
  8 Oct 2011

OVERVIEW
These are run times of ffmpeg.exe as downloaded from Zeranoe (static builds; FFmpeg.org) and avconv.exe as downloaded from win32.libav.org (libav.org). If you are not aware of why there are now two different web sites (ffmpeg.org and libav.org) and two different converters (ffmpeg.exe and avconv.exe), see the FFmpeg section of my useful utilities page.

DETAILS
  • I used two source videos: a 23-second, high-def (720p) video (.mts file) directly from a Panasonic Lumix camera, and a 42-second, high-def (720p) video (.mov file) directly from a Fujifilm F750EXR camera.
  • Run times are wall-clock time. I disabled antivirus and made sure no other processes were running.
  • My CPU is a core i5-670 (3.47 GHz) with 2 cores and 2 threads per core, so it can take advantage of up to 4 threads. I'm running Windows 7 64-bit.
RESULTS
  • Detailed results are in the tables below.
  • FFmpeg.exe is the performance king. It is faster than avconv.exe in every single case. For conversions to .webm, it is 1.5 to 3.5 times faster than avconv.exe. If you have 64-bit Windows, just get ffmpeg.exe 64-bit. It does every conversion (finally no more crashing on conversions to .webm!) and is also the fastest. The only (very) minor flaw is that 4-thread conversions to .webm run slightly slower than 3-thread conversions.
  • There has been a lot of progress overall compared to my Dec 2011 benchmark. The avconv.exe converter still won't convert to .ogv, and for some reason the win32 pthreads version of avconv.exe would not convert any files, but other than that all conversions went smoothly, and I no longer need to use the -strict experimental command-line argument.
  • Conversion times are considerably faster than in my Dec 2011 benchmark, particularly for conversions to .webm (30% - 50% faster) and .ogv (50% faster). Clearly, the code continues to be optimized.
RANT
I continue to be frustrated with the nightly-build ffmpeg version numbering. The versions on the builds don't match up with the major version numbers listed on the web site news pages (e.g. 0.7.x, 0.8.x, etc.). It would be nice if the nightly builds gave some indication of what major and minor version release they are related to, even if it's a snapshot build. A version number like N-46936-g8b6aeb1 is meaningless to me (and to most other users, I imagine). Why is this so hard? This is where avconv.exe does much better, giving a more intelligible version number like v9_beta2-255-gb9629ac.


CONVERTING 23-SECOND .MTS TO .MP4 (LIBX264)
Command-line options:   -i myfile.mts -threads <n> -s 640x360 -b:v 1250k -i_qfactor 0.71 -qcomp 0.6 -qmin 10 -qmax 63 -qdiff 4 -trellis 0 -vcodec libx264 -b:a 56k -ar 22050 outfile.mp4
Run Times from Nov 21, 2012 Downloads
Command From Type Version gcc ver -threads 1 -threads 2 -threads 3 -threads 4
ffmpeg.exe zeranoe win32 static N-46936-g8b6aeb1 4.7.2 22.7 s 14.4 s 12.4 s 11.5 s
ffmpeg.exe zeranoe win64 static N-46936-g8b6aeb1 4.7.2 20.4 s 13.5 s 11.8 s 10.9 s
avconv.exe win32.libav.org win32 v9_beta2-255-gb9629ac 4.5.2 22.1 s 14.7 s 12.7 s 11.8 s
avconv.exe win32.libav.org win32 w/pthreads v9_beta2-255-gb9629ac 4.5.2 n/a*
avconv.exe win32.libav.org win64 v9_beta2-255-gb9629ac 4.5.2 20.8 s 14.0 s 12.1 s 20.0 s**
* - pthreads version failed to convert.
** - avconv.exe win64 with 4 threads experienced strange intermittent pauses.

CONVERTING 42-SECOND .MOV TO .MP4 (LIBX264)
Command-line options:   -i myfile.mov -threads <n> -s 640x360 -b:v 1250k -i_qfactor 0.71 -qcomp 0.6 -qmin 10 -qmax 63 -qdiff 4 -trellis 0 -vcodec libx264 -b:a 56k -ar 22050 outfile.mp4
Run Times from Nov 21, 2012 Downloads
Command From Type Version gcc ver -threads 1 -threads 2 -threads 3 -threads 4
ffmpeg.exe zeranoe win32 static N-46936-g8b6aeb1 4.7.2 38.8 s 25.0 s 20.6 s 19.4 s
ffmpeg.exe zeranoe win64 static N-46936-g8b6aeb1 4.7.2 36.3 s 23.5 s 19.5 s 18.4 s
avconv.exe win32.libav.org win32 v9_beta2-255-gb9629ac 4.5.2 39.4 s 25.5 s 21.0 s 19.8 s
avconv.exe win32.libav.org win32 w/pthreads v9_beta2-255-gb9629ac 4.5.2 n/a*
avconv.exe win32.libav.org win64 v9_beta2-255-gb9629ac 4.5.2 37.0 s 23.8 s 19.8 s 31.4 s**
* - pthreads version failed to convert.
** - avconv.exe win64 with 4 threads experienced strange intermittent pauses.


CONVERTING 23-SECOND .MTS TO .WEBM
Command-line options:   -i myfile.mts -threads <n> -s 640x360 -b:v 1250k -qmax 63 -b:a 56k -ar 22050 -acodec libvorbis outfile.webm
Run Times from Nov 21, 2012 Downloads
Command From Type Version gcc ver -threads 1 -threads 2 -threads 3 -threads 4
ffmpeg.exe zeranoe win32 static N-46936-g8b6aeb1 4.7.2 18.4 s 14.3 s 12.6 s 24.5 s*
ffmpeg.exe zeranoe win64 static N-46936-g8b6aeb1 4.7.2 16.7 s 13.1 s 11.7 s 14.4 s*
avconv.exe win32.libav.org win32 v9_beta2-255-gb9629ac 4.5.2 67.2 s 44.1 s 39.9 s 35.5 s
avconv.exe win32.libav.org win32 w/pthreads v9_beta2-255-gb9629ac 4.5.2 n/a**
avconv.exe win32.libav.org win64 v9_beta2-255-gb9629ac 4.5.2 60.4 s 39.6 s 39.1 s 32.5 s
* - ffmpeg 4-thread runs show regression.
** - pthreads version failed to convert.


CONVERTING 42-SECOND .MOV TO .WEBM
Command-line options:   -i myfile.mov -threads <n> -s 640x360 -b:v 1250k -qmax 63 -b:a 56k -ar 22050 -acodec libvorbis outfile.webm
Run Times from Nov 21, 2012 Downloads
Command From Type Version gcc ver -threads 1 -threads 2 -threads 3 -threads 4
ffmpeg.exe zeranoe win32 static N-46936-g8b6aeb1 4.7.2 36.2 s 26.5 s 24.1 s 25.1 s*
ffmpeg.exe zeranoe win64 static N-46936-g8b6aeb1 4.7.2 32.7 s 23.7 s 22.2 s 23.2 s*
avconv.exe win32.libav.org win32 v9_beta2-255-gb9629ac 4.5.2 97.5 s 61.3 s 59.5 s 55.3 s
avconv.exe win32.libav.org win32 w/pthreads v9_beta2-255-gb9629ac 4.5.2 n/a**
avconv.exe win32.libav.org win64 v9_beta2-255-gb9629ac 4.5.2 77.4 s 47.7 s 46.6 s 43.9 s
* - ffmpeg 4-thread runs show regression.
** - pthreads version failed to convert.



CONVERTING 23-SECOND .MTS TO OGG/THEORA
Command-line options:   -i myfile.mts -threads <n> -s 640x360 -b:v 1250k -qmax 63 -b:a 56k -ar 22050 -acodec libvorbis outfile.ogv
Run Times from Nov 21, 2012 Downloads
Command From Type Version gcc ver -threads 1 -threads 2 -threads 3 -threads 4
ffmpeg.exe zeranoe win32 static N-46936-g8b6aeb1 4.7.2 13.5 s*
ffmpeg.exe zeranoe win64 static N-46936-g8b6aeb1 4.7.2 12.5 s*
avconv.exe win32.libav.org win32 v9_beta2-255-gb9629ac 4.5.2 n/a**
avconv.exe win32.libav.org win32 w/pthreads v9_beta2-255-gb9629ac 4.5.2 n/a**
avconv.exe win32.libav.org win64 v9_beta2-255-gb9629ac 4.5.2 n/a**
* - Number of threads seems to have no effect.
** - win32.libav.org versions did not have .ogv encoding.

CONVERTING 42-SECOND .MOV TO OGG/THEORA
Command-line options:   -i myfile.mts -threads <n> -s 640x360 -b:v 1250k -qmax 63 -b:a 56k -ar 22050 -acodec libvorbis outfile.ogv
Run Times from Nov 21, 2012 Downloads
Command From Type Version gcc ver -threads 1 -threads 2 -threads 3 -threads 4
ffmpeg.exe zeranoe win32 static N-46936-g8b6aeb1 4.7.2 22.0 s*
ffmpeg.exe zeranoe win64 static N-46936-g8b6aeb1 4.7.2 20.4 s*
avconv.exe win32.libav.org win32 v9_beta2-255-gb9629ac 4.5.2 n/a**
avconv.exe win32.libav.org win32 w/pthreads v9_beta2-255-gb9629ac 4.5.2 n/a**
avconv.exe win32.libav.org win64 v9_beta2-255-gb9629ac 4.5.2 n/a**
* - Number of threads seems to have no effect.
** - win32.libav.org versions did not have .ogv encoding.

 

This page last modified
Monday, 26-Nov-2012 08:40:13 MST