Skip to content

Commit 2f4bada

Browse files
authored
Initial commit
0 parents  commit 2f4bada

32 files changed

Lines changed: 3313 additions & 0 deletions

.gitignore

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Generated by Cargo
2+
# will have compiled files and executables
3+
/target/
4+
5+
# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
6+
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
7+
Cargo.lock
8+
9+
# These are backup files generated by rustfmt
10+
**/*.rs.bk
11+
12+
# Jetbrains stuff
13+
/.idea/
14+
*.iml
15+
16+
# might eventually remove this but, keeping raw files out of git
17+
*.y4m
18+
*.mp4
19+
20+
*.exe
21+
*.pdb
22+
*.log
23+
/results.txt

Cargo.toml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
[package]
2+
name = "encoder_benchmark_tool"
3+
version = "0.1.0"
4+
edition = "2021"
5+
6+
[dependencies]
7+
clap = { version = "4.0.32", features = ["derive"] }
8+
compound_duration = "1.2.0"
9+
crossbeam-channel = "0.5.6"
10+
ctrlc = "3.2.4"
11+
filetime = "0.2.19"
12+
indicatif = "0.17.2"
13+
itertools = "0.10.5"
14+
num_cpus = "1.15.0"
15+
regex = "1.7.0"
16+
rev_buf_reader = "0.3.0"
17+
stoppable_thread = "0.2.1"

README.md

Lines changed: 507 additions & 0 deletions
Large diffs are not rendered by default.

docs/obs-encoder-overload.png

18.7 KB
Loading
Lines changed: 178 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,178 @@
1+
Results from entire permutation:
2+
==================================================================================================================================================================
3+
[Resolution] [FPS] [Bitrate] [Encode Time] [VMAF Time] [VMAF Score] [Encoder Settings]
4+
1920x1080 120 5 32s 52s 49.99189 -preset p1 -tune hq -profile:v high -rc cbr -cbr true
5+
1920x1080 120 5 31s 51s 50.78878 -preset p2 -tune hq -profile:v high -rc cbr -cbr true
6+
1920x1080 120 5 31s 51s 49.87901 -preset p3 -tune hq -profile:v high -rc cbr -cbr true
7+
1920x1080 120 5 31s 51s 51.33805 -preset p3 -tune ll -profile:v high -rc cbr -cbr true
8+
1920x1080 120 5 31s 51s 47.46562 -preset p4 -tune hq -profile:v high -rc cbr -cbr true
9+
1920x1080 120 5 31s 51s 51.39954 -preset p4 -tune ll -profile:v high -rc cbr -cbr true
10+
1920x1080 120 5 31s 51s 47.82333 -preset p5 -tune hq -profile:v high -rc cbr -cbr true
11+
1920x1080 120 5 31s 51s 51.34720 -preset p5 -tune ll -profile:v high -rc cbr -cbr true
12+
1920x1080 120 5 32s 52s 50.41552 -preset p6 -tune hq -profile:v high -rc cbr -cbr true
13+
1920x1080 120 5 31s 51s 51.36192 -preset p6 -tune ll -profile:v high -rc cbr -cbr true
14+
1920x1080 120 5 32s 52s 50.62050 -preset p7 -tune hq -profile:v high -rc cbr -cbr true
15+
1920x1080 120 5 31s 51s 51.46517 -preset p7 -tune ll -profile:v high -rc cbr -cbr true
16+
1920x1080 120 10 31s 50s 70.29657 -preset p1 -tune hq -profile:v high -rc cbr -cbr true
17+
1920x1080 120 10 31s 50s 71.19142 -preset p2 -tune hq -profile:v high -rc cbr -cbr true
18+
1920x1080 120 10 31s 51s 69.25217 -preset p3 -tune hq -profile:v high -rc cbr -cbr true
19+
1920x1080 120 10 31s 51s 71.62771 -preset p3 -tune ll -profile:v high -rc cbr -cbr true
20+
1920x1080 120 10 31s 51s 66.86445 -preset p4 -tune hq -profile:v high -rc cbr -cbr true
21+
1920x1080 120 10 31s 50s 71.78528 -preset p4 -tune ll -profile:v high -rc cbr -cbr true
22+
1920x1080 120 10 31s 51s 66.76498 -preset p5 -tune hq -profile:v high -rc cbr -cbr true
23+
1920x1080 120 10 31s 52s 71.73936 -preset p5 -tune ll -profile:v high -rc cbr -cbr true
24+
1920x1080 120 10 32s 52s 69.62772 -preset p6 -tune hq -profile:v high -rc cbr -cbr true
25+
1920x1080 120 10 31s 50s 71.78707 -preset p6 -tune ll -profile:v high -rc cbr -cbr true
26+
1920x1080 120 10 32s 52s 69.94501 -preset p7 -tune hq -profile:v high -rc cbr -cbr true
27+
1920x1080 120 10 31s 50s 72.00939 -preset p7 -tune ll -profile:v high -rc cbr -cbr true
28+
1920x1080 120 15 31s 49s 79.79058 -preset p1 -tune hq -profile:v high -rc cbr -cbr true
29+
1920x1080 120 15 31s 50s 80.37565 -preset p2 -tune hq -profile:v high -rc cbr -cbr true
30+
1920x1080 120 15 31s 50s 79.43720 -preset p3 -tune hq -profile:v high -rc cbr -cbr true
31+
1920x1080 120 15 32s 49s 80.78581 -preset p3 -tune ll -profile:v high -rc cbr -cbr true
32+
1920x1080 120 15 31s 50s 77.39177 -preset p4 -tune hq -profile:v high -rc cbr -cbr true
33+
1920x1080 120 15 31s 49s 80.88729 -preset p4 -tune ll -profile:v high -rc cbr -cbr true
34+
1920x1080 120 15 31s 51s 77.23794 -preset p5 -tune hq -profile:v high -rc cbr -cbr true
35+
1920x1080 120 15 31s 50s 80.84431 -preset p5 -tune ll -profile:v high -rc cbr -cbr true
36+
1920x1080 120 15 32s 50s 79.28085 -preset p6 -tune hq -profile:v high -rc cbr -cbr true
37+
1920x1080 120 15 31s 49s 80.85456 -preset p6 -tune ll -profile:v high -rc cbr -cbr true
38+
1920x1080 120 15 33s 50s 79.57948 -preset p7 -tune hq -profile:v high -rc cbr -cbr true
39+
1920x1080 120 15 31s 49s 81.00658 -preset p7 -tune ll -profile:v high -rc cbr -cbr true
40+
1920x1080 120 20 31s 49s 85.08440 -preset p1 -tune hq -profile:v high -rc cbr -cbr true
41+
1920x1080 120 20 31s 49s 85.47128 -preset p2 -tune hq -profile:v high -rc cbr -cbr true
42+
1920x1080 120 20 31s 49s 84.99984 -preset p3 -tune hq -profile:v high -rc cbr -cbr true
43+
1920x1080 120 20 31s 49s 85.76170 -preset p3 -tune ll -profile:v high -rc cbr -cbr true
44+
1920x1080 120 20 31s 49s 83.66228 -preset p4 -tune hq -profile:v high -rc cbr -cbr true
45+
1920x1080 120 20 31s 49s 85.82275 -preset p4 -tune ll -profile:v high -rc cbr -cbr true
46+
1920x1080 120 20 31s 49s 83.43204 -preset p5 -tune hq -profile:v high -rc cbr -cbr true
47+
1920x1080 120 20 31s 49s 85.83939 -preset p5 -tune ll -profile:v high -rc cbr -cbr true
48+
1920x1080 120 20 32s 50s 84.54772 -preset p6 -tune hq -profile:v high -rc cbr -cbr true
49+
1920x1080 120 20 31s 49s 85.84438 -preset p6 -tune ll -profile:v high -rc cbr -cbr true
50+
1920x1080 120 20 33s 50s 84.80801 -preset p7 -tune hq -profile:v high -rc cbr -cbr true
51+
1920x1080 120 20 31s 49s 86.00859 -preset p7 -tune ll -profile:v high -rc cbr -cbr true
52+
1920x1080 120 25 31s 49s 88.25314 -preset p1 -tune hq -profile:v high -rc cbr -cbr true
53+
1920x1080 120 25 31s 48s 88.52682 -preset p2 -tune hq -profile:v high -rc cbr -cbr true
54+
1920x1080 120 25 31s 49s 88.38203 -preset p3 -tune hq -profile:v high -rc cbr -cbr true
55+
1920x1080 120 25 31s 50s 88.85011 -preset p3 -tune ll -profile:v high -rc cbr -cbr true
56+
1920x1080 120 25 31s 49s 87.33513 -preset p4 -tune hq -profile:v high -rc cbr -cbr true
57+
1920x1080 120 25 31s 49s 88.88587 -preset p4 -tune ll -profile:v high -rc cbr -cbr true
58+
1920x1080 120 25 31s 49s 87.18569 -preset p5 -tune hq -profile:v high -rc cbr -cbr true
59+
1920x1080 120 25 31s 49s 88.85275 -preset p5 -tune ll -profile:v high -rc cbr -cbr true
60+
1920x1080 120 25 32s 49s 87.82487 -preset p6 -tune hq -profile:v high -rc cbr -cbr true
61+
1920x1080 120 25 31s 49s 88.89854 -preset p6 -tune ll -profile:v high -rc cbr -cbr true
62+
1920x1080 120 25 33s 49s 88.00738 -preset p7 -tune hq -profile:v high -rc cbr -cbr true
63+
1920x1080 120 25 31s 49s 89.01835 -preset p7 -tune ll -profile:v high -rc cbr -cbr true
64+
1920x1080 120 30 31s 48s 90.36114 -preset p1 -tune hq -profile:v high -rc cbr -cbr true
65+
1920x1080 120 30 31s 48s 90.60395 -preset p2 -tune hq -profile:v high -rc cbr -cbr true
66+
1920x1080 120 30 31s 49s 90.70490 -preset p3 -tune hq -profile:v high -rc cbr -cbr true
67+
1920x1080 120 30 31s 49s 90.82680 -preset p3 -tune ll -profile:v high -rc cbr -cbr true
68+
1920x1080 120 30 31s 49s 89.70013 -preset p4 -tune hq -profile:v high -rc cbr -cbr true
69+
1920x1080 120 30 31s 49s 90.90486 -preset p4 -tune ll -profile:v high -rc cbr -cbr true
70+
1920x1080 120 30 31s 50s 89.63236 -preset p5 -tune hq -profile:v high -rc cbr -cbr true
71+
1920x1080 120 30 31s 49s 90.88116 -preset p5 -tune ll -profile:v high -rc cbr -cbr true
72+
1920x1080 120 30 32s 50s 89.98054 -preset p6 -tune hq -profile:v high -rc cbr -cbr true
73+
1920x1080 120 30 31s 48s 90.86143 -preset p6 -tune ll -profile:v high -rc cbr -cbr true
74+
1920x1080 120 30 33s 49s 90.14933 -preset p7 -tune hq -profile:v high -rc cbr -cbr true
75+
1920x1080 120 30 31s 48s 90.99081 -preset p7 -tune ll -profile:v high -rc cbr -cbr true
76+
1920x1080 120 35 31s 49s 91.86444 -preset p1 -tune hq -profile:v high -rc cbr -cbr true
77+
1920x1080 120 35 31s 48s 92.03297 -preset p2 -tune hq -profile:v high -rc cbr -cbr true
78+
1920x1080 120 35 31s 48s 92.23409 -preset p3 -tune hq -profile:v high -rc cbr -cbr true
79+
1920x1080 120 35 31s 48s 92.23190 -preset p3 -tune ll -profile:v high -rc cbr -cbr true
80+
1920x1080 120 35 31s 49s 91.42215 -preset p4 -tune hq -profile:v high -rc cbr -cbr true
81+
1920x1080 120 35 31s 49s 92.27628 -preset p4 -tune ll -profile:v high -rc cbr -cbr true
82+
1920x1080 120 35 31s 49s 91.33764 -preset p5 -tune hq -profile:v high -rc cbr -cbr true
83+
1920x1080 120 35 31s 49s 92.25399 -preset p5 -tune ll -profile:v high -rc cbr -cbr true
84+
1920x1080 120 35 32s 49s 91.46214 -preset p6 -tune hq -profile:v high -rc cbr -cbr true
85+
1920x1080 120 35 31s 48s 92.26575 -preset p6 -tune ll -profile:v high -rc cbr -cbr true
86+
1920x1080 120 35 33s 49s 91.57964 -preset p7 -tune hq -profile:v high -rc cbr -cbr true
87+
1920x1080 120 35 31s 48s 92.37749 -preset p7 -tune ll -profile:v high -rc cbr -cbr true
88+
1920x1080 120 40 31s 48s 92.97674 -preset p1 -tune hq -profile:v high -rc cbr -cbr true
89+
1920x1080 120 40 31s 49s 93.11378 -preset p2 -tune hq -profile:v high -rc cbr -cbr true
90+
1920x1080 120 40 31s 48s 93.38796 -preset p3 -tune hq -profile:v high -rc cbr -cbr true
91+
1920x1080 120 40 31s 49s 93.27600 -preset p3 -tune ll -profile:v high -rc cbr -cbr true
92+
1920x1080 120 40 31s 49s 92.60187 -preset p4 -tune hq -profile:v high -rc cbr -cbr true
93+
1920x1080 120 40 31s 48s 93.31536 -preset p4 -tune ll -profile:v high -rc cbr -cbr true
94+
1920x1080 120 40 31s 49s 92.58385 -preset p5 -tune hq -profile:v high -rc cbr -cbr true
95+
1920x1080 120 40 31s 48s 93.33156 -preset p5 -tune ll -profile:v high -rc cbr -cbr true
96+
1920x1080 120 40 32s 49s 92.55917 -preset p6 -tune hq -profile:v high -rc cbr -cbr true
97+
1920x1080 120 40 31s 48s 93.31236 -preset p6 -tune ll -profile:v high -rc cbr -cbr true
98+
1920x1080 120 40 !!! Overloaded !!! -preset p7 -tune hq -profile:v high -rc cbr -cbr true
99+
1920x1080 120 40 31s 49s 93.38749 -preset p7 -tune ll -profile:v high -rc cbr -cbr true
100+
1920x1080 120 45 31s 48s 93.81015 -preset p1 -tune hq -profile:v high -rc cbr -cbr true
101+
1920x1080 120 45 31s 49s 93.93367 -preset p2 -tune hq -profile:v high -rc cbr -cbr true
102+
1920x1080 120 45 31s 49s 94.24088 -preset p3 -tune hq -profile:v high -rc cbr -cbr true
103+
1920x1080 120 45 31s 48s 94.08202 -preset p3 -tune ll -profile:v high -rc cbr -cbr true
104+
1920x1080 120 45 31s 49s 93.49768 -preset p4 -tune hq -profile:v high -rc cbr -cbr true
105+
1920x1080 120 45 31s 49s 94.09909 -preset p4 -tune ll -profile:v high -rc cbr -cbr true
106+
1920x1080 120 45 31s 49s 93.49147 -preset p5 -tune hq -profile:v high -rc cbr -cbr true
107+
1920x1080 120 45 31s 48s 94.09524 -preset p5 -tune ll -profile:v high -rc cbr -cbr true
108+
1920x1080 120 45 32s 49s 93.40893 -preset p6 -tune hq -profile:v high -rc cbr -cbr true
109+
1920x1080 120 45 31s 48s 94.10186 -preset p6 -tune ll -profile:v high -rc cbr -cbr true
110+
1920x1080 120 45 !!! Overloaded !!! -preset p7 -tune hq -profile:v high -rc cbr -cbr true
111+
1920x1080 120 45 31s 49s 94.17725 -preset p7 -tune ll -profile:v high -rc cbr -cbr true
112+
1920x1080 120 50 31s 48s 94.43179 -preset p1 -tune hq -profile:v high -rc cbr -cbr true
113+
1920x1080 120 50 31s 48s 94.55545 -preset p2 -tune hq -profile:v high -rc cbr -cbr true
114+
1920x1080 120 50 31s 49s 94.84044 -preset p3 -tune hq -profile:v high -rc cbr -cbr true
115+
1920x1080 120 50 31s 48s 94.65708 -preset p3 -tune ll -profile:v high -rc cbr -cbr true
116+
1920x1080 120 50 31s 49s 94.21484 -preset p4 -tune hq -profile:v high -rc cbr -cbr true
117+
1920x1080 120 50 31s 48s 94.69174 -preset p4 -tune ll -profile:v high -rc cbr -cbr true
118+
1920x1080 120 50 31s 49s 94.17100 -preset p5 -tune hq -profile:v high -rc cbr -cbr true
119+
1920x1080 120 50 31s 48s 94.69593 -preset p5 -tune ll -profile:v high -rc cbr -cbr true
120+
1920x1080 120 50 32s 49s 94.04288 -preset p6 -tune hq -profile:v high -rc cbr -cbr true
121+
1920x1080 120 50 31s 48s 94.69225 -preset p6 -tune ll -profile:v high -rc cbr -cbr true
122+
1920x1080 120 50 !!! Overloaded !!! -preset p7 -tune hq -profile:v high -rc cbr -cbr true
123+
1920x1080 120 50 31s 49s 94.74464 -preset p7 -tune ll -profile:v high -rc cbr -cbr true
124+
1920x1080 120 55 31s 48s 94.90863 -preset p1 -tune hq -profile:v high -rc cbr -cbr true
125+
1920x1080 120 55 31s 48s 95.00902 -preset p2 -tune hq -profile:v high -rc cbr -cbr true
126+
1920x1080 120 55 31s 48s 95.29723 -preset p3 -tune hq -profile:v high -rc cbr -cbr true
127+
1920x1080 120 55 31s 49s 95.10140 -preset p3 -tune ll -profile:v high -rc cbr -cbr true
128+
1920x1080 120 55 !!! Overloaded !!! -preset p4 -tune hq -profile:v high -rc cbr -cbr true
129+
1920x1080 120 55 31s 48s 95.12882 -preset p4 -tune ll -profile:v high -rc cbr -cbr true
130+
1920x1080 120 55 31s 49s 94.71027 -preset p5 -tune hq -profile:v high -rc cbr -cbr true
131+
1920x1080 120 55 31s 49s 95.13551 -preset p5 -tune ll -profile:v high -rc cbr -cbr true
132+
1920x1080 120 55 32s 49s 94.54959 -preset p6 -tune hq -profile:v high -rc cbr -cbr true
133+
1920x1080 120 55 31s 48s 95.13809 -preset p6 -tune ll -profile:v high -rc cbr -cbr true
134+
1920x1080 120 55 !!! Overloaded !!! -preset p7 -tune hq -profile:v high -rc cbr -cbr true
135+
1920x1080 120 55 31s 49s 95.18288 -preset p7 -tune ll -profile:v high -rc cbr -cbr true
136+
==================================================================================================================================================================
137+
Benchmark runtime: 3h7m53s
138+
139+
Encoder settings that produced identical scores:
140+
==================================================================================================================================================================
141+
Identical score: 49.991886
142+
Encoded: [-preset p1 -tune hq -profile:v high -rc cbr -cbr true]
143+
Ignored: [-preset p1 -tune ll -profile:v high -rc cbr -cbr true]
144+
Ignored: [-preset p1 -tune ull -profile:v high -rc cbr -cbr true]
145+
146+
147+
Identical score: 50.788776
148+
Encoded: [-preset p2 -tune hq -profile:v high -rc cbr -cbr true]
149+
Ignored: [-preset p2 -tune ll -profile:v high -rc cbr -cbr true]
150+
Ignored: [-preset p2 -tune ull -profile:v high -rc cbr -cbr true]
151+
152+
153+
Identical score: 51.338055
154+
Encoded: [-preset p3 -tune ll -profile:v high -rc cbr -cbr true]
155+
Ignored: [-preset p3 -tune ull -profile:v high -rc cbr -cbr true]
156+
157+
158+
Identical score: 51.399544
159+
Encoded: [-preset p4 -tune ll -profile:v high -rc cbr -cbr true]
160+
Ignored: [-preset p4 -tune ull -profile:v high -rc cbr -cbr true]
161+
162+
163+
Identical score: 51.347202
164+
Encoded: [-preset p5 -tune ll -profile:v high -rc cbr -cbr true]
165+
Ignored: [-preset p5 -tune ull -profile:v high -rc cbr -cbr true]
166+
167+
168+
Identical score: 51.36192
169+
Encoded: [-preset p6 -tune ll -profile:v high -rc cbr -cbr true]
170+
Ignored: [-preset p6 -tune ull -profile:v high -rc cbr -cbr true]
171+
172+
173+
Identical score: 51.465168
174+
Encoded: [-preset p7 -tune ll -profile:v high -rc cbr -cbr true]
175+
Ignored: [-preset p7 -tune ull -profile:v high -rc cbr -cbr true]
176+
177+
178+
==================================================================================================================================================================

0 commit comments

Comments
 (0)