7 releases

0.2.5 Nov 18, 2023
0.2.4 Apr 13, 2021
0.2.3 Mar 1, 2021
0.2.2 Feb 23, 2021
0.1.0 Jan 11, 2021

#127 in Video

Download history 7/week @ 2023-11-09 25/week @ 2023-11-16 17/week @ 2023-11-23 22/week @ 2023-11-30 2/week @ 2023-12-07 7/week @ 2023-12-14 14/week @ 2023-12-21 6/week @ 2024-01-18 7/week @ 2024-01-25 7/week @ 2024-02-01 1/week @ 2024-02-08 83/week @ 2024-02-15 205/week @ 2024-02-22

296 downloads per month

MIT license

248 lines

speed-levels benchmarking

This program relies on hyperfine, install it with cargo install hyperfine.

It tries to encode a number of samples using a 4x4 tiles fixed setting using all the available encoder speed presets. It is possible to use taskset or numactl as RUNNER_COMMAND to restrict further the number of cores used by the encoder.

Supported encoders


    speed-levels-rs [FLAGS] [OPTIONS] <INPUT>... --encoders <encoders>...

    -h, --help           Prints help information
        --show-output    Print the stdout and stderr of the benchmark instead of suppressing it. This will increase the
                         time it takes for benchmarks to run, so it should only be used for debugging purposes or when
                         trying to benchmark output speed
    -V, --version        Prints version information

    -e, --encoders <encoders>...       Specify the encoder paths
        --extra-aom <extra-aom>        Extra command for the aom instances [env: EXTRA_AOM=]  [default: ]
        --extra-rav1e <extra-rav1e>    Extra command for the rav1e instances [env: EXTRA_RAV1E=]  [default: ]
        --extra-svt <extra-svt>        Extra command for the svt-av1 instances [env: EXTRA_SVT=]  [default: ]
    -l, --limit <limit>                Number of frames to encode [default: 10]
    -O, --outdir <outdir>              Output directory for the encoded files [default: ~/Encoded]
    -o, --outname <outname>            Filename of the aggregate spreadsheet
        --runner <runner>              Use the provided runner to execute the encoder [env: RUNNER_COMMAND=]  [default:
    -r, --runs <runs>                  Perform exactly NUM runs for each command [default: 2]
    -t, --tag <tag>                    Descriptive tag [default: enyo.local-x86_64]
        --threads <threads>            Set the threadpool size [default: 16]

    <INPUT>...    Input Files


  • Spreadsheet aggregation
  • Standard summary of the run
  • Graphs in the summary
  • av-metrics integration


~403K SLoC