|
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.
|
|
|