Recursive AI

OneMedia speed rows

All onemedia docs

Run 2026-11-01 00:49Z

  • Host: x64 build worker; AMD Ryzen 9 7950X3D 16-Core Processor; 32 logical cores; Linux Mint 22.3 X64
  • ISA: sse4.2 avx2 bmi2 avx512f avx512bw
  • Storage of the corpus: /dev/nvme0n1p4; every file is read once before its rows, so it is in the page cache for all of them
  • .NET: 10.0.13 (.NET 10.0.13)
  • Load average (1 min): before 9.62; during mean 5.12, max 9.62 over 32 samples at 5 s; after 2.83
  • Elapsed: 2.7 min; repetitions 5 (managed), 3 (tools); files over 1 GiB get one warm-up run and 3 samples of one run each, and tools once
  • Packages as restored: SharpMP4 0.3.2; RecursiveAI.OneAudio 1.4.0; MetadataExtractor 2.9.3; TagLibSharp 2.3.0.0; z440.atl.core 7.19; Matroska 0.0.12
  • Tools: 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

Ratio is OneMedia's median over the fastest managed comparator's median on the same file (below 1.00× is faster). Peak is the process's peak resident set; Baseline is its resident set before any work, so Peak − Baseline is what the work added.

mp4-demux: MP4/MOV: read every packet of every track

FileSizeImplementationMedianRatioAlloc / runAlloc / packetPacketsPayload MiBTracks or tagsPeak MiBBaseline MiBNote
generated/mp4/h264-aac.mp40.2 MiBOneMedia33.7 µs0.02×23.6 KiB78.2 B3090.2-88.327.8cold first run 19.88 ms
generated/mp4/h264-aac.mp40.2 MiBSharpMP41.45 ms1.00×1.4 MiB4620.0 B3090.2-103.827.8cold first run 52.81 ms
samples/MPEG-4/video.mp426.6 MiBOneMedia2.73 ms0.12×57.6 KiB3.2 B1867126.5-65.127.8cold first run 26.18 ms
samples/MPEG-4/video.mp426.6 MiBSharpMP423.25 ms1.00×42.6 MiB2390.1 B1867126.5-103.327.8cold first run 109.41 ms
blender/big_buck_bunny_1080p_h264.mov691.5 MiBOneMedia74.86 ms0.20×2.1 MiB52.7 B42276691.1-42.527.8cold first run 110.10 ms
blender/big_buck_bunny_1080p_h264.mov691.5 MiBSharpMP4374.22 ms1.00×801.0 MiB19866.2 B42276691.1-105.527.8cold first run 743.98 ms
generated/bench/frag-bbb-1080p.mp4691.5 MiBOneMedia52.92 ms-2.1 MiB51.7 B42276691.1-40.027.8cold first run 85.39 ms
generated/bench/frag-bbb-1080p.mp4691.5 MiBSharpMP4fail------103.927.9IndexOutOfRangeException: Index was outside the bounds of the array.
generated/large/over4gb-moov-at-end.mp44.08 GiBOneMedia267.01 ms0.21×1.9 MiB30.6 B645764172.2-36.927.8cold first run 298.65 ms
generated/large/over4gb-moov-at-end.mp44.08 GiBSharpMP41.30 s1.00×4334.8 MiB70388.5 B645764172.2-112.627.9cold first run 1.50 s

Reference tools, run as processes (wall time including start-up, peak resident set); information only:

FileToolWall medianWall min – maxPeak MiBNote
blender/big_buck_bunny_1080p_h264.movffmpeg -c copy -f null194.60 ms193.15 ms – 194.94 ms24.3
generated/bench/frag-bbb-1080p.mp4ffmpeg -c copy -f null195.05 ms191.19 ms – 197.23 ms38.4
generated/large/over4gb-moov-at-end.mp4ffmpeg -c copy -f null609.22 ms609.22 ms – 609.22 ms25.2
generated/mp4/h264-aac.mp4ffmpeg -c copy -f null6.30 ms6.23 ms – 7.07 ms17.1
samples/MPEG-4/video.mp4ffmpeg -c copy -f null72.00 ms55.21 ms – 81.73 ms14.9

mp4-audio: MP4/MOV: read the audio track's packets

