---
title: "Speed, memory and I/O rows, 0.8: x64 (worker)"
url: https://recursiveai.org/onemedia/docs/bench-x64-0-8/
description: "The 0.8 speed run on x64 (AMD Ryzen 9 7950X3D, Linux): every area, each row against the fastest managed comparator, with allocations, peak memory, first-open times and the native tools’ times."
version: "0.8.0-preview.2"
source: https://github.com/recursive-ai-oss/onemedia-csharp/blob/16456e4d405f037d1b029e967dfc7d028ae3a0d5/docs/bench-results/0.8-x64.md
---

# Speed, memory and I/O rows, 0.8: x64 (worker)

Method: [bench.md](https://recursiveai.org/onemedia/docs/bench/). 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).

## Subtitle rows (SubtitlesParser 1.5.1 and Subtitle Edit core 5.3.0 as comparators; median of 30 samples)

| 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](https://recursiveai.org/onemedia/docs/bench-memory-io-0-8/)), 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 |

## mp4-probe: MP4/MOV: open, track list, duration, tags

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

## tagw-id3: MP3: change title, artist, album and comment; the edited file in memory

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

## tagw-flac: FLAC: change title, artist, album and comment; the edited file in memory

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

## tagw-ilst: MP4/M4A: change title, artist, album and comment in `ilst`; the edited file 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-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 |

## tagw-riff: WAV: change `LIST INFO` title, artist, album and comment; the edited file in memory

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

## tagw-mkv: Matroska: change title, artist, album and comment; the edited file in memory

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

## playable: MakePlayable (generic MP4): Matroska H.264+AAC to MP4; information

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

## mp3-tags: MP3: open and read the common tags

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

## xiph-tags: FLAC/Ogg: open, tags, duration

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

## asf-tags: ASF/WMA/WMV: open and read the tags (title, artist, album, genre, pictures)

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

## pcm-tags: WAVE/AIFF/CAF: open, duration, tags

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

## avi-probe: AVI: open, track list, duration, tags

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