- inserting ads between videos(configurable)
- serving videos for different screen size(if you send same video to all device, device has to do resizing in addition to decoding)
- serving videos in different network conditions(HLS/DASH) where based on bandwidth lower/higher bitrate video is requested from the server.
- seamlessly serving videos by switching video sources even for encrypted content.
- In HLS/DASH, player is the complex(intelligent) part as it senses the bandwith and send requests to server, they are giving readymade player implementation through SDK's