FileSizeImplementationMedianRatioAlloc / runAlloc / packetPacketsPayload MiBTracks or tagsPeak MiBBaseline MiBNote
generated/mp4/h264-aac.mp40.2 MiBOneMedia30.7 µs0.82×23.6 KiB127.8 B1890.0-88.327.8cold first run 19.87 ms
generated/mp4/h264-aac.mp40.2 MiBOneAudio Mp4PacketSource37.6 µs1.00×71.6 KiB388.2 B1890.0-89.527.7cold first run 18.08 ms
generated/mp4/h264-aac.mp40.2 MiBOneMedia, length asked of the file each time32.8 µs0.87×23.7 KiB128.3 B1890.0-92.527.7cold first run 20.30 ms
samples/MPEG-4/video.mp426.6 MiBOneMedia392.4 µs0.63×57.6 KiB8.2 B72001.9-87.727.8cold first run 21.16 ms
samples/MPEG-4/video.mp426.6 MiBOneAudio Mp4PacketSource627.6 µs1.00×97.6 KiB13.9 B72001.9-86.127.9cold first run 9.88 ms
samples/MPEG-4/video.mp426.6 MiBOneMedia, length asked of the file each time397.3 µs0.63×57.7 KiB8.2 B72001.9-88.227.9cold first run 20.18 ms
blender/big_buck_bunny_1080p_h264.mov691.5 MiBOneMedia5.39 ms-62.4 KiB2.3 B2796031.1-53.827.8cold first run 32.98 ms
blender/big_buck_bunny_1080p_h264.mov691.5 MiBOneAudio Mp4PacketSourcefail------31.727.8UnsupportedAudioFormatException: Audio track 0 uses a QuickTime sound description version this library does not read.
blender/big_buck_bunny_1080p_h264.mov691.5 MiBOneMedia, length asked of the file each time5.43 ms-62.5 KiB2.3 B2796031.1-52.627.8cold first run 31.44 ms
generated/bench/frag-bbb-1080p.mp4691.5 MiBOneMedia4.78 ms-21.6 KiB0.8 B2796031.1-44.527.9cold first run 36.04 ms
generated/bench/frag-bbb-1080p.mp4691.5 MiBOneAudio Mp4PacketSourcefail------31.827.9UnsupportedAudioFormatException: Fragmented MP4 files (mvex boxes) are not supported.
generated/bench/frag-bbb-1080p.mp4691.5 MiBOneMedia, length asked of the file each time5.13 ms-21.7 KiB0.8 B2796031.1-44.327.8cold first run 36.80 ms
generated/large/over4gb-moov-at-end.mp44.08 GiBOneMedia37.46 ms0.29×46.9 KiB1.2 B393769.7-33.327.7cold first run 60.58 ms
generated/large/over4gb-moov-at-end.mp44.08 GiBOneAudio Mp4PacketSource128.43 ms1.00×1020.5 KiB26.5 B393769.7-34.027.9cold first run 135.50 ms
generated/large/over4gb-moov-at-end.mp44.08 GiBOneMedia, length asked of the file each time37.18 ms0.29×47.0 KiB1.2 B393769.7-33.427.8cold first run 59.76 ms

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

