0

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.
nagylzs
  • 759
  • 3
  • 12
  • 23
  • Define POP - how much control do you have? COULD you put a server in every POP? Can you handle the finances for this in whatever financial deal you have? – TomTom Dec 05 '19 at 14:17
  • Number of POPs is about 20. Yes, I could put a server in every POP. But I cannot put a server in every school. I'm not sure about the finances - I'm not the one paying the bills. I need to create a proposal for this and hand it to the ones that will make the decision. One thing is sure: there MUST be caching somewhere, there is not enough bandwidth for all clients in all schools. – nagylzs Dec 06 '19 at 09:26
  • Well, you need to put the multiplier somewhere. Alternative would be to go TV like, but that requires multicast (NOT on internet, but could possibly be done in school on the switches) but everyone looking at the SAME vode, SAME timestamp. Otherwise sorry, you cnan move the multiplication, but the traffic is not cacheable BELOW the proxy. – TomTom Dec 06 '19 at 10:13
  • I was thinking about changing the code of the video player. If a proxy server could be manually specified for downloading the m4s files then it might work. But Vimeo player has no shuch option. – nagylzs Dec 06 '19 at 10:14
  • Well, there is sort of saying "someone choose atotally inept product, do I have to change it". Vimeo is optimized for a specific use case that you do not handle. – TomTom Dec 06 '19 at 10:16
  • Can you please sugget a product that is good for this? (Students will also go home and they need to watch the videos from their homes.) – nagylzs Dec 06 '19 at 10:51
  • Nope. We do not do product recommendations here. – TomTom Dec 06 '19 at 11:04
  • Let us [continue this discussion in chat](https://chat.stackexchange.com/rooms/101878/discussion-between-nagylzs-and-tomtom). – nagylzs Dec 06 '19 at 11:12
  • Nope, sorry, At least I do NOT do free consulting here. – TomTom Dec 06 '19 at 14:58

2 Answers2

0

Https is end-to-end encrypted, the caching proxy would have to essentially break tls infrastructure by installing a root certificate on the end-user machines which is highly discouraged.

Is there any reason not to host the videos yourself, allowing you to cache with an actual ssl certificate you own?

Gamification
  • 131
  • 4
  • Yes, I tought the same. By installing a caching proxy and setting the proxy at the OS level would solve the problem, but this is not possible (because we do not want to redirect all traffic to a single proxy, we only want to cache the videos). So you have confirmed what I already suspected. – nagylzs Dec 05 '19 at 14:13
0

With the help of their support, we found a solution. The most cost effective solution is to write a web based video player that uses their direct links. Vimeo provides direct links for low, medium and high quality versions and also for http streaming of all uploaded videos. We will have to create our own video player that downloads these videos through a configurable proxy server. It will take a while to develop a video player like this, but this way we can place the proxies anywhere we want.

nagylzs
  • 759
  • 3
  • 12
  • 23