Reconstructing proprietary video streaming algorithms
Photo: ETH Zürich / Gian Marco Castelberg
Reconstructing proprietary video streaming algorithms Maximilian - - PowerPoint PPT Presentation
Reconstructing proprietary video streaming algorithms Maximilian Grner , Melissa Licciardello, Ankit Singla Photo: ETH Zrich / Gian Marco Castelberg Roadmap 2 Roadmap Introduction 2 Roadmap Introduction Reconstruction 2
Photo: ETH Zürich / Gian Marco Castelberg
2
2
2
2
2
2
3
Categories Share of global internet traffic %
[Sandvine 2019]
3
Categories Share of global internet traffic %
[Sandvine 2019]
3
Categories Share of global internet traffic %
[Sandvine 2019]
4
Year # Google Scholar citations
4
Year # Google Scholar citations
5
5
5
5
6
6
6
6
6
7
Resolution Played Throughput
[Video from YouTube]
7
Resolution Played Throughput
[Video from YouTube]
7
Resolution Played Throughput
[Video from YouTube]
7
Resolution Played Throughput
[Video from YouTube]
7
Resolution Played Throughput
[Video from YouTube]
7
Resolution Played Throughput
[Video from YouTube]
8
def choose_next_quality(throughput_history): throughput_estimate = throughput_history[-1] if throughput_estimate == low: next_quality = ⬇⬇ else: ## throughput_estimate == high next_quality = ⬆⬆ return next_quality
8
def choose_next_quality(throughput_history): throughput_estimate = throughput_history[-1] if throughput_estimate == low: next_quality = ⬇⬇ else: ## throughput_estimate == high next_quality = ⬆⬆ return next_quality
8
def choose_next_quality(throughput_history): throughput_estimate = throughput_history[-1] if throughput_estimate == low: next_quality = ⬇⬇ else: ## throughput_estimate == high next_quality = ⬆⬆ return next_quality
8
def choose_next_quality(throughput_history): throughput_estimate = throughput_history[-1] if throughput_estimate == low: next_quality = ⬇⬇ else: ## throughput_estimate == high next_quality = ⬆⬆ return next_quality
8
def choose_next_quality(throughput_history): throughput_estimate = throughput_history[-1] if throughput_estimate == low: next_quality = ⬇⬇ else: ## throughput_estimate == high next_quality = ⬆⬆ return next_quality
9
10
def choose_next_quality(throughput_history): throughput_estimate = np.mean(throughput_history[-2:]) if throughput_estimate == low: next_quality = ⬇⬇ else: ## throughput_estimate == high next_quality = ⬆⬆ return next_quality
10
def choose_next_quality(throughput_history): throughput_estimate = np.mean(throughput_history[-2:]) if throughput_estimate == low: next_quality = ⬇⬇ else: ## throughput_estimate == high next_quality = ⬆⬆ return next_quality
11
11
11
11
11
11
12
def choose_next_quality(throughput_history, buffer_size): throughput_estimate = np.mean(throughput_history[-2:]) if throughput_estimate == low: download_time = chunk_size_high / throughput_estimate if download_time < buffer_size: next_quality = ⬇⬇ else: next_quality = ⬆⬆ else: ## throughput_estimate == high next_quality = ⬆⬆ return next_quality
12
def choose_next_quality(throughput_history, buffer_size): throughput_estimate = np.mean(throughput_history[-2:]) if throughput_estimate == low: download_time = chunk_size_high / throughput_estimate if download_time < buffer_size: next_quality = ⬇⬇ else: next_quality = ⬆⬆ else: ## throughput_estimate == high next_quality = ⬆⬆ return next_quality
12
def choose_next_quality(throughput_history, buffer_size): throughput_estimate = np.mean(throughput_history[-2:]) if throughput_estimate == low: download_time = chunk_size_high / throughput_estimate if download_time < buffer_size: next_quality = ⬇⬇ else: next_quality = ⬆⬆ else: ## throughput_estimate == high next_quality = ⬆⬆ return next_quality
13
13
13
13
13
14
14
15
Provider Description Alexa Rank
15
Provider Description Alexa Rank YouTube Broad coverage 2, Global
15
Provider Description Alexa Rank YouTube Broad coverage 2, Global ZDF German Public Service 47, Germany
15
Provider Description Alexa Rank YouTube Broad coverage 2, Global ZDF German Public Service 47, Germany Pornhub Pornographic video sharing website 46, Global
15
Provider Description Alexa Rank YouTube Broad coverage 2, Global ZDF German Public Service 47, Germany Pornhub Pornographic video sharing website 46, Global Provider Description Alexa Rank YouTube Broad coverage 2, Global ZDF German Public Service 47, Germany Pornhub Pornographic video sharing website 46, Global Arte French-German,cultural 270,France Fandom Gaming, pop-culture 91, Global SRF Swiss Public Service 45, Switzerland TubiTV Movies and series of all genres 1330, USA Twitch Live and VoD streaming service, gaming 39, Global Vimeo Artistic content 188, Global XVideos Pornographic video sharing website 67, Global
16
16
16
16
16
16
17
17
18
18
Resolution Played Throughput
[Video from YouTube]
18
Resolution Played Throughput
[Video from YouTube]
18
Resolution Played Throughput
[Video from YouTube]
18
Resolution Played Throughput
[Video from YouTube]
18
Resolution Played Throughput
[Video from YouTube]
19
19
[Wikipedia]
19
[Wikipedia]
19
[Wikipedia]
19
[Wikipedia]
19
[Wikipedia]
19
[Wikipedia]
19
[Wikipedia]
19
[Wikipedia]
20
20
[Scikit-learn]
20
[Scikit-learn]
20
[Scikit-learn]
20
[Scikit-learn]
20
[Scikit-learn]
21
21
21
21
21
21
21
21
21
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
24
24
25
25
25
26
26
27
27
27
27
27
27
28
28
28
29
29
29
29
29
30
30
30
30
30
Melissa Licciardello melissa.licciardello@inf.ethz.ch
Ankit Singla Melissa Licciardello melissa.licciardello@inf.ethz.ch ankit.singla@inf.ethz.ch
Ankit Singla Melissa Licciardello Maximilian Grüner mgruener@inf.ethz.ch melissa.licciardello@inf.ethz.ch ankit.singla@inf.ethz.ch
Ankit Singla Melissa Licciardello Maximilian Grüner mgruener@inf.ethz.ch melissa.licciardello@inf.ethz.ch ankit.singla@inf.ethz.ch