FileSizeImplementationMedianRatioAlloc / runAlloc / packetPacketsPayload MiBTracks or tagsPeak MiBBaseline MiBNote
generated/mp4/h264-aac.mp40.2 MiBOneMedia11.8 µs0.16×23.6 KiB---290.527.9cold first run 18.41 ms
generated/mp4/h264-aac.mp40.2 MiBATL.NET122.8 µs1.66×146.6 KiB---094.027.8cold first run 44.89 ms
generated/mp4/h264-aac.mp40.2 MiBMetadataExtractor83.6 µs1.13×77.7 KiB---4887.527.8cold first run 20.84 ms
generated/mp4/h264-aac.mp40.2 MiBTagLib#73.8 µs1.00×36.7 KiB---284.128.0fastest comparator; cold first run 20.11 ms
samples/MPEG-4/video.mp426.6 MiBOneMedia17.6 µs0.12×57.6 KiB---691.727.8cold first run 16.43 ms
samples/MPEG-4/video.mp426.6 MiBATL.NET423.0 µs2.82×151.7 KiB---091.427.9cold first run 41.22 ms
samples/MPEG-4/video.mp426.6 MiBMetadataExtractor159.5 µs1.06×91.8 KiB---9685.627.8cold first run 11.21 ms
samples/MPEG-4/video.mp426.6 MiBTagLib#150.0 µs1.00×78.1 KiB---284.627.7fastest comparator; cold first run 11.07 ms
blender/big_buck_bunny_1080p_h264.mov691.5 MiBOneMedia38.4 µs0.24×62.4 KiB---395.427.8cold first run 19.34 ms
blender/big_buck_bunny_1080p_h264.mov691.5 MiBATL.NET1.02 ms6.36×229.2 KiB---091.427.8cold first run 45.04 ms
blender/big_buck_bunny_1080p_h264.mov691.5 MiBMetadataExtractor159.9 µs1.00×87.7 KiB---6189.127.8fastest comparator; cold first run 12.87 ms
blender/big_buck_bunny_1080p_h264.mov691.5 MiBTagLib#fail------31.727.9UnsupportedFormatException: blender/big_buck_bunny_1080p_h264.mov (taglib/mov)
generated/bench/frag-bbb-1080p.mp4691.5 MiBOneMedia10.3 µs0.01×20.9 KiB---391.027.9cold first run 16.04 ms
generated/bench/frag-bbb-1080p.mp4691.5 MiBATL.NET6.17 ms3.64×483.7 KiB---094.827.8cold first run 54.53 ms
generated/bench/frag-bbb-1080p.mp4691.5 MiBMetadataExtractor5.04 ms2.97×183.6 KiB---6084.827.9cold first run 15.63 ms
generated/bench/frag-bbb-1080p.mp4691.5 MiBTagLib#1.70 ms1.00×521.2 KiB---289.227.8fastest comparator; cold first run 12.88 ms
generated/large/over4gb-moov-at-end.mp44.08 GiBOneMedia29.5 µs0.40×46.4 KiB---295.127.8cold first run 17.84 ms
generated/large/over4gb-moov-at-end.mp44.08 GiBATL.NET1.07 ms14.61×146.5 KiB---092.527.9cold first run 41.99 ms
generated/large/over4gb-moov-at-end.mp44.08 GiBMetadataExtractor86.6 µs1.19×77.6 KiB---4885.527.8cold first run 10.57 ms
generated/large/over4gb-moov-at-end.mp44.08 GiBTagLib#73.0 µs1.00×36.0 KiB---284.127.9fastest comparator; cold first run 10.52 ms

Reference tools, run as processes (wall time including start-up, peak resident set); information only:

FileToolWall medianWall min – maxPeak MiBNote
blender/big_buck_bunny_1080p_h264.movExifTool68.20 ms65.56 ms – 72.36 ms23.2
blender/big_buck_bunny_1080p_h264.movMP4Box -info34.84 ms34.34 ms – 37.39 ms50.8
blender/big_buck_bunny_1080p_h264.movMediaInfo19.06 ms18.95 ms – 20.21 ms14.2
blender/big_buck_bunny_1080p_h264.movffprobe -show_format -show_streams10.05 ms10.02 ms – 11.79 ms23.4
generated/bench/frag-bbb-1080p.mp4ExifTool139.76 ms138.08 ms – 141.02 ms23.0
generated/bench/frag-bbb-1080p.mp4MP4Box -info38.38 ms37.43 ms – 40.29 ms53.2
generated/bench/frag-bbb-1080p.mp4MediaInfo26.46 ms25.69 ms – 27.79 ms14.1
generated/bench/frag-bbb-1080p.mp4ffprobe -show_format -show_streams39.43 ms39.09 ms – 40.19 ms37.3
generated/large/over4gb-moov-at-end.mp4ExifTool68.26 ms68.26 ms – 68.26 ms26.7
generated/large/over4gb-moov-at-end.mp4MP4Box -info38.68 ms38.68 ms – 38.68 ms50.1
generated/large/over4gb-moov-at-end.mp4MediaInfo22.26 ms22.26 ms – 22.26 ms17.5
generated/large/over4gb-moov-at-end.mp4ffprobe -show_format -show_streams19.04 ms19.04 ms – 19.04 ms20.5
generated/mp4/h264-aac.mp4ExifTool61.72 ms60.31 ms – 64.83 ms22.2
generated/mp4/h264-aac.mp4MP4Box -info34.86 ms33.64 ms – 36.08 ms50.4
generated/mp4/h264-aac.mp4MediaInfo9.64 ms9.49 ms – 9.68 ms11.2
generated/mp4/h264-aac.mp4ffprobe -show_format -show_streams5.71 ms5.52 ms – 6.15 ms16.2
samples/MPEG-4/video.mp4ExifTool97.51 ms96.71 ms – 97.58 ms32.9
samples/MPEG-4/video.mp4MP4Box -info33.17 ms32.87 ms – 34.88 ms50.2
samples/MPEG-4/video.mp4MediaInfo10.76 ms10.14 ms – 11.73 ms11.4
samples/MPEG-4/video.mp4ffprobe -show_format -show_streams4.67 ms4.48 ms – 4.81 ms13.8

