Some bandwidth data points on video streaming live events: iOSDevCamp Seattle 2010

Posted by bryanzug - 2010/09/04

Great question from Saul Kaplan came my way this AM via my pal Josh Mauldin. Looks like Saul is preparing a live stream for a Mini Maker Faire in Rhode Island on September 16th.

Saul asks:

Anyone have benchmark data on live streaming events? Estimating peak # for how many might simultaneously watch live stream of

As they say Saul, ask and ye shall receive.

First to note, the upload bandwidth (1) has nothing to do with the (2) download bandwidth people need to watch it on most services like UStream.

As a producer, you upload to UStream via your (1) connection to the web and UStream streams it out to everyone via (2) the connection from their server farm(s) to the individual computers people are watching the stream on.

This is mostly limited by the viewers connection to the internet – so people with lower bandwidth connections just see a lower quality version of the video (e.g. lower frames per second, lower resolution).

On to the data…

Here’s some data from our recent streaming of iOSDevCamp Seattle that we did at PinchZoom‘s meetup space (which we loving call The Watercooler at the Center of the Universe).

Here’s the details of the setup:

  • We used UStream Producer Pro to mix a live multicam stream for the event.

  • For this event we used the Standard HD Quality 16:9 – 960×540 @ 30fps, 650kbps, AAC 44.1k Stereo setting in UStream Producer Pro. I’ve listed all the options Producer Pro offers below, so you can get an idea about alternate bandwidths.

  • Whatever setup you use, a good rule of thumb is to have enough upload bandwith to handle twice the amount of the average data rate.

  • Also, the only way to monitor when the stream is up is to have someone watch and listen to it. So you are gonna need bandwidth for that. Usually this will adjust itself to the bandwidth available and you can use a very low bandwidth viewing stream to make sure everything is working OK.

Here are three session examples. I’ve included a few data points for each that give a good idea of the real world requirements. They are:

  • Flash Video FLV File Size:

    • UStream allows you to download a Flash Video FLV file of anything you session you record to the server when you are logged into your account. This size is what exactly was required to upload this video to UStream.

    • You can view FLV’s like these via VLC player pretty easily if you wanna see the quality outside of the browser of what UStream captured to their server.

  • Length of each session

  • Data rates of bandwidth required to broadcast each video in kbps (kilobits per second), KBps (kilobytes per second), MBps (megabytes per second), mbps (megabits per second) of bandwidth

    • I’m not a network guy, so I always get confused by MBps vs. mbps conversions.

    • I “think” I know enough to say they are different and that I’ve calculated these correctly.

    • If anyone sees any errors in these data conversions, please ping me via twitter (@bryanzug) let me know.

    • I used this utility to help with the conversion and terminology here.

So here are the examples:

  • Joe Marini: Windows Mobile Product Manager

    • View on UStream
    • Link to FLV Flash Video File
    • FLV Flash Video File Size: 358 MB
    • Length: 1 hr 5 min (65 min or 3900 seconds)
    • Bandwidth required to broadcast this video:
      • kbps: 728
      • KBps: 91
      • mbps: 0.728
      • MBps: 0.091
  • Brian Fling: Making Money in Mobile

    • View on UStream
    • Link to FLV Flash Video File
    • FLV Flash Video File Size: 400 MB
    • Length: 1 hr 7 min (67 min or 4020 seconds)
    • Bandwidth required to broadcast this video:
      • kbps: 792
      • KBps: 99
      • mbps: 0.792
      • MBps: 0.099
  • Lauren Isaacson: the State of the iOS Market

    • View on UStream
    • Link to FLV Flash Video File
    • FLV Flash Video File Size: 303 MB
    • Length: 0 hr 50 min (50 min or 3000 seconds)
    • Bandwidth required to broadcast this video:
      • kbps: 808
      • KBps: 101
      • mbps: 0.808
      • MBps: 0.101

Conclusion

So it takes roughly a continuous 0.81 mbps connection to broadcast video of this quality via UStream. Doubling that to account for bursts means you should have a connection of roughly 1.5-1.6 mbps for an HD stream.

Doubling back through the UStream producer pro settings below, you should be able to calculate rough rates for whaterver quality of stream you want to produce.

UStream Producer Pro Settings

There are several settings you can select in UStream Producer Pro. They are:

  • Lowest SD Quality 4:3
    • 320×240 @ 20fps, 200kbps, AAC 32k Mono
  • Lowest SD Quality 16:9
    • 352×198 @ 20fps, 200kbps, AAC 32k Mono
  • Basic SD Quality 4:3
    • 320×240 @ 20fps, 350kbps, AAC 32k Mono
  • Basic SD Quality 16:9
    • 352×198 @ 20fps, 350kbps, AAC 32k Mono
  • Standard SD Quality 4:3
    • 320×240 @ 30fps, 350kbps, AAC 44.1k Stereo
  • Standard SD Quality 16:9
    • 352×198 @ 30fps, 350kbps, AAC 44.1k Stereo
  • High SD Quality 4:3
    • 640×480 @ 30fps, 500kbps, AAC 44.1k Stereo
  • High SD Quality 16:9
    • 720×405 @ 30fps, 500kbps, AAC 44.1k Stereo
  • Best SD Quality 4:3
    • 640×480 @ 30fps, 600kbps, AAC 44.1k Stereo
  • Best SD Quality 16:9
    • 720×405 @ 30fps, 600kbps, AAC 44.1k Stereo
  • Standard HD Quality 16:9
    • 960×540 @ 30fps, 650kbps, AAC 44.1k Stereo
  • High HD Quality 16:9
    • 960×540 @ 30fps, 800kbps, AAC 44.1k Stereo


Powered by WordPress with GimpStyle Theme design by Horacio Bella.
Entries and comments feeds. Valid XHTML and CSS.