208

Best Practices for Streaming and Serving your Video

Steve Haskin President, S > Media

WWW.eLearningGuild.comWWW.eLearningGuild.com November 5-8, 2007 San Jose, CA

Best Practices for Streaming Serving Video

Stephen Haskin President, S>Media Industrial Strength Learning

What we’ll cover in this session

> What is ? > Do I need it? > What are best practices? > What is the “best” codec? >Why?

You have video

Session 208 – Best Practices for Streaming and Serving your Video – Page 1 Steve Haskin, S > Media November 5-8, 2007 San Jose, CA

You need to get it to learners

You need to get it to them when they can use it

You need to “serve” it to them

Session 208 – Best Practices for Streaming and Serving your Video – Page 2 Steve Haskin, S > Media November 5-8, 2007 San Jose, CA

Ergo:

You need to stream (or progressively download as the case may be)

What is a video stream

According to the Wiki (the big one): Streaming media is multimedia that is continuously received by, and normally displayed to, the end-user while it is being delivered by the provider. The name refers to the delivery method of the medium rather than to the medium itself. The distinction is usually applied to media that are distributed over telecommunications networks, as most other delivery systems are either inherently streaming (e.g. radio, television) or inherently non-streaming (e.g. books, video cassettes, audio CDs). The verb 'to stream' is also derived from this term, meaning to deliver media in this manner.

Session 208 – Best Practices for Streaming and Serving your Video – Page 3 Steve Haskin, S > Media November 5-8, 2007 San Jose, CA

What streaming media protocols are out there?

> Adobe Flash > QuickTime > Accordent Technologies > ReelTime.com > Ampache > Real Networks > Clipstream > RealPlayer > FORscene > SHOUTcast > Icecast > Slingbox > FreeCast >SlimServer > Matroska >Winamp > Microsoft Windows Media > Philips Media Manager > Ogg/Vorbis > Unreal Media Server >Orb

Are there any “best” ones?

I have opinions

Session 208 – Best Practices for Streaming and Serving your Video – Page 4 Steve Haskin, S > Media November 5-8, 2007 San Jose, CA

What is a best practice?

> Best Practice is a management idea which asserts that there is a technique, method, process, activity, incentive or reward that is more effective at delivering a particular outcome than any other technique, method, process, etc. The idea is that with proper processes, checks, and testing, a desired outcome can be delivered with fewer problems and unforeseen complications. Best practices can also be defined as the most efficient (least amount of effort) and effective (best results) way of accomplishing a task, based on repeatable procedures that have proven themselves over time for large numbers of people. From www.wikipedia.org/best practice

What is a best practice?

> So now that we know what a best practice is, what are best practices for video and video streaming? > In this case—Who knows? > In video and streaming, there are many “best practices” you can employ, but they all fall in the following categories: 1. Video file sizes and stream rates 2. Temporal qualities of video and how it affects stream rates. 3. IT practices > Reality check—each best practice has many variables that you control.

Best Practice Numero 1

Session 208 – Best Practices for Streaming and Serving your Video – Page 5 Steve Haskin, S > Media November 5-8, 2007 San Jose, CA

Best Practice #1 Do the math Do the math Do the math

Best Practice #1—Formula for figuring out file sizes

And there you have it! See, it’s as easy as pie.

Best Practice #1—Reality check

> The math is simple: > Length of video in seconds times > Stream rate in kilo BITS (not bytes) divided by >8 > This = total file size > Example: 120 second video by 340Kb stream rate = 40,800 bits divided by 8 = 5.1MB file size.

Session 208 – Best Practices for Streaming and Serving your Video – Page 6 Steve Haskin, S > Media November 5-8, 2007 San Jose, CA

Best Practice Numero 2

Best Practice #2 Talk to IT Talk to IT Talk to IT

Best Practice #2

> Your IT department can be enabling: > Let them tell you what codec they want you to use…if you need a streaming server (not always necessary) or can progressively download from your web server. > Let them tell you what your max bandwidth could be. (don’t worry, you probably won’t even come close) > Tell them about how much storage space you anticipate needing…how many files you’ll be adding each month (I know, I know, this is a WAG) > What codec you are planning on using, if they leave it up to you, but do your homework first! > Tell them you did the math! > And you’ll know what streaming requirements you’ll need

Session 208 – Best Practices for Streaming and Serving your Video – Page 7 Steve Haskin, S > Media November 5-8, 2007 San Jose, CA

Best Practice Numero 3

Best Practice #3

Use the lowest temporal streaming rate you can

Best Practice #3

HUH????