mkv-demux: Matroska/WebM: read every packet

FileSizeImplementationMedianRatioAlloc / runAlloc / packetPacketsPayload MiBTracks or tagsPeak MiBBaseline MiBNote
generated/mkv/h264-aac.mkv0.2 MiBOneMedia86.9 µs0.21×1.0 MiB3513.4 B3090.2-44.527.8cold first run 22.11 ms
generated/mkv/h264-aac.mkv0.2 MiBOneMedia, length asked of the file each time258.1 µs0.62×1.0 MiB3513.7 B3090.2-44.727.9cold first run 22.77 ms
generated/mkv/h264-aac.mkv0.2 MiBStefH Matroska418.7 µs1.00×671.5 KiB2225.3 B3090.2-88.827.8cold first run 27.48 ms
matroska-test-files/test1.mkv22.3 MiBOneMedia2.26 ms0.29×1.0 MiB189.4 B573522.2-45.227.9cold first run 27.78 ms
matroska-test-files/test1.mkv22.3 MiBOneMedia, length asked of the file each time3.69 ms0.47×1.0 MiB189.4 B573522.2-45.427.8cold first run 29.24 ms
matroska-test-files/test1.mkv22.3 MiBStefH Matroska7.78 ms1.00×45.3 MiB18416.7 B258222.2-110.727.8packet count differs from OneMedia's 5735; cold first run 44.44 ms
matroska-test-files/test5.mkv30.3 MiBOneMedia2.51 ms0.23×1.0 MiB254.5 B429830.3-45.127.9cold first run 26.77 ms
matroska-test-files/test5.mkv30.3 MiBOneMedia, length asked of the file each time3.43 ms0.31×1.0 MiB254.5 B429830.3-44.527.7cold first run 27.75 ms
matroska-test-files/test5.mkv30.3 MiBStefH Matroska10.91 ms1.00×61.6 MiB41194.0 B156830.3-116.027.9packet count differs from OneMedia's 4298; cold first run 49.00 ms
blender/Sintel.2010.1080p.mkv1.10 GiBOneMedia124.37 ms0.31×1.0 MiB22.2 B493231125.2-39.327.9cold first run 143.64 ms
blender/Sintel.2010.1080p.mkv1.10 GiBOneMedia, length asked of the file each time134.24 ms0.34×1.0 MiB22.2 B493231125.2-40.727.8cold first run 157.67 ms
blender/Sintel.2010.1080p.mkv1.10 GiBStefH Matroska398.11 ms1.00×2265.5 MiB93603.5 B253791125.2-1597.127.9packet count differs from OneMedia's 49323; cold first run 828.64 ms
blender/tears_of_steel_1080p.webm544.9 MiBOneMedia50.31 ms0.25×1.0 MiB13.7 B80000544.6-40.927.9cold first run 97.10 ms
blender/tears_of_steel_1080p.webm544.9 MiBOneMedia, length asked of the file each time63.90 ms0.32×1.0 MiB13.7 B80000544.6-41.327.8cold first run 114.03 ms
blender/tears_of_steel_1080p.webm544.9 MiBStefH Matroska199.94 ms1.00×1097.5 MiB44893.5 B25634544.7-1197.327.9packet count differs from OneMedia's 80000; cold first run 460.46 ms
generated/large/over4gb.mkv4.14 GiBOneMedia269.85 ms0.28×1.0 MiB16.8 B645964239.4-39.627.9cold first run 343.81 ms
generated/large/over4gb.mkv4.14 GiBOneMedia, length asked of the file each time304.02 ms0.31×1.0 MiB16.8 B645964239.4-39.827.9cold first run 387.46 ms
generated/large/over4gb.mkv4.14 GiBStefH Matroska975.70 ms1.00×8516.7 MiB138250.7 B645964239.4-6391.627.9cold first run 2.71 s

