Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Proryanator authored Feb 7, 2023
0 parents commit 2f4bada
Show file tree
Hide file tree
Showing 32 changed files with 3,313 additions and 0 deletions.
23 changes: 23 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Generated by Cargo
# will have compiled files and executables
/target/

# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
Cargo.lock

# These are backup files generated by rustfmt
**/*.rs.bk

# Jetbrains stuff
/.idea/
*.iml

# might eventually remove this but, keeping raw files out of git
*.y4m
*.mp4

*.exe
*.pdb
*.log
/results.txt
17 changes: 17 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
[package]
name = "encoder_benchmark_tool"
version = "0.1.0"
edition = "2021"

[dependencies]
clap = { version = "4.0.32", features = ["derive"] }
compound_duration = "1.2.0"
crossbeam-channel = "0.5.6"
ctrlc = "3.2.4"
filetime = "0.2.19"
indicatif = "0.17.2"
itertools = "0.10.5"
num_cpus = "1.15.0"
regex = "1.7.0"
rev_buf_reader = "0.3.0"
stoppable_thread = "0.2.1"
507 changes: 507 additions & 0 deletions README.md

Large diffs are not rendered by default.

Binary file added docs/obs-encoder-overload.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
178 changes: 178 additions & 0 deletions references/nvidia-turing/1080-120-h264.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
Results from entire permutation:
==================================================================================================================================================================
[Resolution] [FPS] [Bitrate] [Encode Time] [VMAF Time] [VMAF Score] [Encoder Settings]
1920x1080 120 5 32s 52s 49.99189 -preset p1 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 5 31s 51s 50.78878 -preset p2 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 5 31s 51s 49.87901 -preset p3 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 5 31s 51s 51.33805 -preset p3 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 5 31s 51s 47.46562 -preset p4 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 5 31s 51s 51.39954 -preset p4 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 5 31s 51s 47.82333 -preset p5 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 5 31s 51s 51.34720 -preset p5 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 5 32s 52s 50.41552 -preset p6 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 5 31s 51s 51.36192 -preset p6 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 5 32s 52s 50.62050 -preset p7 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 5 31s 51s 51.46517 -preset p7 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 10 31s 50s 70.29657 -preset p1 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 10 31s 50s 71.19142 -preset p2 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 10 31s 51s 69.25217 -preset p3 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 10 31s 51s 71.62771 -preset p3 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 10 31s 51s 66.86445 -preset p4 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 10 31s 50s 71.78528 -preset p4 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 10 31s 51s 66.76498 -preset p5 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 10 31s 52s 71.73936 -preset p5 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 10 32s 52s 69.62772 -preset p6 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 10 31s 50s 71.78707 -preset p6 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 10 32s 52s 69.94501 -preset p7 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 10 31s 50s 72.00939 -preset p7 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 15 31s 49s 79.79058 -preset p1 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 15 31s 50s 80.37565 -preset p2 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 15 31s 50s 79.43720 -preset p3 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 15 32s 49s 80.78581 -preset p3 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 15 31s 50s 77.39177 -preset p4 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 15 31s 49s 80.88729 -preset p4 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 15 31s 51s 77.23794 -preset p5 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 15 31s 50s 80.84431 -preset p5 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 15 32s 50s 79.28085 -preset p6 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 15 31s 49s 80.85456 -preset p6 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 15 33s 50s 79.57948 -preset p7 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 15 31s 49s 81.00658 -preset p7 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 20 31s 49s 85.08440 -preset p1 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 20 31s 49s 85.47128 -preset p2 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 20 31s 49s 84.99984 -preset p3 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 20 31s 49s 85.76170 -preset p3 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 20 31s 49s 83.66228 -preset p4 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 20 31s 49s 85.82275 -preset p4 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 20 31s 49s 83.43204 -preset p5 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 20 31s 49s 85.83939 -preset p5 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 20 32s 50s 84.54772 -preset p6 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 20 31s 49s 85.84438 -preset p6 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 20 33s 50s 84.80801 -preset p7 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 20 31s 49s 86.00859 -preset p7 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 25 31s 49s 88.25314 -preset p1 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 25 31s 48s 88.52682 -preset p2 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 25 31s 49s 88.38203 -preset p3 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 25 31s 50s 88.85011 -preset p3 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 25 31s 49s 87.33513 -preset p4 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 25 31s 49s 88.88587 -preset p4 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 25 31s 49s 87.18569 -preset p5 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 25 31s 49s 88.85275 -preset p5 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 25 32s 49s 87.82487 -preset p6 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 25 31s 49s 88.89854 -preset p6 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 25 33s 49s 88.00738 -preset p7 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 25 31s 49s 89.01835 -preset p7 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 30 31s 48s 90.36114 -preset p1 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 30 31s 48s 90.60395 -preset p2 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 30 31s 49s 90.70490 -preset p3 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 30 31s 49s 90.82680 -preset p3 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 30 31s 49s 89.70013 -preset p4 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 30 31s 49s 90.90486 -preset p4 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 30 31s 50s 89.63236 -preset p5 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 30 31s 49s 90.88116 -preset p5 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 30 32s 50s 89.98054 -preset p6 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 30 31s 48s 90.86143 -preset p6 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 30 33s 49s 90.14933 -preset p7 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 30 31s 48s 90.99081 -preset p7 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 35 31s 49s 91.86444 -preset p1 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 35 31s 48s 92.03297 -preset p2 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 35 31s 48s 92.23409 -preset p3 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 35 31s 48s 92.23190 -preset p3 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 35 31s 49s 91.42215 -preset p4 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 35 31s 49s 92.27628 -preset p4 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 35 31s 49s 91.33764 -preset p5 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 35 31s 49s 92.25399 -preset p5 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 35 32s 49s 91.46214 -preset p6 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 35 31s 48s 92.26575 -preset p6 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 35 33s 49s 91.57964 -preset p7 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 35 31s 48s 92.37749 -preset p7 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 40 31s 48s 92.97674 -preset p1 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 40 31s 49s 93.11378 -preset p2 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 40 31s 48s 93.38796 -preset p3 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 40 31s 49s 93.27600 -preset p3 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 40 31s 49s 92.60187 -preset p4 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 40 31s 48s 93.31536 -preset p4 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 40 31s 49s 92.58385 -preset p5 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 40 31s 48s 93.33156 -preset p5 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 40 32s 49s 92.55917 -preset p6 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 40 31s 48s 93.31236 -preset p6 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 40 !!! Overloaded !!! -preset p7 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 40 31s 49s 93.38749 -preset p7 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 45 31s 48s 93.81015 -preset p1 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 45 31s 49s 93.93367 -preset p2 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 45 31s 49s 94.24088 -preset p3 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 45 31s 48s 94.08202 -preset p3 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 45 31s 49s 93.49768 -preset p4 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 45 31s 49s 94.09909 -preset p4 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 45 31s 49s 93.49147 -preset p5 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 45 31s 48s 94.09524 -preset p5 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 45 32s 49s 93.40893 -preset p6 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 45 31s 48s 94.10186 -preset p6 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 45 !!! Overloaded !!! -preset p7 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 45 31s 49s 94.17725 -preset p7 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 50 31s 48s 94.43179 -preset p1 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 50 31s 48s 94.55545 -preset p2 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 50 31s 49s 94.84044 -preset p3 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 50 31s 48s 94.65708 -preset p3 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 50 31s 49s 94.21484 -preset p4 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 50 31s 48s 94.69174 -preset p4 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 50 31s 49s 94.17100 -preset p5 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 50 31s 48s 94.69593 -preset p5 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 50 32s 49s 94.04288 -preset p6 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 50 31s 48s 94.69225 -preset p6 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 50 !!! Overloaded !!! -preset p7 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 50 31s 49s 94.74464 -preset p7 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 55 31s 48s 94.90863 -preset p1 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 55 31s 48s 95.00902 -preset p2 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 55 31s 48s 95.29723 -preset p3 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 55 31s 49s 95.10140 -preset p3 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 55 !!! Overloaded !!! -preset p4 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 55 31s 48s 95.12882 -preset p4 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 55 31s 49s 94.71027 -preset p5 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 55 31s 49s 95.13551 -preset p5 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 55 32s 49s 94.54959 -preset p6 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 55 31s 48s 95.13809 -preset p6 -tune ll -profile:v high -rc cbr -cbr true
1920x1080 120 55 !!! Overloaded !!! -preset p7 -tune hq -profile:v high -rc cbr -cbr true
1920x1080 120 55 31s 49s 95.18288 -preset p7 -tune ll -profile:v high -rc cbr -cbr true
==================================================================================================================================================================
Benchmark runtime: 3h7m53s

Encoder settings that produced identical scores:
==================================================================================================================================================================
Identical score: 49.991886
Encoded: [-preset p1 -tune hq -profile:v high -rc cbr -cbr true]
Ignored: [-preset p1 -tune ll -profile:v high -rc cbr -cbr true]
Ignored: [-preset p1 -tune ull -profile:v high -rc cbr -cbr true]


Identical score: 50.788776
Encoded: [-preset p2 -tune hq -profile:v high -rc cbr -cbr true]
Ignored: [-preset p2 -tune ll -profile:v high -rc cbr -cbr true]
Ignored: [-preset p2 -tune ull -profile:v high -rc cbr -cbr true]


Identical score: 51.338055
Encoded: [-preset p3 -tune ll -profile:v high -rc cbr -cbr true]
Ignored: [-preset p3 -tune ull -profile:v high -rc cbr -cbr true]


Identical score: 51.399544
Encoded: [-preset p4 -tune ll -profile:v high -rc cbr -cbr true]
Ignored: [-preset p4 -tune ull -profile:v high -rc cbr -cbr true]


Identical score: 51.347202
Encoded: [-preset p5 -tune ll -profile:v high -rc cbr -cbr true]
Ignored: [-preset p5 -tune ull -profile:v high -rc cbr -cbr true]


Identical score: 51.36192
Encoded: [-preset p6 -tune ll -profile:v high -rc cbr -cbr true]
Ignored: [-preset p6 -tune ull -profile:v high -rc cbr -cbr true]


Identical score: 51.465168
Encoded: [-preset p7 -tune ll -profile:v high -rc cbr -cbr true]
Ignored: [-preset p7 -tune ull -profile:v high -rc cbr -cbr true]


==================================================================================================================================================================
Loading

0 comments on commit 2f4bada

Please sign in to comment.