Session 208 – Best Practices for Streaming and Serving your Video – Page 8 Steve Haskin, S > Media November 5-8, 2007 San Jose, CA

Best Practice #3

Temporal streaming? What’s that?

Best Practice #3

The gradient model of video quality uses gradients, or slopes, of the input and output images to derive objective video quality metrics. These gradients represent instantaneous changes in the pixel value over time and space. The three types of gradients that have proven useful are depicted in the figure below. These are the spatial information in the horizontal direction (SIh ), the spatial information in the vertical direction (SIv), and the temporal information (TI). Video quality metrics based on spatial and temporal gradients have produced coefficients of correlations to subjective mean opinion score (i.e., where a panel of viewers rate the perceived quality of the video picture) from 0.85 to 0.95. These excellent correlations hold for a wide range of analog and digital video systems and test scenes. Institute for Telecommunication Sciences

Best Practice #3

> Succinctly put: > Have you ever watched video on YouTube? > It’s usually pretty bad > It generally has lousy temporal quality > A couple of examples > Low streaming rate > High streaming rate

Session 208 – Best Practices for Streaming and Serving your Video – Page 9 Steve Haskin, S > Media November 5-8, 2007 San Jose, CA

Best Practice #3

> What does this prove: > Talking heads can use lower stream rates > Motion video needs higher stream rates > Temporal “sensitivity” differs among different people. A younger audience is usually going to be less critical of poor temporal quality

Best Practice Numero 4

Best Practice #4

Use the best codec that suits your needs

Session 208 – Best Practices for Streaming and Serving your Video – Page 10 Steve Haskin, S > Media November 5-8, 2007 San Jose, CA

Best Practice #4

> What does this mean? > There is no one best codec…although I’d fight for Flash > If your IT department insists on purchasing a Real server, try to talk them into purchasing a server…but if you can’t, go with the flow. > Remember all these?

What streaming media protocols are out there?

> Adobe Flash > QuickTime > Accordent Technologies > ReelTime.com > Ampache > Real Networks > Clipstream > RealPlayer > FORscene > SHOUTcast > Icecast > Slingbox > FreeCast >SlimServer > Matroska >Winamp > Microsoft Windows Media > Philips Media Manager > Ogg/Vorbis > Unreal Media Server >Orb

Best Practice #4

> What does this mean? > There is no one best codec…although I’d fight for Flash > If your IT department insists on purchasing a Real server, try to talk them into purchasing a Flash video server…but if you can’t, go with the flow. > Remember all of these? > Some are recognizable, many are not. > Matroska? Ampache? > Many of these codecs are proprietary which takes us to … …

Session 208 – Best Practices for Streaming and Serving your Video – Page 11 Steve Haskin, S > Media November 5-8, 2007 San Jose, CA

Best Practice Numero 5

Best Practice #5

Avoid proprietary formats whenever you can

Best Practice #5

> What is a proprietary codec and why should I avoid it? > All video uses codecs > Some codecs are readily accessible by all computers, such as Flash or .wmv or .mov > Some codecs use special players and require special servers > The common codecs can use your web server to “stream” your video, so you don’t need to purchase a server > Stream is in parentheses because it’s really a progressive download, not a true “stream” which is considered persistent packeting

Session 208 – Best Practices for Streaming and Serving your Video – Page 12 Steve Haskin, S > Media November 5-8, 2007 San Jose, CA

Best Practice Numero 6

Best Practice #1 Do the math Do the math Do the math

Best Practice #6

> How many simultaneous users do you expect if; 1. You are doing a synchronous event…in which case, you need a different class of server 2. You have an asynchronous learning class, but know lots of people will be taking it around the same time 3. You have a live event, in which case you’ll need a special type of “appliance” and server that has enough bandwidth to stream however many users will be tuned into the event at the same time

Session 208 – Best Practices for Streaming and Serving your Video – Page 13 Steve Haskin, S > Media November 5-8, 2007 San Jose, CA

Best Practice #6

> So here’s the math; > If you know that each stream is 256kbps (kilo bits per second) and you have 100 users, then 256 times 100 = 25,600 kbps which equals 25.6 Mbps, you have bandwidth needed > Since most networks have a 100 megabit (Mb) bandwidth and almost all modern networks have a 1Gb bandwidth, you can see that even with 100 users logged in at the same time, you have plenty of bandwidth.

Best Practice Recap

1. Do the math 2. Talk to IT—Get them on your side 3. Use the lowest temporal streaming rate you can 4. Use the best codec that suits your needs 5. Avoid proprietary codecs 6. Do the math

Session 208 – Best Practices for Streaming and Serving your Video – Page 14 Steve Haskin, S > Media