Reference tools, run as processes (wall time including start-up, peak resident set); information only:

FileToolWall medianWall min – maxPeak MiBNote
blender/Sintel.2010.1080p.mkvffmpeg -c copy -f null273.25 ms273.25 ms – 273.25 ms20.1
blender/Sintel.2010.1080p.mkvmkvextract tracks (first track)264.63 ms264.63 ms – 264.63 ms23.9
blender/tears_of_steel_1080p.webmffmpeg -c copy -f null220.75 ms215.10 ms – 233.47 ms13.8
blender/tears_of_steel_1080p.webmmkvextract tracks (first track)108.88 ms108.01 ms – 111.14 ms23.9
generated/large/over4gb.mkvffmpeg -c copy -f null590.66 ms590.66 ms – 590.66 ms24.0
generated/large/over4gb.mkvmkvextract tracks (first track)1.28 s1.28 s – 1.28 s27.2
generated/mkv/h264-aac.mkvffmpeg -c copy -f null6.56 ms6.04 ms – 7.00 ms17.1
generated/mkv/h264-aac.mkvmkvextract tracks (first track)21.16 ms20.87 ms – 22.57 ms17.4
matroska-test-files/test1.mkvffmpeg -c copy -f null23.51 ms22.84 ms – 30.06 ms13.9
matroska-test-files/test1.mkvmkvextract tracks (first track)28.20 ms27.52 ms – 28.77 ms20.6
matroska-test-files/test5.mkvffmpeg -c copy -f null36.58 ms36.32 ms – 36.99 ms23.1
matroska-test-files/test5.mkvmkvextract tracks (first track)29.56 ms28.97 ms – 30.31 ms23.2

mkv-probe: Matroska/WebM: open, track list, duration

FileSizeImplementationMedianRatioAlloc / runAlloc / packetPacketsPayload MiBTracks or tagsPeak MiBBaseline MiBNote
generated/mkv/h264-aac.mkv0.2 MiBOneMedia8.3 µs0.64×36.1 KiB---294.027.8cold first run 13.41 ms
generated/mkv/h264-aac.mkv0.2 MiBNEbml element reader13.0 µs1.00×68.7 KiB---286.527.8cold first run 2.68 ms
matroska-test-files/test1.mkv22.3 MiBOneMedia8.1 µs0.66×36.5 KiB---293.927.8cold first run 13.21 ms
matroska-test-files/test1.mkv22.3 MiBNEbml element reader12.3 µs1.00×68.3 KiB---286.527.8cold first run 2.72 ms
matroska-test-files/test5.mkv30.3 MiBOneMedia11.5 µs0.67×44.0 KiB---1194.027.8cold first run 13.96 ms
matroska-test-files/test5.mkv30.3 MiBNEbml element reader17.1 µs1.00×72.8 KiB---1190.927.8cold first run 2.72 ms
blender/Sintel.2010.1080p.mkv1.10 GiBOneMedia11.7 µs0.65×44.7 KiB---1298.027.9cold first run 13.70 ms
blender/Sintel.2010.1080p.mkv1.10 GiBNEbml element reader18.0 µs1.00×73.3 KiB---1290.627.8cold first run 2.84 ms
blender/tears_of_steel_1080p.webm544.9 MiBOneMedia10.4 µs0.83×43.9 KiB---294.127.9cold first run 13.94 ms
blender/tears_of_steel_1080p.webm544.9 MiBNEbml element reader12.6 µs1.00×68.2 KiB---286.627.8cold first run 2.68 ms
generated/large/over4gb.mkv4.14 GiBOneMedia8.4 µs0.67×36.1 KiB---294.127.8cold first run 12.75 ms
generated/large/over4gb.mkv4.14 GiBNEbml element reader12.6 µs1.00×68.6 KiB---286.627.9cold first run 2.84 ms

