ch11 Flashcards
Performance struggles with video streaming
Understand the problems
- Unsupported formats (Installing specific software for each format)
- Missing plugins (FLASH, etc)
- Long start-up times (Only once things are loaded, the video is played. The threshold for people to stay on page is low)
- Frequent stalls (As the video is playing, the video sometimes stops)
- Low quality (HD not available/possible)
Dynamic Adaptive Streaming over HTTP (DASH)
What it is and what the concept is
Take the best video and create multiple encodings with different resolutions and bitrates
Split the video into segments of a few seconds
Put all the segments on a HTTP server
Write a manifest that contains the location of each segment
As the bandwidth increases, better quality segments can be retrieved from the server
Push vs. pull
Understand the differences (pros and cons)
Push-based video streaming
- “Old” streaming protocols (UDP packets)
- Server pushes packets/stream to client, client acknowledges
- Adaptation based on number of packets received
- Continuous flow from server to client
+ Good performance
- Firewalls and routers block/drop UDP packets
- Therefore often required very specific configurations
- Stream always comes from the same server
- And the server is specifically dedicated for video streaming (high effort) (not scalable)
Pull-based video streaming
- Used in DASH
- Client asks for video segments from server
- Each segment may come from different server (flexible)
- Client reassembles the segments
- Server is doing less work, state-less (scalable)
+ Use of existing infrastructure
+ HTTP traverses firewalls and router much more easily
+ On-demand, live and time-shift streaming. Flexibly used for any type of streaming
+ Can dynamically insert ads
- Performance is less good
- Video players compete with one another for the bandwidth (shifting quality when more players are running)
Performance modeling of DASH players
Understand the idea
When multiple players are running at the same time, they will compete unfairly for the network, because they don’t communicate/ see one another.
Can use Dane to coordinate this better by asking for specific bitrates
Better resolution / bitrate (Higher is better) fewer quality switches (lower is better) Better Fairness (closer is better)
Modelling: - Video players start randomly - k different types of users \+ Screen size \+ Priority \+ Video duration
We use a Markov model
Limit the number of players dependent on the minimum necessary capacity of all users
expected number of players = Probability of being in a specific state * number of players in that state
expected video bitrate per device = (Expected no. of players in a state * video quality in that state) / expected no.players in state
Expected number of quality switches = prob of state * probability of switching to state with different bitrate * number of players
that will make the switch