|
|
OVERVIEW
These are run times of ffmpeg v6.1 on
a Windows 11 PC with a core i9-9900 CPU vs. on a Mac mini with an M1 CPU.
DETAILS
- I used just one source video this time--a 23-second, high-def (720p) video (.mts file) directly from a Panasonic Lumix camera. I'm figuring that the encoding is the dominant part of the conversion time.
- Run times are wall-clock time.
- Windows runs: Windows 11 Pro on a core i9-9900 (3.10 GHz base clock) with 8 cores and 2 threads per core, so it can take advantage of up to 16 threads, but in my experience, going beyond 8 threads is counterproductive.
- Mac runs: Mac OS 14 (Sonoma) on a 2021 Mac mini with a M1 CPU
RESULTS
- Detailed results are in the table below.
- The x264 / .mp4 conversions are interesting because they compare accelerated hardware processing (AVX2 on core i9-9900 vs. ARMv8 NEON on the M1). The M1 is 20 - 30% faster.
- The x265 conversion is accelerated on the i9-9900 but not on the M1, so the i9-9900 is much faster (over 2x) on this conversion.
- None of the other conversions are accelerated on either CPU, and on these the M1 is consistently 10 - 30% faster.
CONVERSIONS
I converted a 23-second .mts (h264-encoded) video from my Panasonic camera to these formats using these command lines:
Encoder | Command line |
(All encoders) |
-i myfile.mts -threads <n> -s 640x360 -b:v 1250k -b:a 56k -ar 22050 -qmax 63 |
x264 (.mp4) |
-vcodec libx264 -i_qfactor 0.71 -qcomp 0.6 -qmin 10 -qdiff 4 -trellis 0 out.mp4 |
x265 (hevc) |
-vcodec libx265 -i_qfactor 0.71 -qcomp 0.6 -qmin 10 -qdiff 4 -trellis 0 out.avi |
vp8 (.webm) |
-vcodec libvpx -acodec libvorbis outfile.webm |
vp9 (.webm) |
-vcodec libvpx-vp9 -acodec libvorbis outfile.webm |
theora (.ogv) |
-vcodec libtheora -acodec libvorbis outfile.ogv |
Run Times
CPU |
Version |
Compiler |
Encoder |
Encoder Version |
-threads 1 |
-threads 2 |
-threads 3 |
-threads 4 |
i9-9900 |
6.1 |
gcc 13.2 |
x264 (.mp4) |
Lavc59.37.100 |
11.2 s |
6.2 s |
4.4 s |
3.0 s |
M1 |
6.1 |
clang 15.0 |
x264 (.mp4) |
Lavc60.31.102 |
8.1 s |
4.5 s |
3.2 s |
2.2 s |
i9-9900 |
6.1 |
gcc 13.2 |
x265 (hevc) |
Lavc59.37.100 |
11.4 s |
10.2 s |
10.2 s |
10.4 s |
M1 |
6.1 |
clang 15 |
x265 (hevc) |
Lavc60.31.102 |
26.4 s |
23.9 s |
24.0 s |
23.8 s |
i9-9900 |
6.1 |
gcc 13.2 |
vp8 (.webm) |
Lavc59.37.100 |
26.8 s |
15.6 s |
9.3 s |
8.8 s |
M1 |
6.1 |
clang 15 |
vp8 (.webm) |
Lavc60.31.102 |
20.2 s |
11.1 s |
7.6 s |
9.1 s |
i9-9900 |
6.1 |
gcc 13.2 |
vp9 (.webm) |
Lavc59.37.100 |
79.5 s |
44.4 s |
44.2 s |
45.0 s |
M1 |
6.1 |
clang 15 |
vp9 (.webm) |
Lavc60.31.102 |
51.6 s |
29.1 s |
29.0 s |
29.0 s |
i9-9900 |
6.1 |
gcc 13.2 |
theora (.ogv) |
Lavc59.37.100 |
8.2 s |
8.2 s |
8.2 s |
8.2 s |
M1 |
6.1 |
clang 15 |
theora (.ogv) |
Lavc60.31.102 |
7.3 s |
7.2 s |
7.1 s |
7.1 s |
|
|
|
|