2

Background: We need to deliver a video heavy e-learning course to a classroom of ~15 users. This video will be MP4 delivered via HTML5 video so progressive download. As from what I can gather you can't stream to HTML5 Video.

These 15 users will be in the same room, sharing an internet connection.

The video will be lots and lots of short (30 sec) clips, about 9 MB each. These files will be delivered from Amazon Cloudfront (CDN)

With progressive downloads, does each "client" download as fast as it can?

Is this theory correct or way off?

  • user A is the first to download a clip, and starts downloading at near-full speed
  • user B and C then get to the same stage, so they start downloading but there isn't much bandwidth so they download REALLY SLOWLY
  • users D-P are screwed!

How can I advise my client what internet connection he will need to guarantee smooth playback?

Any thoughts/advice?

Keeno
  • 611
  • 3
  • 9
  • 18
  • 1
    Seems simple enough to fire up a single client, do a packet capture, and find out. – EEAA Mar 20 '14 at 16:38

3 Answers3

5

This is simpler than you think, a 9MB 30-second clip is 300KBps right, you have 15 of them - thus you need to be able to stream 4.5MBps, so roughly 45Mbps. A single 100Mbps link from the server to your classroom should be fine. The webserver, so long as it's not memory-starved, will easily manage to read the files once and cache them thus reducing any random-read requirements.

The worst case-scenario for web server random read would be all 15 users starting different non-cached videos at once, so 15 x 9MB, 135MB. Given these are inherently sequential files any decent disk controller would start streaming all 15 videos in less than a second or two from the cheapest of single disks.

Basically run a 100Mbps link and ensure your web server has enough memory and relax :)

Chopper3
  • 100,240
  • 9
  • 106
  • 238
  • thanks for the reply (and everybody else). I didn't think the router would auto-balance the downloads like that, if it does then yes, very simple. The videos will be delivered form amazon cloudfront (so no issues with the server or bottlenecks on that side, added that info to the question) I'll tell the client 50Mbps. Cheers! – Keeno Mar 21 '14 at 09:50
  • It won't auto-balance as such, it's more a case of you needing about 45% of the available bandwidth, even if everyone's watching all at once. There's a thing called CoS/QoS that can prioritise your video over other types of traffic but that's a lot more complex than you need. – Chopper3 Mar 21 '14 at 11:47
2

Short answer: 2.4 Mbit (9 MB * 8 bits/byte / 30 seconds) * 15 (clients) = 36Mbit for smooth playback always. You could probably do with less than that if not everyone will download at once, or if you're ok with a bit of load time. They could do much much better by having a local cache (Squid, for example) to make sure they only download those files once.

The long answer is "it depends on lots of things" :)

Also, clients will equalize usage if they're all on similar machines and downloading the same thing. So students D-P aren't in trouble, they'll all slow down equally (all other things in the environment being equal).

Bill Weiss
  • 10,782
  • 3
  • 37
  • 65
  • Wiess could you elaborate on your last point for me, how will the "clients" equalise with each other, how will they know about each other at all? does the router handle this or is this functionality built into the browsers? What would i google to read up on this? – Keeno Mar 21 '14 at 11:11
  • There's no prioritization done without your configuration, so each stream would get roughly equal slices of the bandwidth. I don't know what you would google exactly, it's a characteristic of a shared network. – Bill Weiss Mar 21 '14 at 13:08
2

Personally I would use a caching "server" (f.e. Squid) for the classroom, so you only need to download it once if the video is always the same for 15 users.

see for example this question on serverfault:

Configuring Squid to cache media streams

This could dramatically lower your bandwidth needs, if you know beforehand you could even cache them at off-times so you could use the current available bandwidth without the need for an additional expensive Line.

Depending on the Licence of the Videos and the location your client is sitting there might be some legal issues you need to face though.

Dennis Nolte
  • 2,848
  • 4
  • 26
  • 36
  • I will look into squid now, as an alternative for my client (if they cant secure a good internet line). There will be no issues with licensing. – Keeno Mar 21 '14 at 10:34