Reference tools, run as processes (wall time including start-up, peak resident set); information only:

FileToolWall medianWall min – maxPeak MiBNote
blender/Sintel.2010.1080p.mkvExifTool51.78 ms51.78 ms – 51.78 ms18.4
blender/Sintel.2010.1080p.mkvMediaInfo99.02 ms99.02 ms – 99.02 ms11.0
blender/Sintel.2010.1080p.mkvffprobe -show_format -show_streams7.20 ms7.20 ms – 7.20 ms19.0
blender/Sintel.2010.1080p.mkvmkvinfo21.20 ms21.20 ms – 21.20 ms16.2
blender/Sintel.2010.1080p.mkvmkvmerge -J31.88 ms31.88 ms – 31.88 ms21.2
blender/tears_of_steel_1080p.webmExifTool51.61 ms50.69 ms – 52.69 ms18.4
blender/tears_of_steel_1080p.webmMediaInfo20.97 ms19.63 ms – 21.53 ms11.1
blender/tears_of_steel_1080p.webmffprobe -show_format -show_streams3.17 ms2.74 ms – 3.53 ms12.2
blender/tears_of_steel_1080p.webmmkvinfo20.61 ms20.16 ms – 20.80 ms16.0
blender/tears_of_steel_1080p.webmmkvmerge -J28.79 ms28.00 ms – 29.40 ms21.1
generated/large/over4gb.mkvExifTool49.74 ms49.74 ms – 49.74 ms17.9
generated/large/over4gb.mkvMediaInfo138.35 ms138.35 ms – 138.35 ms11.7
generated/large/over4gb.mkvffprobe -show_format -show_streams65.86 ms65.86 ms – 65.86 ms23.5
generated/large/over4gb.mkvmkvinfo25.07 ms25.07 ms – 25.07 ms20.5
generated/large/over4gb.mkvmkvmerge -J53.30 ms53.30 ms – 53.30 ms34.7
generated/mkv/h264-aac.mkvExifTool49.84 ms48.78 ms – 52.98 ms18.5
generated/mkv/h264-aac.mkvMediaInfo9.42 ms8.99 ms – 9.89 ms10.5
generated/mkv/h264-aac.mkvffprobe -show_format -show_streams5.71 ms5.55 ms – 5.76 ms16.0
generated/mkv/h264-aac.mkvmkvinfo20.96 ms19.48 ms – 28.38 ms15.7
generated/mkv/h264-aac.mkvmkvmerge -J22.78 ms21.83 ms – 22.91 ms19.6
matroska-test-files/test1.mkvExifTool49.46 ms49.04 ms – 49.63 ms18.4
matroska-test-files/test1.mkvMediaInfo9.85 ms9.51 ms – 10.28 ms11.2
matroska-test-files/test1.mkvffprobe -show_format -show_streams3.19 ms3.19 ms – 3.60 ms12.6
matroska-test-files/test1.mkvmkvinfo21.05 ms20.99 ms – 21.13 ms16.2
matroska-test-files/test1.mkvmkvmerge -J28.18 ms27.46 ms – 38.96 ms22.2
matroska-test-files/test5.mkvExifTool84.47 ms83.92 ms – 85.41 ms29.9
matroska-test-files/test5.mkvMediaInfo19.42 ms19.04 ms – 19.61 ms10.9
matroska-test-files/test5.mkvffprobe -show_format -show_streams20.03 ms19.76 ms – 21.76 ms21.8
matroska-test-files/test5.mkvmkvinfo20.35 ms20.27 ms – 20.52 ms17.8
matroska-test-files/test5.mkvmkvmerge -J30.09 ms29.54 ms – 30.81 ms25.1

Against the bar

Bar: geometric mean of the ratios ≤ 1.00× and no file worse than 1.25×, against the fastest managed comparator per file.

RowFiles with a ratioGeomeanWorstVerdict
mp4-demux4/50.10×0.21×at the bar
mp4-audio3/50.53×0.82×at the bar
mp4-probe5/50.10×0.40×at the bar
mkv-demux6/60.26×0.31×at the bar
mkv-probe6/60.69×0.83×at the bar