Method: bench.md. Ratio = our median / the fastest managed comparator's median on the same file or workload (below 1.00× is faster); the gate is a geometric mean ≤ 1.00× overall and no row above 1.25×. Rows without a managed comparator pass and show our absolute times. Native tools are information.
Machine and versions
- Host: worker-x64; AMD Ryzen 9 7950X3D 16-Core Processor; 32 logical cores; Linux Mint 22.3 X64; ISA sse4.2 avx2 bmi2 avx512f avx512bw; runtime 10.0.13 (.NET 10.0.13); storage of the corpus: local NVMe/SSD, every file read once before its rows, so it is in the page cache for all implementations.
- Packages as restored: SharpMP4 0.3.2; RecursiveAI.OneAudio 1.7.0; MetadataExtractor 2.9.3; TagLibSharp 2.3.0.0; z440.atl.core 7.19; Matroska 0.0.12; LibSE (Subtitle Edit core) 5.3.0 and SubtitlesParser 1.5.1 for the subtitle rows.
- Native tools (information): ffmpeg version 7.0.2-static https://johnvansickle.com/ffmpeg/ Copyrig; MP4Box - GPAC version 26.07-rev0-ga07cbfff-master; mkvmerge v103.0 ('The Darkness') 64-bit; MediaInfo MediaInfo Command line,; ExifTool 13.60.
- Method: one fresh process per (row, implementation, file); cold first run recorded in the Note column (information only, not gated); warm-up of at least 30 runs and 1.5 s; 3 samples (managed) and 3 runs (tools, once over 1 GiB); median reported.
- SDK 10.0.400, built Release, warnings as errors.
Jobs
Every group ran as wq run --class bench --max 20m (exclusive: the queue starts a bench only when no other bench, heavy or GPU job runs). Load average is the one-minute figure before / during (mean, max of 5 s samples) / after.
| Group | wq job | Started | Contents | Load average | Elapsed |
| G1 | 002704 (bench) | 2026-11-02 20:07Z | demux and probe (mp4-demux, mp4-audio, mp4-probe, mkv-demux, mkv-probe) | before 3.34; during mean 3.03, max 3.34 over 31 samples at 5 s; after 2.77 | 2.5 min |
| G2 | 002707 (bench) | 2026-11-02 20:30Z | mux, remux, tag write (mp4-mux, mp4-remux, tagw-*, mkv-mux, remux-mem, playable) | before 2.15; during mean 1.56, max 2.15 over 36 samples at 5 s; after 1.26 | 2.9 min |
| G3 | 002710 (bench) | 2026-11-02 20:45Z | tag read and the readers without a managed comparator (mp3/xiph/asf/pcm tags, avi, xiph/flv, mpeg, asf demux, repair-index, package-hls) | before 0.99; during mean 1.17, max 1.30 over 50 samples at 5 s; after 1.25 | 4.1 min |
| G4 | 002713 (bench) | - | subtitle parse and convert (subsbench -n 30 20000 100000) | before: 14:45:17 up 11 days, 1:31, 30 users, load average: 2.83, 1.60, 2.65; after: 14:58:59 up 11 days, 1:45, 30 users, load average: 1.00, 1.50, 2.43 | - |
| G5 | 002744 (bench) | 2026-11-02 22:27Z | tag write re-run after the Matroska planning change (tagw-id3, tagw-flac, tagw-ilst, tagw-riff, tagw-mkv; the tagw-* tables and bar lines below are from this run) | before 1.37; during mean 1.25, max 1.37 over 14 samples at 5 s; after 1.18 | ~2 min |
Against the bar
| Row | Files with a ratio | Geomean | Worst | Verdict |
| mp4-demux | 4/5 | 0.10× | 0.23× | at the bar |
| mp4-audio | 3/5 | 0.47× | 0.72× | at the bar |
| mp4-probe | 5/5 | 0.11× | 0.42× | at the bar |
| mkv-demux | 6/6 | 0.26× | 0.38× | at the bar |
| mkv-probe | 6/6 | 0.71× | 0.88× | at the bar |
| mp4-mux | 3/3 | 0.15× | 0.35× | at the bar |
| mp4-remux | 3/3 | 0.12× | 0.20× | at the bar |
| tagw-id3 | 4/4 | 0.33× | 0.37× | at the bar |
| tagw-flac | 3/3 | 0.33× | 0.39× | at the bar |
| tagw-ilst | 2/2 | 0.50× | 0.57× | at the bar |
| tagw-riff | 3/3 | 0.58× | 0.66× | at the bar |
| tagw-mkv | 1/2 | 0.90× | 0.90× | at the bar |
| remux-mem | 0/2 | - | - | no managed comparator, so the row passes (times are information) |
| playable | 0/1 | - | - | no managed comparator, so the row passes (times are information) |
| mkv-mux | 0/5 | - | - | no managed comparator, so the row passes (times are information) |
| mp3-tags | 7/7 | 0.50× | 0.63× | at the bar |
| xiph-tags | 8/8 | 0.56× | 0.78× | at the bar |
| xiph-demux | 0/7 | - | - | no managed comparator, so the row passes (times are information) |
| asf-tags | 6/6 | 0.56× | 0.65× | at the bar |
| pcm-tags | 8/8 | 0.51× | 0.74× | at the bar |
| avi-demux | 0/5 | - | - | no managed comparator, so the row passes (times are information) |
| mpeg-demux | 0/7 | - | - | no managed comparator, so the row passes (times are information) |
| asf-demux | 0/4 | - | - | no managed comparator, so the row passes (times are information) |
| repair-index | 0/6 | - | - | no managed comparator, so the row passes (times are information) |
| package-hls | 0/3 | - | - | no managed comparator, so the row passes (times are information) |
| avi-probe | 5/5 | 0.52× | 0.67× | at the bar |
| subs-parse | 8/8 | 0.53× | 1.16× | at the bar |
| subs-convert | 6/6 | 0.40× | 1.14× | at the bar |
Overall geometric mean of every per-file ratio above (rows with a managed comparator): 0.386× over 91 ratios; worst single ratio 1.16× (parse srt 100000).
| Cues | Row | OneMedia median ms (min) | KiB/run | Fastest managed comparator | Its median ms (min) | KiB/run | Ratio |
| 20000 | parse srt | 4.10 (3.81) | 10754 | SubtitleEdit core | 6.91 (3.21) | 13558 | 0.59× |
| 20000 | parse vtt | 3.63 (3.49) | 11327 | SubtitleEdit core | 32.07 (15.73) | 35599 | 0.11× |
| 20000 | parse ass | 9.78 (4.83) | 12372 | SubtitleEdit core | 13.16 (6.24) | 19780 | 0.74× |
| 20000 | parse ttml | 45.78 (27.28) | 43599 | SubtitleEdit core | 66.52 (59.99) | 75772 | 0.69× |
| 20000 | convert srt->vtt | 10.66 (6.59) | 20119 | SubtitleEdit core | 24.84 (18.21) | 36381 | 0.43× |
| 20000 | convert srt->ass | 9.28 (8.87) | 22345 | SubtitleEdit core | 9.78 (9.35) | 23809 | 0.95× |
| 20000 | convert srt->ttml | 21.39 (16.12) | 27531 | SubtitleEdit core | 138.04 (126.50) | 302579 | 0.15× |
| 100000 | parse srt | 34.22 (19.43) | 53812 | SubtitleEdit core | 29.40 (15.55) | 67891 | 1.16× |
| 100000 | parse vtt | 38.76 (18.45) | 56580 | SubtitleEdit core | 176.02 (153.52) | 177532 | 0.22× |
| 100000 | parse ass | 57.16 (24.29) | 61388 | SubtitleEdit core | 49.70 (37.86) | 98678 | 1.15× |
| 100000 | parse ttml | 299.11 (195.37) | 215980 | SubtitleEdit core | 493.00 (455.53) | 377550 | 0.61× |
| 100000 | convert srt->vtt | 57.70 (41.12) | 100587 | SubtitleEdit core | 172.17 (153.97) | 181957 | 0.34× |
| 100000 | convert srt->ass | 66.28 (52.86) | 108828 | SubtitleEdit core | 58.39 (52.27) | 119280 | 1.14× |
| 100000 | convert srt->ttml | 119.99 (107.62) | 137574 | SubtitleEdit core | 700.83 (661.92) | 1513184 | 0.17× |
Not every comparator reads every format: SubtitlesParser has no TTML reader and parses only a quarter of the ASS file at 100,000 cues (23,411 cues), so the faster Subtitle Edit core is the comparator there.
Tables
Each table is one row of the speed matrix. Columns: median time, ratio against the fastest managed comparator, bytes allocated per run and per packet (the whole open-and-read, not the pull loop alone: see the allocation gate in 0.8-allocations-memory-io.md), packet count, payload read, peak and baseline resident memory of the process, and the cold first run in the Note column.
mp4-demux: MP4/MOV: read every packet of every track
| File | Size | Implementation | Median | Ratio | Alloc / run | Alloc / packet | Packets | Payload MiB | Tracks or tags | Peak MiB | Baseline MiB | Note |
| generated/mp4/h264-aac.mp4 | 0.2 MiB | OneMedia | 33.7 µs | 0.02× | 23.6 KiB | 78.3 B | 309 | 0.2 | - | 91.1 | 30.4 | cold first run 25.35 ms |
| generated/mp4/h264-aac.mp4 | 0.2 MiB | SharpMP4 | 1.47 ms | 1.00× | 1.4 MiB | 4631.4 B | 309 | 0.2 | - | 104.5 | 30.3 | cold first run 47.18 ms |
| samples/MPEG-4/video.mp4 | 26.6 MiB | OneMedia | 3.13 ms | 0.13× | 57.7 KiB | 3.2 B | 18671 | 26.5 | - | 66.7 | 30.4 | cold first run 29.89 ms |
| samples/MPEG-4/video.mp4 | 26.6 MiB | SharpMP4 | 23.19 ms | 1.00× | 42.5 MiB | 2389.5 B | 18671 | 26.5 | - | 104.4 | 30.3 | cold first run 108.52 ms |
| blender/big_buck_bunny_1080p_h264.mov | 691.5 MiB | OneMedia | 43.76 ms | 0.13× | 2.1 MiB | 52.7 B | 42276 | 691.1 | - | 45.7 | 30.3 | cold first run 75.58 ms |
| blender/big_buck_bunny_1080p_h264.mov | 691.5 MiB | SharpMP4 | 329.31 ms | 1.00× | 801.0 MiB | 19866.2 B | 42276 | 691.1 | - | 110.6 | 30.4 | cold first run 670.76 ms |
| generated/bench/frag-bbb-1080p.mp4 | 691.5 MiB | OneMedia | 46.92 ms | - | 2.1 MiB | 51.7 B | 42276 | 691.1 | - | 43.7 | 30.4 | cold first run 83.93 ms |
| generated/bench/frag-bbb-1080p.mp4 | 691.5 MiB | SharpMP4 | fail | - | - | - | - | - | - | 105.8 | 30.4 | IndexOutOfRangeException: Index was outside the bounds of the array. |
| generated/large/over4gb-moov-at-end.mp4 | 4.08 GiB | OneMedia | 296.91 ms | 0.23× | 1.9 MiB | 30.6 B | 64576 | 4172.2 | - | 39.5 | 30.4 | cold first run 334.71 ms |
| generated/large/over4gb-moov-at-end.mp4 | 4.08 GiB | SharpMP4 | 1.28 s | 1.00× | 4334.3 MiB | 70379.2 B | 64576 | 4172.2 | - | 109.9 | 30.3 | cold first run 1.46 s |
Reference tools, run as processes (wall time including start-up, peak resident set); information only:
| File | Tool | Wall median | Wall min – max | Peak MiB | Note |
| blender/big_buck_bunny_1080p_h264.mov | ffmpeg -c copy -f null | 159.20 ms | 155.12 ms – 177.06 ms | 24.7 | |
| generated/bench/frag-bbb-1080p.mp4 | ffmpeg -c copy -f null | 184.01 ms | 180.63 ms – 196.26 ms | 38.4 | |
| generated/large/over4gb-moov-at-end.mp4 | ffmpeg -c copy -f null | 542.16 ms | 542.16 ms – 542.16 ms | 25.9 | |
| generated/mp4/h264-aac.mp4 | ffmpeg -c copy -f null | 6.28 ms | 6.03 ms – 7.39 ms | 17.5 | |
| samples/MPEG-4/video.mp4 | ffmpeg -c copy -f null | 44.89 ms | 44.18 ms – 48.54 ms | 15.0 | |
mp4-audio: MP4/MOV: read the audio track's packets
| File | Size | Implementation | Median | Ratio | Alloc / run | Alloc / packet | Packets | Payload MiB | Tracks or tags | Peak MiB | Baseline MiB | Note |
| generated/mp4/h264-aac.mp4 | 0.2 MiB | OneMedia | 28.6 µs | 0.72× | 23.6 KiB | 128.0 B | 189 | 0.0 | - | 91.1 | 30.4 | cold first run 24.44 ms |
| generated/mp4/h264-aac.mp4 | 0.2 MiB | OneAudio Mp4PacketSource | 39.8 µs | 1.00× | 71.6 KiB | 388.2 B | 189 | 0.0 | - | 91.6 | 30.4 | cold first run 8.10 ms |
| generated/mp4/h264-aac.mp4 | 0.2 MiB | OneMedia, length asked of the file each time | 32.7 µs | 0.82× | 23.7 KiB | 128.6 B | 189 | 0.0 | - | 91.1 | 30.5 | cold first run 23.22 ms |
| samples/MPEG-4/video.mp4 | 26.6 MiB | OneMedia | 383.6 µs | 0.59× | 57.7 KiB | 8.2 B | 7200 | 1.9 | - | 90.3 | 30.4 | cold first run 25.11 ms |
| samples/MPEG-4/video.mp4 | 26.6 MiB | OneAudio Mp4PacketSource | 655.0 µs | 1.00× | 97.6 KiB | 13.9 B | 7200 | 1.9 | - | 87.3 | 30.3 | cold first run 10.24 ms |
| samples/MPEG-4/video.mp4 | 26.6 MiB | OneMedia, length asked of the file each time | 408.8 µs | 0.62× | 57.8 KiB | 8.2 B | 7200 | 1.9 | - | 90.9 | 30.4 | cold first run 23.88 ms |
| blender/big_buck_bunny_1080p_h264.mov | 691.5 MiB | OneMedia | 3.67 ms | - | 62.5 KiB | 2.3 B | 27960 | 31.1 | - | 62.8 | 30.4 | cold first run 33.42 ms |
| blender/big_buck_bunny_1080p_h264.mov | 691.5 MiB | OneAudio Mp4PacketSource | fail | - | - | - | - | - | - | 34.4 | 30.4 | UnsupportedAudioFormatException: Audio track 0 uses a QuickTime sound description version this library does not read. |
| blender/big_buck_bunny_1080p_h264.mov | 691.5 MiB | OneMedia, length asked of the file each time | 3.77 ms | - | 62.6 KiB | 2.3 B | 27960 | 31.1 | - | 62.7 | 30.4 | cold first run 32.21 ms |
| generated/bench/frag-bbb-1080p.mp4 | 691.5 MiB | OneMedia | 4.24 ms | - | 21.7 KiB | 0.8 B | 27960 | 31.1 | - | 48.1 | 30.4 | cold first run 38.44 ms |
| generated/bench/frag-bbb-1080p.mp4 | 691.5 MiB | OneAudio Mp4PacketSource | fail | - | - | - | - | - | - | 34.4 | 30.4 | UnsupportedAudioFormatException: Fragmented MP4 files (mvex boxes) are not supported. |
| generated/bench/frag-bbb-1080p.mp4 | 691.5 MiB | OneMedia, length asked of the file each time | 4.66 ms | - | 21.8 KiB | 0.8 B | 27960 | 31.1 | - | 47.0 | 30.4 | cold first run 40.91 ms |
| generated/large/over4gb-moov-at-end.mp4 | 4.08 GiB | OneMedia | 33.48 ms | 0.24× | 46.9 KiB | 1.2 B | 39376 | 9.7 | - | 37.2 | 30.4 | cold first run 64.33 ms |
| generated/large/over4gb-moov-at-end.mp4 | 4.08 GiB | OneAudio Mp4PacketSource | 138.74 ms | 1.00× | 1020.5 KiB | 26.5 B | 39376 | 9.7 | - | 36.5 | 30.4 | cold first run 150.81 ms |
| generated/large/over4gb-moov-at-end.mp4 | 4.08 GiB | OneMedia, length asked of the file each time | 33.49 ms | 0.24× | 47.0 KiB | 1.2 B | 39376 | 9.7 | - | 37.1 | 30.4 | cold first run 63.69 ms |
| File | Size | Implementation | Median | Ratio | Alloc / run | Alloc / packet | Packets | Payload MiB | Tracks or tags | Peak MiB | Baseline MiB | Note |
| generated/mp4/h264-aac.mp4 | 0.2 MiB | OneMedia | 12.2 µs | 0.19× | 23.6 KiB | - | - | - | 2 | 93.1 | 30.3 | cold first run 23.21 ms |
| generated/mp4/h264-aac.mp4 | 0.2 MiB | ATL.NET | 117.1 µs | 1.80× | 146.6 KiB | - | - | - | 0 | 93.9 | 30.5 | cold first run 35.48 ms |
| generated/mp4/h264-aac.mp4 | 0.2 MiB | MetadataExtractor | 81.8 µs | 1.26× | 77.7 KiB | - | - | - | 48 | 89.5 | 30.4 | cold first run 10.82 ms |
| generated/mp4/h264-aac.mp4 | 0.2 MiB | TagLib# | 65.0 µs | 1.00× | 36.7 KiB | - | - | - | 2 | 85.8 | 30.4 | fastest comparator; cold first run 9.98 ms |
| samples/MPEG-4/video.mp4 | 26.6 MiB | OneMedia | 17.7 µs | 0.13× | 57.7 KiB | - | - | - | 6 | 94.1 | 30.4 | cold first run 19.81 ms |
| samples/MPEG-4/video.mp4 | 26.6 MiB | ATL.NET | 566.2 µs | 4.27× | 151.7 KiB | - | - | - | 0 | 92.9 | 30.4 | cold first run 40.11 ms |
| samples/MPEG-4/video.mp4 | 26.6 MiB | MetadataExtractor | 155.8 µs | 1.17× | 91.8 KiB | - | - | - | 96 | 87.5 | 30.5 | cold first run 10.53 ms |
| samples/MPEG-4/video.mp4 | 26.6 MiB | TagLib# | 132.7 µs | 1.00× | 78.1 KiB | - | - | - | 2 | 85.5 | 30.4 | fastest comparator; cold first run 11.94 ms |
| blender/big_buck_bunny_1080p_h264.mov | 691.5 MiB | OneMedia | 39.0 µs | 0.25× | 62.4 KiB | - | - | - | 3 | 97.0 | 30.3 | cold first run 22.98 ms |
| blender/big_buck_bunny_1080p_h264.mov | 691.5 MiB | ATL.NET | 774.1 µs | 5.03× | 229.2 KiB | - | - | - | 0 | 92.7 | 30.4 | cold first run 43.56 ms |
| blender/big_buck_bunny_1080p_h264.mov | 691.5 MiB | MetadataExtractor | 154.0 µs | 1.00× | 87.7 KiB | - | - | - | 61 | 87.8 | 30.3 | fastest comparator; cold first run 13.25 ms |
| blender/big_buck_bunny_1080p_h264.mov | 691.5 MiB | TagLib# | fail | - | - | - | - | - | - | 34.3 | 30.4 | UnsupportedFormatException: blender/big_buck_bunny_1080p_h264.mov (taglib/mov) |
| generated/bench/frag-bbb-1080p.mp4 | 691.5 MiB | OneMedia | 10.1 µs | 0.01× | 20.9 KiB | - | - | - | 3 | 89.8 | 30.5 | cold first run 19.53 ms |
| generated/bench/frag-bbb-1080p.mp4 | 691.5 MiB | ATL.NET | 6.11 ms | 3.58× | 483.7 KiB | - | - | - | 0 | 97.0 | 30.4 | cold first run 53.18 ms |
| generated/bench/frag-bbb-1080p.mp4 | 691.5 MiB | MetadataExtractor | 4.44 ms | 2.60× | 183.6 KiB | - | - | - | 60 | 86.4 | 30.4 | cold first run 15.22 ms |
| generated/bench/frag-bbb-1080p.mp4 | 691.5 MiB | TagLib# | 1.71 ms | 1.00× | 521.2 KiB | - | - | - | 2 | 91.2 | 30.3 | fastest comparator; cold first run 12.82 ms |
| generated/large/over4gb-moov-at-end.mp4 | 4.08 GiB | OneMedia | 29.5 µs | 0.42× | 46.4 KiB | - | - | - | 2 | 96.5 | 30.5 | cold first run 22.33 ms |
| generated/large/over4gb-moov-at-end.mp4 | 4.08 GiB | ATL.NET | 1.03 ms | 14.69× | 146.5 KiB | - | - | - | 0 | 93.5 | 30.3 | cold first run 40.25 ms |
| generated/large/over4gb-moov-at-end.mp4 | 4.08 GiB | MetadataExtractor | 91.4 µs | 1.31× | 77.6 KiB | - | - | - | 48 | 87.3 | 30.5 | cold first run 11.43 ms |
| generated/large/over4gb-moov-at-end.mp4 | 4.08 GiB | TagLib# | 70.1 µs | 1.00× | 36.0 KiB | - | - | - | 2 | 86.1 | 30.4 | fastest comparator; cold first run 10.18 ms |
Reference tools, run as processes (wall time including start-up, peak resident set); information only:
| File | Tool | Wall median | Wall min – max | Peak MiB | Note |
| blender/big_buck_bunny_1080p_h264.mov | ExifTool | 67.39 ms | 67.17 ms – 69.18 ms | 22.8 | |
| blender/big_buck_bunny_1080p_h264.mov | MP4Box -info | 35.53 ms | 32.37 ms – 35.66 ms | 51.1 | |
| blender/big_buck_bunny_1080p_h264.mov | MediaInfo | 20.23 ms | 19.80 ms – 21.60 ms | 14.3 | |
| blender/big_buck_bunny_1080p_h264.mov | ffprobe -show_format -show_streams | 10.35 ms | 8.63 ms – 10.74 ms | 23.5 | |
| generated/bench/frag-bbb-1080p.mp4 | ExifTool | 136.75 ms | 136.59 ms – 139.29 ms | 22.9 | |
| generated/bench/frag-bbb-1080p.mp4 | MP4Box -info | 38.71 ms | 37.75 ms – 40.96 ms | 52.9 | |
| generated/bench/frag-bbb-1080p.mp4 | MediaInfo | 26.70 ms | 25.66 ms – 26.70 ms | 14.0 | |
| generated/bench/frag-bbb-1080p.mp4 | ffprobe -show_format -show_streams | 43.98 ms | 39.98 ms – 44.64 ms | 37.2 | |
| generated/large/over4gb-moov-at-end.mp4 | ExifTool | 66.41 ms | 66.41 ms – 66.41 ms | 26.7 | |
| generated/large/over4gb-moov-at-end.mp4 | MP4Box -info | 37.45 ms | 37.45 ms – 37.45 ms | 50.8 | |
| generated/large/over4gb-moov-at-end.mp4 | MediaInfo | 22.49 ms | 22.49 ms – 22.49 ms | 18.0 | |
| generated/large/over4gb-moov-at-end.mp4 | ffprobe -show_format -show_streams | 18.42 ms | 18.42 ms – 18.42 ms | 21.0 | |
| generated/mp4/h264-aac.mp4 | ExifTool | 63.41 ms | 60.36 ms – 64.78 ms | 21.9 | |
| generated/mp4/h264-aac.mp4 | MP4Box -info | 33.76 ms | 33.13 ms – 37.08 ms | 50.1 | |
| generated/mp4/h264-aac.mp4 | MediaInfo | 9.45 ms | 9.22 ms – 9.66 ms | 11.3 | |
| generated/mp4/h264-aac.mp4 | ffprobe -show_format -show_streams | 5.80 ms | 5.24 ms – 6.91 ms | 16.3 | |
| samples/MPEG-4/video.mp4 | ExifTool | 100.99 ms | 96.71 ms – 105.81 ms | 33.1 | |
| samples/MPEG-4/video.mp4 | MP4Box -info | 34.79 ms | 33.17 ms – 36.72 ms | 50.1 | |
| samples/MPEG-4/video.mp4 | MediaInfo | 10.85 ms | 10.16 ms – 10.89 ms | 11.2 | |
| samples/MPEG-4/video.mp4 | ffprobe -show_format -show_streams | 4.84 ms | 4.82 ms – 4.99 ms | 13.8 | |
mkv-demux: Matroska/WebM: read every packet
| File | Size | Implementation | Median | Ratio | Alloc / run | Alloc / packet | Packets | Payload MiB | Tracks or tags | Peak MiB | Baseline MiB | Note |
| generated/mkv/h264-aac.mkv | 0.2 MiB | OneMedia | 83.6 µs | 0.19× | 1.0 MiB | 3513.5 B | 309 | 0.2 | - | 47.1 | 30.4 | cold first run 27.14 ms |
| generated/mkv/h264-aac.mkv | 0.2 MiB | OneMedia, length asked of the file each time | 258.3 µs | 0.58× | 1.0 MiB | 3513.8 B | 309 | 0.2 | - | 47.4 | 30.4 | cold first run 25.72 ms |
| generated/mkv/h264-aac.mkv | 0.2 MiB | StefH Matroska | 443.8 µs | 1.00× | 671.5 KiB | 2225.3 B | 309 | 0.2 | - | 90.5 | 30.4 | cold first run 17.97 ms |
| matroska-test-files/test1.mkv | 22.3 MiB | OneMedia | 2.00 ms | 0.27× | 1.0 MiB | 189.4 B | 5735 | 22.2 | - | 47.6 | 30.5 | cold first run 31.94 ms |
| matroska-test-files/test1.mkv | 22.3 MiB | OneMedia, length asked of the file each time | 3.21 ms | 0.43× | 1.0 MiB | 189.4 B | 5735 | 22.2 | - | 48.0 | 30.4 | cold first run 33.65 ms |
| matroska-test-files/test1.mkv | 22.3 MiB | StefH Matroska | 7.47 ms | 1.00× | 46.0 MiB | 18696.7 B | 2582 | 22.2 | - | 111.5 | 30.5 | packet count differs from OneMedia's 5735; cold first run 44.15 ms |
| matroska-test-files/test5.mkv | 30.3 MiB | OneMedia | 2.42 ms | 0.22× | 1.0 MiB | 254.5 B | 4298 | 30.3 | - | 47.7 | 30.4 | cold first run 29.88 ms |
| matroska-test-files/test5.mkv | 30.3 MiB | OneMedia, length asked of the file each time | 3.25 ms | 0.30× | 1.0 MiB | 254.5 B | 4298 | 30.3 | - | 47.2 | 30.3 | cold first run 31.26 ms |
| matroska-test-files/test5.mkv | 30.3 MiB | StefH Matroska | 10.83 ms | 1.00× | 61.6 MiB | 41194.4 B | 1568 | 30.3 | - | 159.4 | 30.4 | packet count differs from OneMedia's 4298; cold first run 48.06 ms |
| blender/Sintel.2010.1080p.mkv | 1.10 GiB | OneMedia | 106.01 ms | 0.28× | 1.0 MiB | 22.2 B | 49323 | 1125.2 | - | 39.6 | 30.4 | cold first run 130.54 ms |
| blender/Sintel.2010.1080p.mkv | 1.10 GiB | OneMedia, length asked of the file each time | 125.31 ms | 0.33× | 1.0 MiB | 22.2 B | 49323 | 1125.2 | - | 40.5 | 30.4 | cold first run 144.32 ms |
| blender/Sintel.2010.1080p.mkv | 1.10 GiB | StefH Matroska | 377.15 ms | 1.00× | 2265.5 MiB | 93604.1 B | 25379 | 1125.2 | - | 1514.4 | 30.5 | packet count differs from OneMedia's 49323; cold first run 786.73 ms |
| blender/tears_of_steel_1080p.webm | 544.9 MiB | OneMedia | 45.83 ms | 0.24× | 1.0 MiB | 13.7 B | 80000 | 544.6 | - | 44.3 | 30.4 | cold first run 94.16 ms |
| blender/tears_of_steel_1080p.webm | 544.9 MiB | OneMedia, length asked of the file each time | 57.33 ms | 0.29× | 1.0 MiB | 13.7 B | 80000 | 544.6 | - | 43.8 | 30.5 | cold first run 110.37 ms |
| blender/tears_of_steel_1080p.webm | 544.9 MiB | StefH Matroska | 194.74 ms | 1.00× | 1097.5 MiB | 44893.5 B | 25634 | 544.7 | - | 1214.6 | 30.4 | packet count differs from OneMedia's 80000; cold first run 454.83 ms |
| generated/large/over4gb.mkv | 4.14 GiB | OneMedia | 424.99 ms | 0.38× | 1.0 MiB | 16.8 B | 64596 | 4239.4 | - | 42.2 | 30.4 | cold first run 504.24 ms |
| generated/large/over4gb.mkv | 4.14 GiB | OneMedia, length asked of the file each time | 457.41 ms | 0.40× | 1.0 MiB | 16.8 B | 64596 | 4239.4 | - | 42.4 | 30.4 | cold first run 523.17 ms |
| generated/large/over4gb.mkv | 4.14 GiB | StefH Matroska | 1.13 s | 1.00× | 8516.7 MiB | 138250.8 B | 64596 | 4239.4 | - | 6394.7 | 30.3 | cold first run 2.81 s |
Reference tools, run as processes (wall time including start-up, peak resident set); information only:
| File | Tool | Wall median | Wall min – max | Peak MiB | Note |
| blender/Sintel.2010.1080p.mkv | ffmpeg -c copy -f null | 255.54 ms | 255.54 ms – 255.54 ms | 20.4 | |
| blender/Sintel.2010.1080p.mkv | mkvextract tracks (first track) | 248.30 ms | 248.30 ms – 248.30 ms | 24.1 | |
| blender/tears_of_steel_1080p.webm | ffmpeg -c copy -f null | 213.02 ms | 206.75 ms – 243.05 ms | 13.9 | |
| blender/tears_of_steel_1080p.webm | mkvextract tracks (first track) | 104.88 ms | 104.76 ms – 107.03 ms | 23.7 | |
| generated/large/over4gb.mkv | ffmpeg -c copy -f null | 677.64 ms | 677.64 ms – 677.64 ms | 24.6 | |
| generated/large/over4gb.mkv | mkvextract tracks (first track) | 1.42 s | 1.42 s – 1.42 s | 26.7 | |
| generated/mkv/h264-aac.mkv | ffmpeg -c copy -f null | 5.81 ms | 5.50 ms – 6.53 ms | 17.4 | |
| generated/mkv/h264-aac.mkv | mkvextract tracks (first track) | 21.25 ms | 21.00 ms – 22.84 ms | 17.4 | |
| matroska-test-files/test1.mkv | ffmpeg -c copy -f null | 21.74 ms | 21.64 ms – 23.17 ms | 14.2 | |
| matroska-test-files/test1.mkv | mkvextract tracks (first track) | 28.99 ms | 27.99 ms – 29.19 ms | 20.8 | |
| matroska-test-files/test5.mkv | ffmpeg -c copy -f null | 39.54 ms | 36.09 ms – 40.33 ms | 23.2 | |
| matroska-test-files/test5.mkv | mkvextract tracks (first track) | 28.36 ms | 28.27 ms – 29.60 ms | 23.7 | |
mkv-probe: Matroska/WebM: open, track list, duration
| File | Size | Implementation | Median | Ratio | Alloc / run | Alloc / packet | Packets | Payload MiB | Tracks or tags | Peak MiB | Baseline MiB | Note |
| generated/mkv/h264-aac.mkv | 0.2 MiB | OneMedia | 8.5 µs | 0.70× | 36.1 KiB | - | - | - | 2 | 97.0 | 30.4 | cold first run 16.04 ms |
| generated/mkv/h264-aac.mkv | 0.2 MiB | NEbml element reader | 12.2 µs | 1.00× | 68.7 KiB | - | - | - | 2 | 88.1 | 30.4 | cold first run 3.25 ms |
| matroska-test-files/test1.mkv | 22.3 MiB | OneMedia | 8.0 µs | 0.66× | 36.6 KiB | - | - | - | 2 | 96.9 | 30.4 | cold first run 16.48 ms |
| matroska-test-files/test1.mkv | 22.3 MiB | NEbml element reader | 12.1 µs | 1.00× | 68.3 KiB | - | - | - | 2 | 92.2 | 30.4 | cold first run 2.92 ms |
| matroska-test-files/test5.mkv | 30.3 MiB | OneMedia | 11.6 µs | 0.69× | 44.2 KiB | - | - | - | 11 | 100.5 | 30.4 | cold first run 17.37 ms |
| matroska-test-files/test5.mkv | 30.3 MiB | NEbml element reader | 16.8 µs | 1.00× | 72.8 KiB | - | - | - | 11 | 88.2 | 30.4 | cold first run 2.76 ms |
| blender/Sintel.2010.1080p.mkv | 1.10 GiB | OneMedia | 11.3 µs | 0.68× | 44.9 KiB | - | - | - | 12 | 97.3 | 30.5 | cold first run 18.00 ms |
| blender/Sintel.2010.1080p.mkv | 1.10 GiB | NEbml element reader | 16.6 µs | 1.00× | 73.3 KiB | - | - | - | 12 | 87.9 | 30.4 | cold first run 2.81 ms |
| blender/tears_of_steel_1080p.webm | 544.9 MiB | OneMedia | 10.3 µs | 0.88× | 43.9 KiB | - | - | - | 2 | 96.8 | 30.4 | cold first run 17.98 ms |
| blender/tears_of_steel_1080p.webm | 544.9 MiB | NEbml element reader | 11.7 µs | 1.00× | 68.2 KiB | - | - | - | 2 | 88.4 | 30.4 | cold first run 2.79 ms |
| generated/large/over4gb.mkv | 4.14 GiB | OneMedia | 8.0 µs | 0.69× | 36.1 KiB | - | - | - | 2 | 96.9 | 30.4 | cold first run 16.22 ms |
| generated/large/over4gb.mkv | 4.14 GiB | NEbml element reader | 11.6 µs | 1.00× | 68.6 KiB | - | - | - | 2 | 88.3 | 30.4 | cold first run 3.20 ms |
Reference tools, run as processes (wall time including start-up, peak resident set); information only:
| File | Tool | Wall median | Wall min – max | Peak MiB | Note |
| blender/Sintel.2010.1080p.mkv | ExifTool | 51.29 ms | 51.29 ms – 51.29 ms | 18.4 | |
| blender/Sintel.2010.1080p.mkv | MediaInfo | 99.90 ms | 99.90 ms – 99.90 ms | 10.9 | |
| blender/Sintel.2010.1080p.mkv | ffprobe -show_format -show_streams | 8.12 ms | 8.12 ms – 8.12 ms | 19.1 | |
| blender/Sintel.2010.1080p.mkv | mkvinfo | 19.78 ms | 19.78 ms – 19.78 ms | 16.5 | |
| blender/Sintel.2010.1080p.mkv | mkvmerge -J | 30.94 ms | 30.94 ms – 30.94 ms | 21.8 | |
| blender/tears_of_steel_1080p.webm | ExifTool | 48.08 ms | 47.22 ms – 50.55 ms | 18.5 | |
| blender/tears_of_steel_1080p.webm | MediaInfo | 20.08 ms | 18.42 ms – 21.03 ms | 11.3 | |
| blender/tears_of_steel_1080p.webm | ffprobe -show_format -show_streams | 3.88 ms | 3.59 ms – 4.24 ms | 12.3 | |
| blender/tears_of_steel_1080p.webm | mkvinfo | 20.50 ms | 19.65 ms – 21.34 ms | 16.5 | |
| blender/tears_of_steel_1080p.webm | mkvmerge -J | 28.71 ms | 27.40 ms – 29.83 ms | 21.2 | |
| generated/large/over4gb.mkv | ExifTool | 52.72 ms | 52.72 ms – 52.72 ms | 18.1 | |
| generated/large/over4gb.mkv | MediaInfo | 133.95 ms | 133.95 ms – 133.95 ms | 11.3 | |
| generated/large/over4gb.mkv | ffprobe -show_format -show_streams | 64.48 ms | 64.48 ms – 64.48 ms | 24.0 | |
| generated/large/over4gb.mkv | mkvinfo | 23.14 ms | 23.14 ms – 23.14 ms | 21.0 | |
| generated/large/over4gb.mkv | mkvmerge -J | 52.08 ms | 52.08 ms – 52.08 ms | 34.5 | |
| generated/mkv/h264-aac.mkv | ExifTool | 50.18 ms | 48.82 ms – 51.79 ms | 18.3 | |
| generated/mkv/h264-aac.mkv | MediaInfo | 9.27 ms | 9.10 ms – 9.77 ms | 10.5 | |
| generated/mkv/h264-aac.mkv | ffprobe -show_format -show_streams | 5.98 ms | 4.98 ms – 6.68 ms | 16.2 | |
| generated/mkv/h264-aac.mkv | mkvinfo | 19.63 ms | 19.50 ms – 20.22 ms | 16.1 | |
| generated/mkv/h264-aac.mkv | mkvmerge -J | 21.81 ms | 21.22 ms – 23.35 ms | 19.8 | |
| matroska-test-files/test1.mkv | ExifTool | 51.27 ms | 49.52 ms – 52.17 ms | 18.4 | |
| matroska-test-files/test1.mkv | MediaInfo | 9.89 ms | 9.86 ms – 9.99 ms | 11.1 | |
| matroska-test-files/test1.mkv | ffprobe -show_format -show_streams | 3.69 ms | 3.64 ms – 3.90 ms | 12.7 | |
| matroska-test-files/test1.mkv | mkvinfo | 20.72 ms | 20.57 ms – 21.50 ms | 16.5 | |
| matroska-test-files/test1.mkv | mkvmerge -J | 27.62 ms | 26.75 ms – 46.64 ms | 22.3 | |
| matroska-test-files/test5.mkv | ExifTool | 85.04 ms | 80.98 ms – 85.65 ms | 30.3 | |
| matroska-test-files/test5.mkv | MediaInfo | 19.27 ms | 18.98 ms – 19.82 ms | 11.3 | |
| matroska-test-files/test5.mkv | ffprobe -show_format -show_streams | 21.74 ms | 20.50 ms – 22.81 ms | 22.2 | |
| matroska-test-files/test5.mkv | mkvinfo | 20.43 ms | 20.03 ms – 22.11 ms | 17.7 | |
| matroska-test-files/test5.mkv | mkvmerge -J | 28.99 ms | 27.92 ms – 30.85 ms | 25.1 | |
mp4-mux: MP4: write the first AAC track's frames from memory to an MP4 in memory
| File | Size | Implementation | Median | Ratio | Alloc / run | Alloc / packet | Packets | Payload MiB | Tracks or tags | Peak MiB | Baseline MiB | Note |
| generated/mp4/h264-aac.mp4 | 0.2 MiB | OneMedia | 41.5 µs | 0.07× | 1.0 MiB | 5639.5 B | 189 | 0.0 | - | 49.1 | 30.5 | cold first run 43.86 ms |
| generated/mp4/h264-aac.mp4 | 0.2 MiB | OneMedia, movie box last | 41.2 µs | 0.07× | 1.0 MiB | 5610.2 B | 189 | 0.0 | - | 48.8 | 30.4 | cold first run 39.42 ms |
| generated/mp4/h264-aac.mp4 | 0.2 MiB | SharpMP4 | 616.4 µs | 1.00× | 1.5 MiB | 8079.4 B | 189 | 0.0 | - | 43.5 | 30.4 | cold first run 42.93 ms |
| samples/MPEG-4/video.mp4 | 26.6 MiB | OneMedia | 822.9 µs | 0.13× | 3.0 MiB | 439.3 B | 7200 | 2.0 | - | 84.0 | 30.3 | cold first run 46.73 ms |
| samples/MPEG-4/video.mp4 | 26.6 MiB | OneMedia, movie box last | 1.03 ms | 0.16× | 3.0 MiB | 438.5 B | 7200 | 2.0 | - | 69.1 | 30.5 | cold first run 44.96 ms |
| samples/MPEG-4/video.mp4 | 26.6 MiB | SharpMP4 | 6.32 ms | 1.00× | 17.5 MiB | 2550.9 B | 7200 | 2.0 | - | 93.3 | 30.4 | cold first run 67.41 ms |
| generated/bench/frag-bbb-1080p.mp4 | 691.5 MiB | OneMedia | 22.69 ms | 0.35× | 63.0 MiB | 2363.3 B | 27960 | 31.2 | - | 335.8 | 30.5 | cold first run 120.52 ms |
| generated/bench/frag-bbb-1080p.mp4 | 691.5 MiB | OneMedia, movie box last | 15.66 ms | 0.24× | 63.0 MiB | 2363.1 B | 27960 | 31.2 | - | 367.8 | 30.4 | cold first run 105.54 ms |
| generated/bench/frag-bbb-1080p.mp4 | 691.5 MiB | SharpMP4 | 64.04 ms | 1.00× | 103.7 MiB | 3889.9 B | 27960 | 31.3 | - | 424.8 | 30.4 | cold first run 193.28 ms |
mp4-remux: MP4: read the first AAC track from a file and write it as an MP4 in memory
| File | Size | Implementation | Median | Ratio | Alloc / run | Alloc / packet | Packets | Payload MiB | Tracks or tags | Peak MiB | Baseline MiB | Note |
| generated/mp4/h264-aac.mp4 | 0.2 MiB | OneMedia | 138.6 µs | 0.10× | 1.1 MiB | 6375.4 B | 189 | 0.0 | - | 54.6 | 30.4 | cold first run 61.23 ms |
| generated/mp4/h264-aac.mp4 | 0.2 MiB | SharpMP4 | 1.45 ms | 1.00× | 2.6 MiB | 14536.6 B | 189 | 0.0 | - | 62.6 | 30.5 | cold first run 81.57 ms |
| samples/MPEG-4/video.mp4 | 26.6 MiB | OneMedia | 1.57 ms | 0.09× | 3.2 MiB | 464.9 B | 7200 | 2.0 | - | 81.2 | 30.4 | cold first run 66.38 ms |
| samples/MPEG-4/video.mp4 | 26.6 MiB | SharpMP4 | 17.39 ms | 1.00× | 34.7 MiB | 5052.3 B | 7200 | 2.0 | - | 109.5 | 30.4 | cold first run 135.94 ms |
| generated/bench/frag-bbb-1080p.mp4 | 691.5 MiB | OneMedia | 26.81 ms | 0.20× | 63.2 MiB | 2368.4 B | 27960 | 31.2 | - | 195.4 | 30.4 | cold first run 132.49 ms |
| generated/bench/frag-bbb-1080p.mp4 | 691.5 MiB | SharpMP4 | 133.55 ms | 1.00× | 243.3 MiB | 9123.1 B | 27960 | 31.3 | - | 404.0 | 30.4 | cold first run 387.94 ms |
Reference tools, run as processes (wall time including start-up, peak resident set); information only:
| File | Tool | Wall median | Wall min – max | Peak MiB | Note |
| generated/bench/frag-bbb-1080p.mp4 | ffmpeg -c copy -map 0:a:0 -f mp4 | 131.16 ms | 102.42 ms – 150.54 ms | 52.1 | |
| generated/mp4/h264-aac.mp4 | ffmpeg -c copy -map 0:a:0 -f mp4 | 6.72 ms | 5.88 ms – 7.49 ms | 17.5 | |
| samples/MPEG-4/video.mp4 | ffmpeg -c copy -map 0:a:0 -f mp4 | 32.29 ms | 32.03 ms – 34.74 ms | 17.5 | |
| File | Size | Implementation | Median | Ratio | Alloc / run | Alloc / packet | Packets | Payload MiB | Tracks or tags | Peak MiB | Baseline MiB | Note |
| generated/audio-es/tagged/id3v24-basic.mp3 | 0.0 MiB | OneMedia | 7.7 µs | 0.33× | 77.7 KiB | 79536.0 B | 1 | - | - | 96.3 | 30.4 | cold first run 32.75 ms |
| generated/audio-es/tagged/id3v24-basic.mp3 | 0.0 MiB | ATL.NET | 239.8 µs | 10.33× | 938.2 KiB | 960726.1 B | 1 | - | - | 99.9 | 30.2 | cold first run 53.06 ms |
| generated/audio-es/tagged/id3v24-basic.mp3 | 0.0 MiB | TagLib# | 23.2 µs | 1.00× | 140.5 KiB | 143834.0 B | 1 | - | - | 95.3 | 30.3 | fastest comparator; cold first run 21.98 ms |
| generated/audio-es/tagged/id3v23-and-v1.mp3 | 0.0 MiB | OneMedia | 8.3 µs | 0.37× | 79.2 KiB | 81136.0 B | 1 | - | - | 97.4 | 30.4 | cold first run 29.58 ms |
| generated/audio-es/tagged/id3v23-and-v1.mp3 | 0.0 MiB | ATL.NET | 220.6 µs | 9.76× | 1.0 MiB | 1073598.0 B | 1 | - | - | 99.9 | 30.3 | cold first run 63.47 ms |
| generated/audio-es/tagged/id3v23-and-v1.mp3 | 0.0 MiB | TagLib# | 22.6 µs | 1.00× | 137.9 KiB | 141200.0 B | 1 | - | - | 95.4 | 30.2 | fastest comparator; cold first run 18.42 ms |
| generated/audio-es/tagged/id3v22-basic.mp3 | 0.0 MiB | OneMedia | 8.7 µs | 0.32× | 80.1 KiB | 82064.0 B | 1 | - | - | 96.4 | 30.3 | cold first run 30.34 ms |
| generated/audio-es/tagged/id3v22-basic.mp3 | 0.0 MiB | ATL.NET | 238.4 µs | 8.75× | 935.8 KiB | 958301.2 B | 1 | - | - | 99.5 | 30.3 | cold first run 56.08 ms |
| generated/audio-es/tagged/id3v22-basic.mp3 | 0.0 MiB | TagLib# | 27.3 µs | 1.00× | 138.2 KiB | 141554.0 B | 1 | - | - | 95.7 | 30.4 | fastest comparator; cold first run 23.04 ms |
| generated/audio-es/tagged/apev2-only.mp3 | 0.0 MiB | OneMedia | 5.4 µs | 0.30× | 67.5 KiB | 69096.0 B | 1 | - | - | 96.9 | 30.3 | cold first run 32.40 ms |
| generated/audio-es/tagged/apev2-only.mp3 | 0.0 MiB | ATL.NET | 339.0 µs | 18.66× | 1.0 MiB | 1083778.9 B | 1 | - | - | 94.3 | 30.3 | cold first run 55.81 ms |
| generated/audio-es/tagged/apev2-only.mp3 | 0.0 MiB | TagLib# | 18.2 µs | 1.00× | 116.8 KiB | 119626.0 B | 1 | - | - | 95.2 | 30.3 | fastest comparator; cold first run 21.27 ms |
| File | Size | Implementation | Median | Ratio | Alloc / run | Alloc / packet | Packets | Payload MiB | Tracks or tags | Peak MiB | Baseline MiB | Note |
| generated/xiph-flv/flac/tags.flac | 0.1 MiB | OneMedia | 5.2 µs | 0.39× | 70.3 KiB | 71944.0 B | 1 | - | - | 92.5 | 30.2 | cold first run 21.38 ms |
| generated/xiph-flv/flac/tags.flac | 0.1 MiB | ATL.NET | 132.4 µs | 10.08× | 783.3 KiB | 802140.7 B | 1 | - | - | 100.1 | 30.3 | cold first run 48.47 ms |
| generated/xiph-flv/flac/tags.flac | 0.1 MiB | TagLib# | 13.1 µs | 1.00× | 144.1 KiB | 147592.0 B | 1 | - | - | 100.5 | 30.4 | fastest comparator; cold first run 11.23 ms |
| generated/xiph-flv/tagvar/flac-cover-tags.flac | 0.1 MiB | OneMedia | 4.7 µs | 0.27× | 75.3 KiB | 77064.0 B | 1 | - | - | 92.0 | 30.3 | cold first run 22.58 ms |
| generated/xiph-flv/tagvar/flac-cover-tags.flac | 0.1 MiB | ATL.NET | 257.0 µs | 14.84× | 940.0 KiB | 962589.3 B | 1 | - | - | 97.0 | 30.3 | cold first run 49.93 ms |
| generated/xiph-flv/tagvar/flac-cover-tags.flac | 0.1 MiB | TagLib# | 17.3 µs | 1.00× | 239.9 KiB | 245705.8 B | 1 | - | - | 97.4 | 30.2 | fastest comparator; cold first run 12.49 ms |
| generated/xiph-flv/tagvar/flac-rich.flac | 0.1 MiB | OneMedia | 5.7 µs | 0.33× | 72.9 KiB | 74664.0 B | 1 | - | - | 92.0 | 30.3 | cold first run 21.41 ms |
| generated/xiph-flv/tagvar/flac-rich.flac | 0.1 MiB | ATL.NET | 151.5 µs | 8.77× | 813.9 KiB | 833468.5 B | 1 | - | - | 100.0 | 30.3 | cold first run 49.85 ms |
| generated/xiph-flv/tagvar/flac-rich.flac | 0.1 MiB | TagLib# | 17.3 µs | 1.00× | 151.0 KiB | 154583.9 B | 1 | - | - | 96.8 | 30.2 | fastest comparator; cold first run 11.57 ms |
| File | Size | Implementation | Median | Ratio | Alloc / run | Alloc / packet | Packets | Payload MiB | Tracks or tags | Peak MiB | Baseline MiB | Note |
| generated/mp4/h264-aac-tags.mp4 | 0.2 MiB | OneMedia | 82.8 µs | 0.57× | 366.2 KiB | 375032.0 B | 1 | - | - | 46.7 | 30.3 | cold first run 27.17 ms |
| generated/mp4/h264-aac-tags.mp4 | 0.2 MiB | ATL.NET | 1.73 ms | 12.01× | 1.9 MiB | 2027337.1 B | 1 | - | - | 78.3 | 30.3 | cold first run 66.01 ms |
| generated/mp4/h264-aac-tags.mp4 | 0.2 MiB | TagLib# | 144.2 µs | 1.00× | 413.9 KiB | 423794.1 B | 1 | - | - | 46.8 | 30.4 | fastest comparator; cold first run 15.10 ms |
| generated/editlist/audio-aac-priming.m4a | 0.0 MiB | OneMedia | 8.8 µs | 0.44× | 137.7 KiB | 141016.0 B | 1 | - | - | 94.8 | 30.3 | cold first run 25.63 ms |
| generated/editlist/audio-aac-priming.m4a | 0.0 MiB | ATL.NET | 200.0 µs | 10.07× | 1.1 MiB | 1102430.1 B | 1 | - | - | 98.4 | 30.3 | cold first run 64.24 ms |
| generated/editlist/audio-aac-priming.m4a | 0.0 MiB | TagLib# | 19.9 µs | 1.00× | 142.3 KiB | 145761.8 B | 1 | - | - | 96.2 | 30.2 | fastest comparator; cold first run 13.68 ms |
| File | Size | Implementation | Median | Ratio | Alloc / run | Alloc / packet | Packets | Payload MiB | Tracks or tags | Peak MiB | Baseline MiB | Note |
| generated/pcm/tagged-wav-info.wav | 0.5 MiB | OneMedia | 178.5 µs | 0.66× | 533.1 KiB | 545856.0 B | 1 | - | - | 47.0 | 30.3 | cold first run 25.59 ms |
| generated/pcm/tagged-wav-info.wav | 0.5 MiB | ATL.NET | 345.6 µs | 1.27× | 1.1 MiB | 1181621.2 B | 1 | - | - | 47.9 | 30.3 | cold first run 50.29 ms |
| generated/pcm/tagged-wav-info.wav | 0.5 MiB | TagLib# | 271.7 µs | 1.00× | 582.8 KiB | 596765.8 B | 1 | - | - | 41.4 | 30.2 | fastest comparator; cold first run 21.80 ms |
| generated/pcm/tagged-wav-bext.wav | 0.8 MiB | OneMedia | 70.2 µs | 0.44× | 863.6 KiB | 884321.0 B | 1 | - | - | 62.8 | 30.2 | cold first run 26.77 ms |
| generated/pcm/tagged-wav-bext.wav | 0.8 MiB | ATL.NET | 653.5 µs | 4.12× | 1.8 MiB | 1902394.9 B | 1 | - | - | 87.8 | 30.3 | cold first run 55.30 ms |
| generated/pcm/tagged-wav-bext.wav | 0.8 MiB | TagLib# | 158.6 µs | 1.00× | 911.0 KiB | 932897.0 B | 1 | - | - | 46.6 | 30.3 | fastest comparator; cold first run 20.90 ms |
| generated/pcm/tagged-wav-id3.wav | 0.5 MiB | OneMedia | 181.1 µs | 0.66× | 533.1 KiB | 545856.0 B | 1 | - | - | 46.8 | 30.3 | cold first run 23.80 ms |
| generated/pcm/tagged-wav-id3.wav | 0.5 MiB | ATL.NET | 344.6 µs | 1.25× | 1.1 MiB | 1181618.9 B | 1 | - | - | 48.9 | 30.3 | cold first run 52.24 ms |
| generated/pcm/tagged-wav-id3.wav | 0.5 MiB | TagLib# | 274.7 µs | 1.00× | 582.8 KiB | 596769.2 B | 1 | - | - | 42.0 | 30.3 | fastest comparator; cold first run 21.87 ms |
| File | Size | Implementation | Median | Ratio | Alloc / run | Alloc / packet | Packets | Payload MiB | Tracks or tags | Peak MiB | Baseline MiB | Note |
| generated/mkv/h264-two-audio-tags.mkv | 0.2 MiB | OneMedia | 111.3 µs | 0.90× | 306.8 KiB | 314192.0 B | 1 | - | - | 51.0 | 30.3 | cold first run 50.19 ms |
| generated/mkv/h264-two-audio-tags.mkv | 0.2 MiB | ATL.NET | fail | - | - | - | - | - | - | 38.7 | 30.3 | NullReferenceException: Object reference not set to an instance of an object. |
| generated/mkv/h264-two-audio-tags.mkv | 0.2 MiB | TagLib# | 124.3 µs | 1.00× | 323.1 KiB | 330810.9 B | 1 | - | - | 41.9 | 30.4 | cold first run 11.94 ms |
| matroska-test-files/test1.mkv | 22.3 MiB | OneMedia | 1.82 ms | - | 22.3 MiB | 23393024.0 B | 1 | - | - | 210.8 | 30.3 | cold first run 66.85 ms |
| matroska-test-files/test1.mkv | 22.3 MiB | ATL.NET | fail | - | - | - | - | - | - | 83.0 | 30.3 | NullReferenceException: Object reference not set to an instance of an object. |
| matroska-test-files/test1.mkv | 22.3 MiB | TagLib# | fail | - | - | - | - | - | - | 79.6 | 30.3 | InvalidOperationException: Invalid EBML format Read |
remux-mem: Remux of the files past 4 GiB into MP4 and Matroska, output to disk: peak resident memory
| File | Size | Implementation | Median | Ratio | Alloc / run | Alloc / packet | Packets | Payload MiB | Tracks or tags | Peak MiB | Baseline MiB | Note |
| generated/large/over4gb-moov-at-end.mp4 | 4.08 GiB | OneMedia to MP4 | 2.27 s | - | 2.9 MiB | 46.3 B | 64576 | 4173.2 | - | 65.9 | 30.4 | cold first run 2.34 s |
| generated/large/over4gb-moov-at-end.mp4 | 4.08 GiB | OneMedia to Matroska | 1.67 s | - | 22.0 MiB | 357.9 B | 64576 | 4172.9 | - | 69.9 | 30.4 | cold first run 1.76 s |
| generated/large/over4gb.mkv | 4.14 GiB | OneMedia to MP4 | 4.79 s | - | 6.4 MiB | 104.4 B | 64596 | 4240.6 | - | 89.1 | 30.4 | cold first run 4.91 s |
| generated/large/over4gb.mkv | 4.14 GiB | OneMedia to Matroska | 4.21 s | - | 25.4 MiB | 412.4 B | 64596 | 4240.1 | - | 97.5 | 30.5 | cold first run 4.39 s |
Reference tools, run as processes (wall time including start-up, peak resident set); information only:
| File | Tool | Wall median | Wall min – max | Peak MiB | Note |
| generated/large/over4gb-moov-at-end.mp4 | ffmpeg -c copy -f matroska | 2.90 s | 2.90 s – 2.90 s | 32.2 | |
| generated/large/over4gb.mkv | ffmpeg -c copy -f matroska | 3.09 s | 3.09 s – 3.09 s | 31.9 | |
| File | Size | Implementation | Median | Ratio | Alloc / run | Alloc / packet | Packets | Payload MiB | Tracks or tags | Peak MiB | Baseline MiB | Note |
| generated/mkv/h264-aac.mkv | 0.2 MiB | OneMedia | 166.91 ms | - | 1.8 MiB | 1838312.0 B | 1 | 0.2 | - | 63.3 | 30.4 | cold first run 301.04 ms |
Reference tools, run as processes (wall time including start-up, peak resident set); information only:
| File | Tool | Wall median | Wall min – max | Peak MiB | Note |
| generated/mkv/h264-aac.mkv | ffmpeg -c copy -f mp4 | 6.70 ms | 6.46 ms – 7.44 ms | 17.4 | |
mkv-mux: Matroska/WebM: read every packet and write it to a new Matroska file (no managed Matroska writer to compare with)
| File | Size | Implementation | Median | Ratio | Alloc / run | Alloc / packet | Packets | Payload MiB | Tracks or tags | Peak MiB | Baseline MiB | Note |
| generated/mkv/h264-aac.mkv | 0.2 MiB | OneMedia | 170.2 µs | - | 1.3 MiB | 4340.8 B | 309 | 0.2 | - | 68.5 | 30.4 | cold first run 42.06 ms |
| matroska-test-files/test1.mkv | 22.3 MiB | OneMedia | 6.64 ms | - | 9.2 MiB | 1674.4 B | 5735 | 22.2 | - | 65.6 | 30.5 | cold first run 52.06 ms |
| matroska-test-files/test5.mkv | 30.3 MiB | OneMedia | 4.26 ms | - | 5.1 MiB | 1232.4 B | 4298 | 30.3 | - | 75.2 | 30.5 | cold first run 52.06 ms |
| blender/Sintel.2010.1080p.mkv | 1.10 GiB | OneMedia | 139.66 ms | - | 33.2 MiB | 705.4 B | 49323 | 1125.2 | - | 83.2 | 30.4 | cold first run 240.19 ms |
| blender/tears_of_steel_1080p.webm | 544.9 MiB | OneMedia | 71.50 ms | - | 33.4 MiB | 437.3 B | 80000 | 544.6 | - | 100.8 | 30.4 | cold first run 183.45 ms |
Reference tools, run as processes (wall time including start-up, peak resident set); information only:
| File | Tool | Wall median | Wall min – max | Peak MiB | Note |
| blender/Sintel.2010.1080p.mkv | ffmpeg -c copy -f matroska | 955.98 ms | 955.98 ms – 955.98 ms | 48.1 | |
| blender/Sintel.2010.1080p.mkv | mkvmerge | 384.60 ms | 384.60 ms – 384.60 ms | 73.5 | exit 1 |
| blender/tears_of_steel_1080p.webm | ffmpeg -c copy -f matroska | 225.71 ms | 221.54 ms – 335.84 ms | 20.0 | |
| blender/tears_of_steel_1080p.webm | mkvmerge | 210.27 ms | 201.93 ms – 215.83 ms | 46.4 | exit 1 |
| generated/mkv/h264-aac.mkv | ffmpeg -c copy -f matroska | 7.11 ms | 5.94 ms – 7.28 ms | 17.4 | |
| generated/mkv/h264-aac.mkv | mkvmerge | 21.93 ms | 21.37 ms – 24.12 ms | 20.7 | exit 1 |
| matroska-test-files/test1.mkv | ffmpeg -c copy -f matroska | 37.27 ms | 34.52 ms – 39.02 ms | 16.4 | |
| matroska-test-files/test1.mkv | mkvmerge | 44.68 ms | 43.74 ms – 45.96 ms | 48.3 | exit 1 |
| matroska-test-files/test5.mkv | ffmpeg -c copy -f matroska | 55.32 ms | 53.90 ms – 63.88 ms | 26.0 | |
| matroska-test-files/test5.mkv | mkvmerge | 57.57 ms | 56.81 ms – 62.07 ms | 65.9 | exit 1 |
| File | Size | Implementation | Median | Ratio | Alloc / run | Alloc / packet | Packets | Payload MiB | Tracks or tags | Peak MiB | Baseline MiB | Note |
| generated/audio-es/tagged/id3v22-basic.mp3 | 0.0 MiB | OneMedia | 24.2 µs | 0.46× | 35.5 KiB | - | - | - | - | 95.7 | 30.4 | cold first run 35.38 ms |
| generated/audio-es/tagged/id3v22-basic.mp3 | 0.0 MiB | ATL.NET | 70.3 µs | 1.34× | 285.5 KiB | - | - | - | - | 92.8 | 30.4 | cold first run 34.62 ms |
| generated/audio-es/tagged/id3v22-basic.mp3 | 0.0 MiB | TagLib# | 52.4 µs | 1.00× | 34.1 KiB | - | - | - | - | 86.1 | 30.4 | fastest comparator; cold first run 17.52 ms |
| generated/audio-es/tagged/id3v23-and-v1.mp3 | 0.0 MiB | OneMedia | 29.1 µs | 0.45× | 42.5 KiB | - | - | - | - | 95.9 | 30.4 | cold first run 32.68 ms |
| generated/audio-es/tagged/id3v23-and-v1.mp3 | 0.0 MiB | ATL.NET | 111.7 µs | 1.74× | 296.0 KiB | - | - | - | - | 92.8 | 30.3 | cold first run 40.45 ms |
| generated/audio-es/tagged/id3v23-and-v1.mp3 | 0.0 MiB | TagLib# | 64.2 µs | 1.00× | 33.0 KiB | - | - | - | - | 86.1 | 30.5 | fastest comparator; cold first run 14.96 ms |
| generated/audio-es/tagged/id3v24-basic.mp3 | 0.0 MiB | OneMedia | 23.5 µs | 0.44× | 36.0 KiB | - | - | - | - | 95.7 | 30.5 | cold first run 31.51 ms |
| generated/audio-es/tagged/id3v24-basic.mp3 | 0.0 MiB | ATL.NET | 73.8 µs | 1.37× | 285.5 KiB | - | - | - | - | 92.7 | 30.4 | cold first run 37.86 ms |
| generated/audio-es/tagged/id3v24-basic.mp3 | 0.0 MiB | TagLib# | 53.8 µs | 1.00× | 37.9 KiB | - | - | - | - | 86.4 | 30.5 | fastest comparator; cold first run 15.92 ms |
| generated/audio-es/tagged/id3v24-chapters.mp3 | 0.0 MiB | OneMedia | 18.5 µs | 0.46× | 25.8 KiB | - | - | - | - | 95.9 | 30.4 | cold first run 29.28 ms |
| generated/audio-es/tagged/id3v24-chapters.mp3 | 0.0 MiB | ATL.NET | 48.5 µs | 1.21× | 274.1 KiB | - | - | - | - | 92.3 | 30.4 | cold first run 32.72 ms |
| generated/audio-es/tagged/id3v24-chapters.mp3 | 0.0 MiB | TagLib# | 40.2 µs | 1.00× | 26.3 KiB | - | - | - | - | 85.7 | 30.5 | fastest comparator; cold first run 16.52 ms |
| generated/audio-es/tagged/apev2-only.mp3 | 0.0 MiB | OneMedia | 23.6 µs | 0.47× | 32.1 KiB | - | - | - | - | 95.2 | 30.4 | cold first run 31.90 ms |
| generated/audio-es/tagged/apev2-only.mp3 | 0.0 MiB | ATL.NET | 89.7 µs | 1.78× | 348.0 KiB | - | - | - | - | 93.1 | 30.5 | cold first run 37.45 ms |
| generated/audio-es/tagged/apev2-only.mp3 | 0.0 MiB | TagLib# | 50.5 µs | 1.00× | 30.6 KiB | - | - | - | - | 90.8 | 30.4 | fastest comparator; cold first run 15.23 ms |
| generated/audio-es/tagged/id3v24-apev2-v1.mp3 | 0.0 MiB | OneMedia | 37.0 µs | 0.60× | 52.2 KiB | - | - | - | - | 96.3 | 30.4 | cold first run 33.68 ms |
| generated/audio-es/tagged/id3v24-apev2-v1.mp3 | 0.0 MiB | ATL.NET | 139.7 µs | 2.28× | 308.8 KiB | - | - | - | - | 93.0 | 30.4 | cold first run 43.75 ms |
| generated/audio-es/tagged/id3v24-apev2-v1.mp3 | 0.0 MiB | TagLib# | 61.3 µs | 1.00× | 46.9 KiB | - | - | - | - | 87.0 | 30.4 | fastest comparator; cold first run 15.03 ms |
| generated/audio-es/mp3/long-60s.mp3 | 0.9 MiB | OneMedia | 14.9 µs | 0.63× | 20.5 KiB | - | - | - | - | 91.2 | 30.4 | cold first run 26.82 ms |
| generated/audio-es/mp3/long-60s.mp3 | 0.9 MiB | ATL.NET | 45.4 µs | 1.92× | 334.6 KiB | - | - | - | - | 92.3 | 30.5 | cold first run 31.44 ms |
| generated/audio-es/mp3/long-60s.mp3 | 0.9 MiB | TagLib# | 23.6 µs | 1.00× | 14.7 KiB | - | - | - | - | 85.6 | 30.4 | fastest comparator; cold first run 13.54 ms |
Reference tools, run as processes (wall time including start-up, peak resident set); information only:
| File | Tool | Wall median | Wall min – max | Peak MiB | Note |
| generated/audio-es/mp3/long-60s.mp3 | ExifTool | 49.33 ms | 48.44 ms – 53.91 ms | 18.4 | |
| generated/audio-es/mp3/long-60s.mp3 | MediaInfo | 5.74 ms | 5.38 ms – 5.76 ms | 9.4 | |
| generated/audio-es/mp3/long-60s.mp3 | ffprobe -show_format -show_streams | 3.46 ms | 2.73 ms – 4.56 ms | 11.8 | |
| generated/audio-es/tagged/apev2-only.mp3 | ExifTool | 51.62 ms | 51.43 ms – 52.05 ms | 18.4 | |
| generated/audio-es/tagged/apev2-only.mp3 | MediaInfo | 6.79 ms | 6.64 ms – 7.67 ms | 13.8 | |
| generated/audio-es/tagged/apev2-only.mp3 | ffprobe -show_format -show_streams | 4.43 ms | 2.73 ms – 5.30 ms | 11.8 | |
| generated/audio-es/tagged/id3v22-basic.mp3 | ExifTool | 50.78 ms | 48.86 ms – 52.43 ms | 18.6 | |
| generated/audio-es/tagged/id3v22-basic.mp3 | MediaInfo | 7.68 ms | 7.29 ms – 8.00 ms | 13.7 | |
| generated/audio-es/tagged/id3v22-basic.mp3 | ffprobe -show_format -show_streams | 5.08 ms | 4.60 ms – 6.22 ms | 11.9 | |
| generated/audio-es/tagged/id3v23-and-v1.mp3 | ExifTool | 52.44 ms | 50.78 ms – 53.27 ms | 18.4 | |
| generated/audio-es/tagged/id3v23-and-v1.mp3 | MediaInfo | 5.51 ms | 5.10 ms – 6.77 ms | 9.4 | |
| generated/audio-es/tagged/id3v23-and-v1.mp3 | ffprobe -show_format -show_streams | 5.43 ms | 4.91 ms – 6.84 ms | 11.8 | |
| generated/audio-es/tagged/id3v24-apev2-v1.mp3 | ExifTool | 58.26 ms | 55.80 ms – 58.52 ms | 21.1 | |
| generated/audio-es/tagged/id3v24-apev2-v1.mp3 | MediaInfo | 7.17 ms | 6.94 ms – 7.97 ms | 13.9 | |
| generated/audio-es/tagged/id3v24-apev2-v1.mp3 | ffprobe -show_format -show_streams | 5.52 ms | 5.00 ms – 7.79 ms | 11.8 | |
| generated/audio-es/tagged/id3v24-basic.mp3 | ExifTool | 57.84 ms | 56.23 ms – 58.99 ms | 21.1 | |
| generated/audio-es/tagged/id3v24-basic.mp3 | MediaInfo | 7.34 ms | 6.90 ms – 7.37 ms | 13.7 | |
| generated/audio-es/tagged/id3v24-basic.mp3 | ffprobe -show_format -show_streams | 5.00 ms | 4.92 ms – 6.86 ms | 11.9 | |
| generated/audio-es/tagged/id3v24-chapters.mp3 | ExifTool | 51.66 ms | 48.79 ms – 52.45 ms | 18.4 | |
| generated/audio-es/tagged/id3v24-chapters.mp3 | MediaInfo | 5.61 ms | 5.28 ms – 5.84 ms | 9.4 | |
| generated/audio-es/tagged/id3v24-chapters.mp3 | ffprobe -show_format -show_streams | 5.18 ms | 4.29 ms – 5.27 ms | 11.8 | |
| File | Size | Implementation | Median | Ratio | Alloc / run | Alloc / packet | Packets | Payload MiB | Tracks or tags | Peak MiB | Baseline MiB | Note |
| generated/xiph-flv/flac/tags.flac | 0.1 MiB | OneMedia | 15.2 µs | 0.72× | 9.0 KiB | - | - | - | - | 90.5 | 30.4 | cold first run 26.24 ms |
| generated/xiph-flv/flac/tags.flac | 0.1 MiB | ATL.NET | 38.9 µs | 1.86× | 89.3 KiB | - | - | - | - | 93.7 | 30.4 | cold first run 29.97 ms |
| generated/xiph-flv/flac/tags.flac | 0.1 MiB | TagLib# | 20.9 µs | 1.00× | 19.9 KiB | - | - | - | - | 85.8 | 30.4 | fastest comparator; cold first run 8.79 ms |
| generated/xiph-flv/flac/cover.flac | 0.1 MiB | OneMedia | 19.3 µs | 0.70× | 18.0 KiB | - | - | - | - | 94.7 | 30.5 | cold first run 25.67 ms |
| generated/xiph-flv/flac/cover.flac | 0.1 MiB | ATL.NET | 43.7 µs | 1.59× | 90.1 KiB | - | - | - | - | 92.2 | 30.3 | cold first run 30.46 ms |
| generated/xiph-flv/flac/cover.flac | 0.1 MiB | TagLib# | 27.4 µs | 1.00× | 72.8 KiB | - | - | - | - | 89.8 | 30.5 | fastest comparator; cold first run 9.61 ms |
| generated/xiph-flv/tagvar/flac-rich.flac | 0.1 MiB | OneMedia | 17.8 µs | 0.78× | 9.4 KiB | - | - | - | - | 90.5 | 30.4 | cold first run 23.77 ms |
| generated/xiph-flv/tagvar/flac-rich.flac | 0.1 MiB | ATL.NET | 42.6 µs | 1.87× | 98.8 KiB | - | - | - | - | 92.9 | 30.4 | cold first run 31.72 ms |
| generated/xiph-flv/tagvar/flac-rich.flac | 0.1 MiB | TagLib# | 22.8 µs | 1.00× | 23.4 KiB | - | - | - | - | 85.7 | 30.4 | fastest comparator; cold first run 8.57 ms |
| generated/xiph-flv/ogg/vorbis-tags.ogg | 0.0 MiB | OneMedia | 18.7 µs | 0.38× | 22.2 KiB | - | - | - | - | 92.8 | 30.3 | cold first run 29.68 ms |
| generated/xiph-flv/ogg/vorbis-tags.ogg | 0.0 MiB | ATL.NET | 54.0 µs | 1.10× | 168.4 KiB | - | - | - | - | 92.5 | 30.4 | cold first run 30.52 ms |
| generated/xiph-flv/ogg/vorbis-tags.ogg | 0.0 MiB | TagLib# | 48.9 µs | 1.00× | 33.9 KiB | - | - | - | - | 86.0 | 30.4 | fastest comparator; cold first run 9.84 ms |
| generated/xiph-flv/tagvar/vorbis-rich.ogg | 0.0 MiB | OneMedia | 19.3 µs | 0.56× | 22.9 KiB | - | - | - | - | 93.7 | 30.5 | cold first run 30.68 ms |
| generated/xiph-flv/tagvar/vorbis-rich.ogg | 0.0 MiB | ATL.NET | 65.8 µs | 1.90× | 178.0 KiB | - | - | - | - | 92.7 | 30.4 | cold first run 33.14 ms |
| generated/xiph-flv/tagvar/vorbis-rich.ogg | 0.0 MiB | TagLib# | 34.7 µs | 1.00× | 37.5 KiB | - | - | - | - | 89.7 | 30.4 | fastest comparator; cold first run 10.27 ms |
| generated/xiph-flv/ogg/opus-tags.opus | 0.0 MiB | OneMedia | 12.5 µs | 0.53× | 12.2 KiB | - | - | - | - | 91.9 | 30.4 | cold first run 28.38 ms |
| generated/xiph-flv/ogg/opus-tags.opus | 0.0 MiB | ATL.NET | 69.5 µs | 2.97× | 162.0 KiB | - | - | - | - | 92.4 | 30.4 | cold first run 31.95 ms |
| generated/xiph-flv/ogg/opus-tags.opus | 0.0 MiB | TagLib# | 23.4 µs | 1.00× | 23.8 KiB | - | - | - | - | 90.1 | 30.5 | fastest comparator; cold first run 10.03 ms |
| generated/xiph-flv/tagvar/opus-unicode.opus | 0.0 MiB | OneMedia | 10.5 µs | 0.37× | 7.9 KiB | - | - | - | - | 92.0 | 30.4 | cold first run 31.40 ms |
| generated/xiph-flv/tagvar/opus-unicode.opus | 0.0 MiB | ATL.NET | 54.5 µs | 1.94× | 151.5 KiB | - | - | - | - | 92.5 | 30.4 | cold first run 30.35 ms |
| generated/xiph-flv/tagvar/opus-unicode.opus | 0.0 MiB | TagLib# | 28.1 µs | 1.00× | 16.9 KiB | - | - | - | - | 86.0 | 30.4 | fastest comparator; cold first run 10.00 ms |
| blender/big_buck_bunny_480p_stereo.ogg | 159.1 MiB | OneMedia | 25.5 µs | 0.54× | 26.2 KiB | - | - | - | - | 96.6 | 30.4 | cold first run 30.64 ms |
| blender/big_buck_bunny_480p_stereo.ogg | 159.1 MiB | ATL.NET | 47.9 µs | 1.02× | 157.5 KiB | - | - | - | - | 92.6 | 30.4 | cold first run 31.16 ms |
| blender/big_buck_bunny_480p_stereo.ogg | 159.1 MiB | TagLib# | 46.9 µs | 1.00× | 33.5 KiB | - | - | - | - | 85.9 | 30.4 | fastest comparator; cold first run 9.52 ms |
Reference tools, run as processes (wall time including start-up, peak resident set); information only:
| File | Tool | Wall median | Wall min – max | Peak MiB | Note |
| blender/big_buck_bunny_480p_stereo.ogg | ExifTool | 51.66 ms | 49.32 ms – 52.56 ms | 18.6 | |
| blender/big_buck_bunny_480p_stereo.ogg | MediaInfo | 7.19 ms | 6.97 ms – 7.24 ms | 10.2 | |
| blender/big_buck_bunny_480p_stereo.ogg | ffprobe -show_format -show_streams | 6.09 ms | 5.03 ms – 6.52 ms | 14.8 | |
| generated/xiph-flv/flac/cover.flac | ExifTool | 48.43 ms | 47.09 ms – 50.91 ms | 18.8 | |
| generated/xiph-flv/flac/cover.flac | MediaInfo | 7.54 ms | 6.51 ms – 7.62 ms | 14.0 | |
| generated/xiph-flv/flac/cover.flac | ffprobe -show_format -show_streams | 2.87 ms | 2.13 ms – 3.71 ms | 11.3 | |
| generated/xiph-flv/flac/tags.flac | ExifTool | 50.18 ms | 48.68 ms – 50.96 ms | 18.4 | |
| generated/xiph-flv/flac/tags.flac | MediaInfo | 5.48 ms | 5.35 ms – 5.77 ms | 9.2 | |
| generated/xiph-flv/flac/tags.flac | ffprobe -show_format -show_streams | 2.51 ms | 2.47 ms – 2.72 ms | 11.1 | |
| generated/xiph-flv/ogg/opus-tags.opus | ExifTool | 48.26 ms | 48.13 ms – 52.66 ms | 18.4 | |
| generated/xiph-flv/ogg/opus-tags.opus | MediaInfo | 5.24 ms | 5.23 ms – 5.70 ms | 9.4 | |
| generated/xiph-flv/ogg/opus-tags.opus | ffprobe -show_format -show_streams | 2.94 ms | 2.74 ms – 3.29 ms | 11.8 | |
| generated/xiph-flv/ogg/vorbis-tags.ogg | ExifTool | 49.73 ms | 47.38 ms – 50.05 ms | 18.6 | |
| generated/xiph-flv/ogg/vorbis-tags.ogg | MediaInfo | 5.57 ms | 5.56 ms – 5.76 ms | 9.5 | |
| generated/xiph-flv/ogg/vorbis-tags.ogg | ffprobe -show_format -show_streams | 3.20 ms | 2.68 ms – 3.47 ms | 11.8 | |
| generated/xiph-flv/tagvar/flac-rich.flac | ExifTool | 49.88 ms | 48.50 ms – 52.76 ms | 18.5 | |
| generated/xiph-flv/tagvar/flac-rich.flac | MediaInfo | 5.64 ms | 5.40 ms – 5.68 ms | 9.1 | |
| generated/xiph-flv/tagvar/flac-rich.flac | ffprobe -show_format -show_streams | 3.11 ms | 2.52 ms – 4.37 ms | 11.1 | |
| generated/xiph-flv/tagvar/opus-unicode.opus | ExifTool | 49.58 ms | 47.45 ms – 49.81 ms | 18.6 | |
| generated/xiph-flv/tagvar/opus-unicode.opus | MediaInfo | 5.48 ms | 5.40 ms – 5.76 ms | 9.4 | |
| generated/xiph-flv/tagvar/opus-unicode.opus | ffprobe -show_format -show_streams | 2.74 ms | 2.66 ms – 2.84 ms | 11.8 | |
| generated/xiph-flv/tagvar/vorbis-rich.ogg | ExifTool | 48.55 ms | 47.69 ms – 52.19 ms | 18.4 | |
| generated/xiph-flv/tagvar/vorbis-rich.ogg | MediaInfo | 5.61 ms | 5.52 ms – 6.06 ms | 9.4 | |
| generated/xiph-flv/tagvar/vorbis-rich.ogg | ffprobe -show_format -show_streams | 3.86 ms | 3.11 ms – 4.67 ms | 11.8 | |
xiph-demux: Ogg/FLAC/FLV: read every packet
| File | Size | Implementation | Median | Ratio | Alloc / run | Alloc / packet | Packets | Payload MiB | Tracks or tags | Peak MiB | Baseline MiB | Note |
| generated/xiph-flv/flac/bs4096.flac | 0.5 MiB | OneMedia | 897.0 µs | - | 65.5 KiB | 1426.6 B | 47 | 0.5 | - | 88.6 | 30.4 | cold first run 18.69 ms |
| generated/xiph-flv/ogg/opus-stereo-64k.opus | 0.0 MiB | OneMedia | 89.8 µs | - | 21.5 KiB | 109.7 B | 201 | 0.0 | - | 90.8 | 30.4 | cold first run 21.59 ms |
| generated/xiph-flv/ogg/vorbis-stereo-q5.ogg | 0.0 MiB | OneMedia | 86.3 µs | - | 34.2 KiB | 201.1 B | 174 | 0.0 | - | 91.8 | 30.3 | cold first run 23.08 ms |
| generated/xiph-flv/ogg/theora-vorbis.ogv | 0.2 MiB | OneMedia | 476.9 µs | - | 42.0 KiB | 146.5 B | 294 | 0.2 | - | 91.9 | 30.4 | cold first run 24.23 ms |
| generated/xiph-flv/flv/h264-aac.flv | 0.2 MiB | OneMedia | 44.7 µs | - | 16.7 KiB | 58.0 B | 294 | 0.2 | - | 94.6 | 30.4 | cold first run 18.55 ms |
| generated/xiph-flv/flv/mp3-44k.flv | 0.1 MiB | OneMedia | 24.2 µs | - | 7.1 KiB | 46.8 B | 155 | 0.1 | - | 92.4 | 30.4 | cold first run 14.47 ms |
| blender/big_buck_bunny_480p_stereo.ogg | 159.1 MiB | OneMedia | 292.05 ms | - | 731.0 KiB | 14.9 B | 50290 | 157.5 | - | 44.9 | 30.4 | cold first run 381.36 ms |
Reference tools, run as processes (wall time including start-up, peak resident set); information only:
| File | Tool | Wall median | Wall min – max | Peak MiB | Note |
| blender/big_buck_bunny_480p_stereo.ogg | ffmpeg -c copy -f null | 207.64 ms | 207.09 ms – 256.87 ms | 15.8 | |
| generated/xiph-flv/flac/bs4096.flac | ffmpeg -c copy -f null | 3.73 ms | 3.56 ms – 3.87 ms | 12.5 | |
| generated/xiph-flv/flv/h264-aac.flv | ffmpeg -c copy -f null | 7.09 ms | 6.42 ms – 9.76 ms | 19.4 | |
| generated/xiph-flv/flv/mp3-44k.flv | ffmpeg -c copy -f null | 4.45 ms | 4.10 ms – 4.79 ms | 14.8 | |
| generated/xiph-flv/ogg/opus-stereo-64k.opus | ffmpeg -c copy -f null | 4.57 ms | 3.60 ms – 5.00 ms | 12.8 | |
| generated/xiph-flv/ogg/theora-vorbis.ogv | ffmpeg -c copy -f null | 5.47 ms | 5.42 ms – 5.74 ms | 14.6 | |
| generated/xiph-flv/ogg/vorbis-stereo-q5.ogg | ffmpeg -c copy -f null | 3.68 ms | 3.24 ms – 3.87 ms | 13.1 | |
| File | Size | Implementation | Median | Ratio | Alloc / run | Alloc / packet | Packets | Payload MiB | Tracks or tags | Peak MiB | Baseline MiB | Note |
| generated/asf/wmv2-wmav2-tagged.wmv | 0.4 MiB | OneMedia | 23.3 µs | 0.57× | 75.3 KiB | - | - | - | - | 98.6 | 30.4 | cold first run 34.75 ms |
| generated/asf/wmv2-wmav2-tagged.wmv | 0.4 MiB | ATL.NET | 197.9 µs | 4.86× | 598.1 KiB | - | - | - | - | 92.5 | 30.4 | cold first run 35.53 ms |
| generated/asf/wmv2-wmav2-tagged.wmv | 0.4 MiB | TagLib# | 40.7 µs | 1.00× | 27.6 KiB | - | - | - | - | 89.5 | 30.4 | fastest comparator; cold first run 8.71 ms |
| generated/asf/wmav2-tagged.wma | 0.0 MiB | OneMedia | 23.7 µs | 0.62× | 66.2 KiB | - | - | - | - | 103.8 | 30.5 | cold first run 33.86 ms |
| generated/asf/wmav2-tagged.wma | 0.0 MiB | ATL.NET | 125.8 µs | 3.27× | 444.9 KiB | - | - | - | - | 93.3 | 30.4 | cold first run 34.70 ms |
| generated/asf/wmav2-tagged.wma | 0.0 MiB | TagLib# | 38.4 µs | 1.00× | 26.1 KiB | - | - | - | - | 89.5 | 30.4 | fastest comparator; cold first run 9.03 ms |
| generated/asf/wmav2-cover.wma | 0.1 MiB | OneMedia | 16.5 µs | 0.50× | 70.5 KiB | - | - | - | - | 103.6 | 30.4 | cold first run 37.89 ms |
| generated/asf/wmav2-cover.wma | 0.1 MiB | ATL.NET | 96.9 µs | 2.92× | 424.1 KiB | - | - | - | - | 92.9 | 30.5 | cold first run 31.39 ms |
| generated/asf/wmav2-cover.wma | 0.1 MiB | TagLib# | 33.2 µs | 1.00× | 20.3 KiB | - | - | - | - | 85.6 | 30.4 | fastest comparator; cold first run 8.87 ms |
| generated/asf/mp3-tagged-unicode.wma | 0.1 MiB | OneMedia | 16.9 µs | 0.56× | 61.6 KiB | - | - | - | - | 98.7 | 30.5 | cold first run 37.16 ms |
| generated/asf/mp3-tagged-unicode.wma | 0.1 MiB | ATL.NET | 102.6 µs | 3.41× | 424.9 KiB | - | - | - | - | 92.8 | 30.4 | cold first run 31.54 ms |
| generated/asf/mp3-tagged-unicode.wma | 0.1 MiB | TagLib# | 30.1 µs | 1.00× | 18.4 KiB | - | - | - | - | 90.0 | 30.4 | fastest comparator; cold first run 8.93 ms |
| samples/ASF/wma_with_WmPicture.wma | 2.3 MiB | OneMedia | 32.4 µs | 0.46× | 82.3 KiB | - | - | - | - | 99.4 | 30.4 | cold first run 34.41 ms |
| samples/ASF/wma_with_WmPicture.wma | 2.3 MiB | ATL.NET | 272.4 µs | 3.86× | 713.1 KiB | - | - | - | - | 93.5 | 30.4 | cold first run 38.29 ms |
| samples/ASF/wma_with_WmPicture.wma | 2.3 MiB | TagLib# | 70.5 µs | 1.00× | 166.0 KiB | - | - | - | - | 90.0 | 30.4 | fastest comparator; cold first run 9.82 ms |
| samples/ASF/wma_with_ID3_APIC.wma | 2.2 MiB | OneMedia | 37.3 µs | 0.65× | 129.1 KiB | - | - | - | - | 104.4 | 30.4 | cold first run 41.25 ms |
| samples/ASF/wma_with_ID3_APIC.wma | 2.2 MiB | ATL.NET | 229.7 µs | 4.02× | 813.3 KiB | - | - | - | - | 93.2 | 30.4 | cold first run 34.16 ms |
| samples/ASF/wma_with_ID3_APIC.wma | 2.2 MiB | TagLib# | 57.2 µs | 1.00× | 73.3 KiB | - | - | - | - | 90.0 | 30.4 | fastest comparator; cold first run 9.06 ms |
Reference tools, run as processes (wall time including start-up, peak resident set); information only:
| File | Tool | Wall median | Wall min – max | Peak MiB | Note |
| generated/asf/mp3-tagged-unicode.wma | ExifTool | 81.71 ms | 78.19 ms – 82.04 ms | 30.4 | |
| generated/asf/mp3-tagged-unicode.wma | MediaInfo | 5.76 ms | 5.38 ms – 6.10 ms | 9.4 | |
| generated/asf/mp3-tagged-unicode.wma | ffprobe -show_format -show_streams | 3.15 ms | 2.64 ms – 4.19 ms | 11.8 | |
| generated/asf/wmav2-cover.wma | ExifTool | 79.06 ms | 77.09 ms – 80.47 ms | 30.7 | |
| generated/asf/wmav2-cover.wma | MediaInfo | 9.38 ms | 9.35 ms – 9.49 ms | 10.9 | |
| generated/asf/wmav2-cover.wma | ffprobe -show_format -show_streams | 3.66 ms | 3.20 ms – 5.99 ms | 12.1 | |
| generated/asf/wmav2-tagged.wma | ExifTool | 82.24 ms | 79.54 ms – 86.09 ms | 30.6 | |
| generated/asf/wmav2-tagged.wma | MediaInfo | 5.86 ms | 5.77 ms – 5.97 ms | 9.2 | |
| generated/asf/wmav2-tagged.wma | ffprobe -show_format -show_streams | 3.50 ms | 2.99 ms – 4.66 ms | 11.8 | |
| generated/asf/wmv2-wmav2-tagged.wmv | ExifTool | 86.79 ms | 80.29 ms – 89.02 ms | 30.6 | |
| generated/asf/wmv2-wmav2-tagged.wmv | MediaInfo | 10.00 ms | 9.97 ms – 10.01 ms | 10.9 | |
| generated/asf/wmv2-wmav2-tagged.wmv | ffprobe -show_format -show_streams | 4.13 ms | 3.38 ms – 5.39 ms | 13.2 | |
| samples/ASF/wma_with_ID3_APIC.wma | ExifTool | 85.15 ms | 80.51 ms – 87.74 ms | 30.6 | |
| samples/ASF/wma_with_ID3_APIC.wma | MediaInfo | 5.34 ms | 5.24 ms – 5.72 ms | 9.1 | |
| samples/ASF/wma_with_ID3_APIC.wma | ffprobe -show_format -show_streams | 3.30 ms | 3.06 ms – 3.54 ms | 12.1 | |
| samples/ASF/wma_with_WmPicture.wma | ExifTool | 84.61 ms | 80.86 ms – 86.50 ms | 30.7 | |
| samples/ASF/wma_with_WmPicture.wma | MediaInfo | 7.74 ms | 7.74 ms – 7.76 ms | 13.7 | |
| samples/ASF/wma_with_WmPicture.wma | ffprobe -show_format -show_streams | 3.28 ms | 3.07 ms – 3.41 ms | 12.1 | |
| File | Size | Implementation | Median | Ratio | Alloc / run | Alloc / packet | Packets | Payload MiB | Tracks or tags | Peak MiB | Baseline MiB | Note |
| generated/pcm/tagged-wav-info.wav | 0.5 MiB | OneMedia | 21.1 µs | 0.51× | 9.7 KiB | - | - | - | - | 96.1 | 30.3 | cold first run 23.52 ms |
| generated/pcm/tagged-wav-info.wav | 0.5 MiB | ATL.NET | 41.4 µs | 1.00× | 84.4 KiB | - | - | - | - | 92.2 | 30.4 | fastest comparator; cold first run 29.36 ms |
| generated/pcm/tagged-wav-info.wav | 0.5 MiB | TagLib# | 56.7 µs | 1.37× | 30.9 KiB | - | - | - | - | 90.9 | 30.4 | cold first run 16.56 ms |
| generated/pcm/tagged-wav-bext.wav | 0.8 MiB | OneMedia | 24.7 µs | 0.44× | 13.7 KiB | - | - | - | - | 93.3 | 30.4 | cold first run 27.37 ms |
| generated/pcm/tagged-wav-bext.wav | 0.8 MiB | ATL.NET | 114.0 µs | 2.02× | 148.9 KiB | - | - | - | - | 92.6 | 30.4 | cold first run 31.38 ms |
| generated/pcm/tagged-wav-bext.wav | 0.8 MiB | TagLib# | 56.3 µs | 1.00× | 31.2 KiB | - | - | - | - | 86.9 | 30.4 | fastest comparator; cold first run 17.27 ms |
| generated/pcm/tagged-wav-id3.wav | 0.5 MiB | OneMedia | 20.7 µs | 0.56× | 9.7 KiB | - | - | - | - | 92.2 | 30.3 | cold first run 23.54 ms |
| generated/pcm/tagged-wav-id3.wav | 0.5 MiB | ATL.NET | 37.3 µs | 1.00× | 84.4 KiB | - | - | - | - | 92.2 | 30.4 | fastest comparator; cold first run 30.23 ms |
| generated/pcm/tagged-wav-id3.wav | 0.5 MiB | TagLib# | 55.6 µs | 1.49× | 30.9 KiB | - | - | - | - | 90.9 | 30.4 | cold first run 16.72 ms |
| generated/pcm/wav-pcm_s16le-mono44k.wav | 0.3 MiB | OneMedia | 10.0 µs | 0.74× | 3.6 KiB | - | - | - | - | 91.1 | 30.4 | cold first run 21.23 ms |
| generated/pcm/wav-pcm_s16le-mono44k.wav | 0.3 MiB | ATL.NET | 13.5 µs | 1.00× | 79.9 KiB | - | - | - | - | 101.1 | 30.4 | fastest comparator; cold first run 25.52 ms |
| generated/pcm/wav-pcm_s16le-mono44k.wav | 0.3 MiB | TagLib# | 43.6 µs | 3.24× | 26.2 KiB | - | - | - | - | 86.7 | 30.4 | cold first run 14.82 ms |
| generated/pcm/tagged-aiff.aiff | 0.5 MiB | OneMedia | 14.4 µs | 0.57× | 6.3 KiB | - | - | - | - | 95.3 | 30.3 | cold first run 21.46 ms |
| generated/pcm/tagged-aiff.aiff | 0.5 MiB | ATL.NET | 31.9 µs | 1.25× | 78.6 KiB | - | - | - | - | 92.0 | 30.4 | cold first run 25.46 ms |
| generated/pcm/tagged-aiff.aiff | 0.5 MiB | TagLib# | 25.5 µs | 1.00× | 9.4 KiB | - | - | - | - | 85.3 | 30.4 | fastest comparator; cold first run 6.61 ms |
| generated/pcm/tagged-aiff-id3.aiff | 0.5 MiB | OneMedia | 20.4 µs | 0.57× | 13.8 KiB | - | - | - | - | 91.8 | 30.5 | cold first run 27.73 ms |
| generated/pcm/tagged-aiff-id3.aiff | 0.5 MiB | ATL.NET | 79.2 µs | 2.21× | 224.0 KiB | - | - | - | - | 92.9 | 30.4 | cold first run 36.88 ms |
| generated/pcm/tagged-aiff-id3.aiff | 0.5 MiB | TagLib# | 35.9 µs | 1.00× | 17.8 KiB | - | - | - | - | 85.6 | 30.4 | fastest comparator; cold first run 9.47 ms |
| generated/pcm/aiff-pcm_s16be-mono44k.aiff | 0.3 MiB | OneMedia | 10.2 µs | 0.62× | 3.6 KiB | - | - | - | - | 89.2 | 30.4 | cold first run 22.44 ms |
| generated/pcm/aiff-pcm_s16be-mono44k.aiff | 0.3 MiB | ATL.NET | 19.8 µs | 1.21× | 75.5 KiB | - | - | - | - | 96.4 | 30.5 | cold first run 24.53 ms |
| generated/pcm/aiff-pcm_s16be-mono44k.aiff | 0.3 MiB | TagLib# | 16.5 µs | 1.00× | 7.3 KiB | - | - | - | - | 85.4 | 30.6 | fastest comparator; cold first run 6.90 ms |
| generated/pcm/tagged-caf.caf | 0.5 MiB | OneMedia | 12.4 µs | 0.26× | 7.2 KiB | - | - | - | - | 95.6 | 30.3 | cold first run 21.62 ms |
| generated/pcm/tagged-caf.caf | 0.5 MiB | ATL.NET | 46.8 µs | 1.00× | 86.0 KiB | - | - | - | - | 91.9 | 30.4 | cold first run 28.55 ms |
| generated/pcm/tagged-caf.caf | 0.5 MiB | TagLib# | fail | - | - | - | - | - | - | 34.3 | 30.4 | UnsupportedFormatException: generated/pcm/tagged-caf.caf (taglib/caf) |
Reference tools, run as processes (wall time including start-up, peak resident set); information only:
| File | Tool | Wall median | Wall min – max | Peak MiB | Note |
| generated/pcm/aiff-pcm_s16be-mono44k.aiff | ExifTool | 81.51 ms | 76.99 ms – 83.18 ms | 30.6 | |
| generated/pcm/aiff-pcm_s16be-mono44k.aiff | MediaInfo | 6.20 ms | 5.79 ms – 6.86 ms | 9.5 | |
| generated/pcm/aiff-pcm_s16be-mono44k.aiff | ffprobe -show_format -show_streams | 3.18 ms | 2.41 ms – 4.14 ms | 11.0 | |
| generated/pcm/tagged-aiff-id3.aiff | ExifTool | 88.43 ms | 85.06 ms – 88.63 ms | 31.8 | |
| generated/pcm/tagged-aiff-id3.aiff | MediaInfo | 7.52 ms | 7.38 ms – 7.71 ms | 9.5 | |
| generated/pcm/tagged-aiff-id3.aiff | ffprobe -show_format -show_streams | 2.61 ms | 2.24 ms – 2.95 ms | 11.0 | |
| generated/pcm/tagged-aiff.aiff | ExifTool | 78.66 ms | 76.79 ms – 81.30 ms | 30.7 | |
| generated/pcm/tagged-aiff.aiff | MediaInfo | 7.17 ms | 7.02 ms – 7.36 ms | 9.7 | |
| generated/pcm/tagged-aiff.aiff | ffprobe -show_format -show_streams | 2.60 ms | 2.16 ms – 2.67 ms | 11.0 | |
| generated/pcm/tagged-caf.caf | ExifTool | 54.52 ms | 53.07 ms – 55.31 ms | 19.6 | exit 1 |
| generated/pcm/tagged-caf.caf | MediaInfo | 5.51 ms | 5.34 ms – 5.69 ms | 9.2 | |
| generated/pcm/tagged-caf.caf | ffprobe -show_format -show_streams | 2.62 ms | 2.42 ms – 3.27 ms | 10.7 | |
| generated/pcm/tagged-wav-bext.wav | ExifTool | 46.70 ms | 45.87 ms – 48.51 ms | 18.4 | |
| generated/pcm/tagged-wav-bext.wav | MediaInfo | 15.34 ms | 15.04 ms – 15.40 ms | 10.9 | |
| generated/pcm/tagged-wav-bext.wav | ffprobe -show_format -show_streams | 2.38 ms | 2.37 ms – 2.93 ms | 11.5 | |
| generated/pcm/tagged-wav-id3.wav | ExifTool | 51.61 ms | 48.36 ms – 53.06 ms | 18.4 | |
| generated/pcm/tagged-wav-id3.wav | MediaInfo | 7.53 ms | 6.84 ms – 7.61 ms | 9.4 | |
| generated/pcm/tagged-wav-id3.wav | ffprobe -show_format -show_streams | 17.37 ms | 17.07 ms – 17.67 ms | 11.5 | |
| generated/pcm/tagged-wav-info.wav | ExifTool | 48.36 ms | 48.20 ms – 51.67 ms | 18.1 | |
| generated/pcm/tagged-wav-info.wav | MediaInfo | 7.09 ms | 6.86 ms – 7.88 ms | 9.5 | |
| generated/pcm/tagged-wav-info.wav | ffprobe -show_format -show_streams | 17.69 ms | 17.31 ms – 20.44 ms | 11.6 | |
| generated/pcm/wav-pcm_s16le-mono44k.wav | ExifTool | 49.02 ms | 47.17 ms – 51.08 ms | 18.4 | |
| generated/pcm/wav-pcm_s16le-mono44k.wav | MediaInfo | 6.77 ms | 6.13 ms – 6.89 ms | 9.4 | |
| generated/pcm/wav-pcm_s16le-mono44k.wav | ffprobe -show_format -show_streams | 9.20 ms | 9.17 ms – 11.77 ms | 11.5 | |
avi-demux: AVI: read every packet of every stream
| File | Size | Implementation | Median | Ratio | Alloc / run | Alloc / packet | Packets | Payload MiB | Tracks or tags | Peak MiB | Baseline MiB | Note |
| generated/avi/tagged-mpeg4-mp3.avi | 0.4 MiB | OneMedia | 47.8 µs | - | 22.9 KiB | 108.6 B | 216 | 0.4 | - | 91.6 | 30.4 | cold first run 23.74 ms |
| samples/avi/AV36_1.AVI | 9.3 MiB | OneMedia | 509.5 µs | - | 22.8 KiB | 23.6 B | 988 | 8.8 | - | 91.2 | 30.4 | cold first run 24.72 ms |
| samples/avi/GoneNutty.avi | 44.7 MiB | OneMedia | 3.32 ms | - | 22.4 KiB | 2.5 B | 9147 | 44.5 | - | 51.2 | 30.4 | cold first run 29.68 ms |
| samples/avi/DV-type1/dvformat2.avi | 180.0 MiB | OneMedia | 11.26 ms | - | 19.3 KiB | 6.6 B | 2984 | 179.9 | - | 46.1 | 30.4 | cold first run 35.96 ms |
| generated/avi/large/odml-4p6gb.avi | 4.33 GiB | OneMedia | 383.92 ms | - | 20.4 KiB | 0.7 B | 28750 | 4431.2 | - | 38.5 | 30.4 | cold first run 414.99 ms |
Reference tools, run as processes (wall time including start-up, peak resident set); information only:
| File | Tool | Wall median | Wall min – max | Peak MiB | Note |
| generated/avi/large/odml-4p6gb.avi | ffmpeg -c copy -f null | 532.70 ms | 532.70 ms – 532.70 ms | 14.4 | |
| generated/avi/tagged-mpeg4-mp3.avi | ffmpeg -c copy -f null | 4.98 ms | 3.95 ms – 6.06 ms | 13.8 | |
| samples/avi/AV36_1.AVI | ffmpeg -c copy -f null | 10.25 ms | 10.21 ms – 10.27 ms | 12.7 | |
| samples/avi/DV-type1/dvformat2.avi | ffmpeg -c copy -f null | 38.54 ms | 38.37 ms – 48.93 ms | 13.7 | |
| samples/avi/GoneNutty.avi | ffmpeg -c copy -f null | 84.05 ms | 52.01 ms – 85.03 ms | 14.4 | |
mpeg-demux: MPEG-TS/M2TS/PS: read every packet
| File | Size | Implementation | Median | Ratio | Alloc / run | Alloc / packet | Packets | Payload MiB | Tracks or tags | Peak MiB | Baseline MiB | Note |
| generated/mpeg/ts/mpeg2-interlaced.ts | 1.1 MiB | OneMedia | 345.7 µs | - | 254.6 KiB | 976.6 B | 267 | 1.1 | - | 96.1 | 30.4 | cold first run 22.42 ms |
| generated/mpeg/ts/h264-high-50fps.ts | 0.6 MiB | OneMedia | 220.8 µs | - | 223.6 KiB | 588.6 B | 389 | 0.5 | - | 100.3 | 30.4 | cold first run 28.48 ms |
| generated/mpeg/m2ts/mpeg2-ac3.m2ts | 0.9 MiB | OneMedia | 272.7 µs | - | 254.6 KiB | 1158.5 B | 225 | 0.8 | - | 97.5 | 30.4 | cold first run 22.63 ms |
| generated/mpeg/ps/dvd-ac3-ntsc.vob | 2.2 MiB | OneMedia | 456.8 µs | - | 699.3 KiB | 2722.6 B | 263 | 2.2 | - | 61.4 | 30.4 | cold first run 20.71 ms |
| generated/mpeg/ps/mpeg2-svcd.mpg | 1.2 MiB | OneMedia | 285.4 µs | - | 600.2 KiB | 2243.0 B | 274 | 1.2 | - | 57.6 | 30.4 | cold first run 19.72 ms |
| samples/mpeg/HD-h264.ts | 120.7 MiB | OneMedia | 36.60 ms | - | 17.1 MiB | 4489.9 B | 4002 | 117.2 | - | 88.6 | 30.4 | cold first run 129.64 ms |
| generated/mpeg/large/ts-2gb.ts | 2.21 GiB | OneMedia | 604.01 ms | - | 1.5 MiB | 18.1 B | 87738 | 2204.5 | - | 48.6 | 30.4 | cold first run 749.04 ms |
Reference tools, run as processes (wall time including start-up, peak resident set); information only:
| File | Tool | Wall median | Wall min – max | Peak MiB | Note |
| generated/mpeg/large/ts-2gb.ts | ffmpeg -c copy -f null | 962.05 ms | 962.05 ms – 962.05 ms | 24.2 | |
| generated/mpeg/m2ts/mpeg2-ac3.m2ts | ffmpeg -c copy -f null | 104.74 ms | 103.12 ms – 114.31 ms | 12.8 | exit 139 |
| generated/mpeg/ps/dvd-ac3-ntsc.vob | ffmpeg -c copy -f null | 8.71 ms | 8.32 ms – 9.20 ms | 16.0 | |
| generated/mpeg/ps/mpeg2-svcd.mpg | ffmpeg -c copy -f null | 7.08 ms | 6.74 ms – 7.17 ms | 14.6 | |
| generated/mpeg/ts/h264-high-50fps.ts | ffmpeg -c copy -f null | 105.52 ms | 102.05 ms – 106.47 ms | 12.8 | exit 139 |
| generated/mpeg/ts/mpeg2-interlaced.ts | ffmpeg -c copy -f null | 96.40 ms | 95.68 ms – 109.74 ms | 12.8 | exit 139 |
| samples/mpeg/HD-h264.ts | ffmpeg -c copy -f null | 92.14 ms | 83.01 ms – 95.74 ms | 35.6 | |
asf-demux: ASF/WMV/WMA: read every packet
| File | Size | Implementation | Median | Ratio | Alloc / run | Alloc / packet | Packets | Payload MiB | Tracks or tags | Peak MiB | Baseline MiB | Note |
| generated/asf/wmv2-wmav2.wmv | 0.4 MiB | OneMedia | 54.0 µs | - | 73.9 KiB | 353.6 B | 214 | 0.4 | - | 94.3 | 30.4 | cold first run 25.50 ms |
| generated/asf/wmv2-pcm.asf | 0.8 MiB | OneMedia | 89.9 µs | - | 65.3 KiB | 269.8 B | 248 | 0.7 | - | 90.8 | 30.4 | cold first run 25.94 ms |
| generated/asf/msmpeg4v3-mp3.asf | 0.4 MiB | OneMedia | 58.1 µs | - | 81.4 KiB | 289.4 B | 288 | 0.4 | - | 94.3 | 30.4 | cold first run 27.84 ms |
| generated/large/over2gb.wmv | 2.17 GiB | OneMedia | 243.02 ms | - | 2.0 MiB | 93.0 B | 23005 | 2203.5 | - | 39.9 | 30.3 | cold first run 334.74 ms |
Reference tools, run as processes (wall time including start-up, peak resident set); information only:
| File | Tool | Wall median | Wall min – max | Peak MiB | Note |
| generated/asf/msmpeg4v3-mp3.asf | ffmpeg -c copy -f null | 5.66 ms | 4.69 ms – 5.94 ms | 14.2 | |
| generated/asf/wmv2-pcm.asf | ffmpeg -c copy -f null | 4.65 ms | 4.59 ms – 4.81 ms | 13.9 | |
| generated/asf/wmv2-wmav2.wmv | ffmpeg -c copy -f null | 4.68 ms | 4.63 ms – 5.22 ms | 14.2 | |
| generated/large/over2gb.wmv | ffmpeg -c copy -f null | 270.66 ms | 270.66 ms – 270.66 ms | 19.4 | |
repair-index: Matroska/AVI/MP4: rebuild the index of a healthy file into memory
| File | Size | Implementation | Median | Ratio | Alloc / run | Alloc / packet | Packets | Payload MiB | Tracks or tags | Peak MiB | Baseline MiB | Note |
| generated/mkv/h264-aac.mkv | 0.2 MiB | OneMedia | 61.3 µs | - | 1.1 MiB | 562204.9 B | 2 | 0.2 | - | 58.6 | 30.4 | cold first run 21.64 ms |
| matroska-test-files/test1.mkv | 22.3 MiB | OneMedia | 10.71 ms | - | 63.6 MiB | 33320804.0 B | 2 | 22.3 | - | 168.3 | 30.4 | cold first run 46.61 ms |
| generated/avi/tagged-mpeg4-mp3.avi | 0.4 MiB | OneMedia | 233.6 µs | - | 1.0 MiB | 550488.0 B | 2 | 0.4 | - | 54.9 | 30.5 | cold first run 12.02 ms |
| samples/avi/GoneNutty.avi | 44.7 MiB | OneMedia | 33.02 ms | - | 129.3 MiB | 67799420.0 B | 2 | 44.7 | - | 400.1 | 30.4 | cold first run 72.61 ms |
| generated/mp4/h264-aac.mp4 | 0.2 MiB | OneMedia | 61.6 µs | - | 1.1 MiB | 552427.0 B | 2 | 0.2 | - | 60.0 | 30.4 | cold first run 15.07 ms |
| samples/MPEG-4/video.mp4 | 26.6 MiB | OneMedia | 13.76 ms | - | 63.2 MiB | 11048035.3 B | 6 | 26.6 | - | 150.6 | 30.5 | cold first run 48.46 ms |
package-hls: HLS: CMAF segments and playlists written to disk
| File | Size | Implementation | Median | Ratio | Alloc / run | Alloc / packet | Packets | Payload MiB | Tracks or tags | Peak MiB | Baseline MiB | Note |
| generated/mp4/h264-aac.mp4 | 0.2 MiB | OneMedia | 1.33 ms | - | 740.7 KiB | 379230.9 B | 2 | 0.2 | - | 63.0 | 30.4 | cold first run 74.90 ms |
| samples/MPEG-4/video.mp4 | 26.6 MiB | OneMedia | 21.20 ms | - | 4.0 MiB | 81654.1 B | 52 | 25.8 | - | 73.3 | 30.5 | cold first run 114.94 ms |
| blender/elephantsdream_teaser.mp4 | 29.2 MiB | OneMedia | 22.59 ms | - | 9.2 MiB | 401225.3 B | 24 | 29.2 | - | 75.7 | 30.4 | cold first run 101.39 ms |
| File | Size | Implementation | Median | Ratio | Alloc / run | Alloc / packet | Packets | Payload MiB | Tracks or tags | Peak MiB | Baseline MiB | Note |
| generated/avi/tagged-mpeg4-mp3.avi | 0.4 MiB | OneMedia | 18.2 µs | 0.62× | 22.9 KiB | - | - | - | 2 | 92.0 | 30.4 | cold first run 20.47 ms |
| generated/avi/tagged-mpeg4-mp3.avi | 0.4 MiB | ATL.NET | fail | - | - | - | - | - | - | 37.3 | 30.4 | NullReferenceException: Object reference not set to an instance of an object. |
| generated/avi/tagged-mpeg4-mp3.avi | 0.4 MiB | MetadataExtractor | 29.2 µs | 1.00× | 67.9 KiB | - | - | - | 11 | 90.0 | 30.4 | fastest comparator; cold first run 8.31 ms |
| generated/avi/tagged-mpeg4-mp3.avi | 0.4 MiB | TagLib# | 84.2 µs | 2.88× | 77.6 KiB | - | - | - | 2 | 86.3 | 30.5 | cold first run 17.97 ms |
| samples/avi/AV36_1.AVI | 9.3 MiB | OneMedia | 18.7 µs | 0.67× | 22.8 KiB | - | - | - | 2 | 92.0 | 30.4 | cold first run 20.30 ms |
| samples/avi/AV36_1.AVI | 9.3 MiB | ATL.NET | fail | - | - | - | - | - | - | 37.3 | 30.3 | NullReferenceException: Object reference not set to an instance of an object. |
| samples/avi/AV36_1.AVI | 9.3 MiB | MetadataExtractor | 27.8 µs | 1.00× | 67.8 KiB | - | - | - | 11 | 89.9 | 30.4 | fastest comparator; cold first run 8.66 ms |
| samples/avi/AV36_1.AVI | 9.3 MiB | TagLib# | 60.0 µs | 2.16× | 40.6 KiB | - | - | - | 2 | 85.8 | 30.3 | cold first run 16.60 ms |
| samples/avi/GoneNutty.avi | 44.7 MiB | OneMedia | 11.9 µs | 0.42× | 22.4 KiB | - | - | - | 2 | 91.9 | 30.4 | cold first run 19.04 ms |
| samples/avi/GoneNutty.avi | 44.7 MiB | ATL.NET | fail | - | - | - | - | - | - | 37.5 | 30.4 | NullReferenceException: Object reference not set to an instance of an object. |
| samples/avi/GoneNutty.avi | 44.7 MiB | MetadataExtractor | 28.1 µs | 1.00× | 67.8 KiB | - | - | - | 11 | 90.1 | 30.5 | fastest comparator; cold first run 8.65 ms |
| samples/avi/GoneNutty.avi | 44.7 MiB | TagLib# | 60.9 µs | 2.17× | 39.3 KiB | - | - | - | 2 | 86.6 | 30.4 | cold first run 16.91 ms |
| samples/avi/DV-type1/dvformat2.avi | 180.0 MiB | OneMedia | 11.1 µs | 0.43× | 19.1 KiB | - | - | - | 2 | 91.7 | 30.4 | cold first run 18.43 ms |
| samples/avi/DV-type1/dvformat2.avi | 180.0 MiB | ATL.NET | fail | - | - | - | - | - | - | 37.5 | 30.5 | NullReferenceException: Object reference not set to an instance of an object. |
| samples/avi/DV-type1/dvformat2.avi | 180.0 MiB | MetadataExtractor | 25.8 µs | 1.00× | 68.4 KiB | - | - | - | 11 | 90.0 | 30.5 | fastest comparator; cold first run 8.41 ms |
| samples/avi/DV-type1/dvformat2.avi | 180.0 MiB | TagLib# | 63.7 µs | 2.48× | 291.4 KiB | - | - | - | 2 | 89.8 | 30.4 | cold first run 16.63 ms |
| generated/avi/large/odml-4p6gb.avi | 4.33 GiB | OneMedia | 15.9 µs | 0.52× | 20.2 KiB | - | - | - | 2 | 91.7 | 30.4 | cold first run 18.79 ms |
| generated/avi/large/odml-4p6gb.avi | 4.33 GiB | ATL.NET | fail | - | - | - | - | - | - | 37.3 | 30.4 | NullReferenceException: Object reference not set to an instance of an object. |
| generated/avi/large/odml-4p6gb.avi | 4.33 GiB | MetadataExtractor | 30.7 µs | 1.00× | 68.0 KiB | - | - | - | 11 | 90.0 | 30.4 | fastest comparator; cold first run 8.81 ms |
| generated/avi/large/odml-4p6gb.avi | 4.33 GiB | TagLib# | 69.8 µs | 2.27× | 96.9 KiB | - | - | - | 2 | 89.9 | 30.5 | cold first run 16.61 ms |
Reference tools, run as processes (wall time including start-up, peak resident set); information only:
| File | Tool | Wall median | Wall min – max | Peak MiB | Note |
| generated/avi/large/odml-4p6gb.avi | ExifTool | 50.15 ms | 50.15 ms – 50.15 ms | 18.1 | |
| generated/avi/large/odml-4p6gb.avi | MediaInfo | 12.23 ms | 12.23 ms – 12.23 ms | 10.4 | |
| generated/avi/large/odml-4p6gb.avi | ffprobe -show_format -show_streams | 4.58 ms | 4.58 ms – 4.58 ms | 11.8 | |
| generated/avi/tagged-mpeg4-mp3.avi | ExifTool | 52.27 ms | 51.21 ms – 52.60 ms | 18.8 | |
| generated/avi/tagged-mpeg4-mp3.avi | MediaInfo | 10.01 ms | 9.82 ms – 10.12 ms | 11.7 | |
| generated/avi/tagged-mpeg4-mp3.avi | ffprobe -show_format -show_streams | 3.26 ms | 3.05 ms – 3.68 ms | 12.4 | |
| samples/avi/AV36_1.AVI | ExifTool | 52.58 ms | 49.10 ms – 52.91 ms | 18.4 | |
| samples/avi/AV36_1.AVI | MediaInfo | 7.88 ms | 7.85 ms – 8.15 ms | 10.3 | |
| samples/avi/AV36_1.AVI | ffprobe -show_format -show_streams | 3.03 ms | 2.59 ms – 3.41 ms | 11.5 | |
| samples/avi/DV-type1/dvformat2.avi | ExifTool | 50.83 ms | 49.55 ms – 54.64 ms | 18.1 | |
| samples/avi/DV-type1/dvformat2.avi | MediaInfo | 14.13 ms | 14.10 ms – 14.26 ms | 12.0 | |
| samples/avi/DV-type1/dvformat2.avi | ffprobe -show_format -show_streams | 5.25 ms | 5.09 ms – 5.51 ms | 12.3 | |
| samples/avi/GoneNutty.avi | ExifTool | 51.72 ms | 49.27 ms – 52.81 ms | 18.8 | |
| samples/avi/GoneNutty.avi | MediaInfo | 24.18 ms | 23.58 ms – 24.55 ms | 12.2 | |
| samples/avi/GoneNutty.avi | ffprobe -show_format -show_streams | 4.26 ms | 3.75 ms – 4.43 ms | 13.4 | |