The basic situation:
- There are multiple schools connected to a country wide network. (Some thousand schools.)
- We need to deliver e-learning content to them using a network that was created specifically for these schools. There are POPs in different counties, and all of these schools are accessing the internet through these points.
- Big part of the overall network traffic will be educational videos that are uploaded to Vimeo. Smaller part will be images, and finally static HTML/CSS files and REST API calls.
- These videos are embedded into web pages. (Pages representing lessons in online books.) We already have a business Vimeo account that allows us to embed videos into web pages, without displaying advertisements.
- Most schools will teach the same lesson at a given time, so they will need (about the) same videos at the same time.
The total network traffic could be reduced effectively by caching these videos at the POPs. This is especially important, because the total bandwidth is not enough to stream videos to all clients simultaneously, without caching. But I'm not sure how to do this. Using squid would be a very good solution if we could install them separately for every school. Unfortunately, it is not possible. These schools do not have the infrastructure to operate a squid server 24/7, they have very different networks, with different devices and local admins have very different skills. It would probably be better to cache the content at the POPs.
Here are some questions:
- What protocol is used for video streaming nowdays? What I see from the logs is that the player is downloading m4s files (mp4 video segments?) using HTTPS protocol.
- Is it possible to cache these videos transparently? If it uses https then it seems impossible to do (but I might be wrong).
- Can you suggest something that can reduce the required network bandwidth? It might be possible to write a special web page that plays these videos from a cache.