Posts Tagged ‘streaming’

How to protect your Flash video streams

Stopping content thieves from taking your Flash video content requires a little extra work and some resources.  If you follow these guidelines, then your content won’t show up on PirateBay or YouTube.

There are lots of applications and plug-ins out there to allow you to capture video streams off the Internet.  It’s so easy that you may think there is no way to protect your content at all.  The following with give you some advice on how to protect your videos and sleep better at night.  You’re going to employ some extra services or buy some software, but if your content is valuable then it’s worth the investment.

Protecting Windows Media content has been fairly easy for quite some time.  You can use the Windows Media DRM suite which will attach a digital certificate to the WMV file and require an active and valid cert to be downloaded in order to watch the video.  Although this system isn’t fool proof, it’s pretty strong and will stop most people dead in their tracks.  Microsoft is gearing up to roll out PlayReady which will plug the holes up in WM DRM.  It fully supports Silverlight in both Windows and Mac OS, and will be easy to use (so they say).  Look for a full deployment of PlayReady this summer.

But how do you protect Flash videos, specifically FLV, F4V, and MP4?  If you deliver your content via progressive download, then there will be little chance you can stop someone from taking that video from you with little effort.  Progressive download is literally downloading the file to the end user PC.  Where’s the protection?

There is no technology today to add DRM to the file itself.  Although there are some services out there that will offer something like that, they typically require you to use their proprietary Flash player in order to protect the content, who wants to do that?

So that leaves us with one option, protect the delivery of the video.  You may immediately think you can just stream the video using a Flash Media Server or Wowza server.  Think again.  Products like Replay Media Capture can snatch that stream right up.  What you need to do is stream the video using a Flash Media Server using RTMPE instead of RTMP.  You also need to disable RTMP from the server all together.  Adobe had a security warning about this awhile back.  Leaving RTMP on, allows for a back door.  RTMPE will encrypt the stream during delivery makeing it very difficult to de-compile and capture.

Are we done yet?  Nope, I’m just getting started…  What’s to prevent someone from discovering your stream name and then embedding that in their own Flash player?  You need to use SWF verification.  SWF verification will will ensure that the SWF playing the video is your SWF and not someone elses.  Again, you will need Flash Media Server to do this with.

Are we done now?  Not quite.  You’ll be delivering your SWF via HTTP to the browser, so it wouldn’t be too hard to locate that file and WGET it.  Now I have your player I can play it all I want.  What do you do now?  Use a Token based authentication with a time expiring URL.  These schemes usually use a MD5 128-Encrypted hash.  What will happen is, a unique URL will be used to play the video each and every time someone visits your site.  The URL will pass a token back to a secure server proving that the hash is authentic.  Then an time expire value is appended to the URL that will expire that link in a matter of seconds or a minute.  Nothing too long.  Access to the link is the only thing expiring, not the content.  So as long as the person has started watching the video with in that time frame, there is no problem even if the video is 2 hours long.  If they need to re-watch it, then they visit the site again and get a new URL.

All of this sounds like a lot of hassle and expense, is there an easier way?  If you deliver your videos through a CDN who uses FMS, then they probably offer all these services, you won’t have to incur any of these expenses.  Try a company called Influxis, they host FMS servers and you can setup a FMS how ever you want with minimal cost.

For a higher end solution, check out WideVine.  Widevine uses some proprietary technology which goes beyond what I’ve mentioned here.  Widevine’s intuitive DRM management tools offer total control over the encryption, key management, distribution and consumption of digital media. Using Widevine Cypher, pre-configured policies, digital rights and encryption are applied to inbound assets, automatically registered with Widevine and the CMS, then uploaded to a destination partner network or CDN.  Just know, that WideVine doesn’t come cheap!

I hope this information is useful for you.  Like all security on a computer, as soon as you plug a hole, another one is dug.  The goal is to stay one step ahead of the bad guys.

If you have any questions about this topic, please feel free to post them here and I will respond.

Thanks,

Mike Colburn (DigitalMediaGuy)

Difference between Progressive (HTTP) delivery and Streaming

The online video delivery experience

When delivering online videos there are generally two distinct ways to do it. HTTP Progressive Download or Streaming. You may assume that all videos are streaming, but you’ll be surprised to know that most aren’t.

So what are these two methods? How do they differ? What are the advantages and disadvantages of both? Why would I want to use one method over another?

Progressive Download
All web servers are capable of progressive download. This is merely the method of a video file being delivered via HTTP to a browser. This is similar to someone downloading a file from your website. In fact the video is delivered in the same manner that an image, a CSS, a JS, PDF, or any other file on your web site is.

The real difference is that media players can begin to show the video while it’s downloading. For example, a FLV file being delivered via HTTP Progressive download will begin to play in your Flash Player as soon as a little bit of data is received by the browser. The same is true for Windows Media files. Quick Time will wait until the entire file is downloaded before it plays, unless the QuickTime player on the PC/Mac is set for progressive play. So be careful when posting QuickTime videos.

It’s quite obvious when a video is being delivered via HTTP Progressive Download. You will typically see the little status bar grow as the video downloads. You won’t be able to move the scrubber button past the amount that has downloaded already. This makes it impossible to jump to the end of the video before that portion has downloaded. If you have a slow web server or limited bandwidth or the end user is on a slow Internet connection, then it’s possible for the enduser to notice buffering.

Buffering occurs when the download can’t stay ahead of video. The video will stop while it downloads more. If you pause the video and it allow to download a large portion, then you can watch the video uninterrupted. In either case, this is a poor enduser experience, this is when you would consider using a CDN.

There is a technology called Psuedo or Seek streaming. This method utilized TCP/IP Range Requests to allow the user to jump to any portion of the video and the player will make a range request of the file to download that portion. This method is usually only for FLV videos and requires special services, or servers and custom Flash players to function.

When a video is delivered via HTTP, it is actually downloaded to the end users computer. This is good and bad. It’s good because if the person watches the video again, it’s already cached on their computer. It’s bad because it makes it extremely easy for someone to steal your content.

Finally, if someone only watches the first minute of your video but doesn’t stop the download, the browser will download the whole file and you will pay for the delivery of the file even though the person didn’t watch the whole thing.

Streaming Video
Streaming video requires access to a streaming media server. Some servers are Flash Media Server, Wowza Media Server, Windows Media Server, Darwin Media Server (QuickTime), Real Media Server. These servers usually require licensing and may cost several thousands of dollars.

Some well known streaming protocols are RTMP, RTSP, and MMS.

When a video streams, it is being sent via UDP protocol to a player on the end users compter. The user will have the ability to fast forward or rewind the video. The video isn’t being downloaded to the end users computer so it is less likely that the content will be stolen. Also if the user only watches 5 minutes of a 30 minute video, then you only pay for the delivery of 5 mintues, not the whole video.

The biggest disadvantage of streaming over progressive download is if the user watches the same video over and over you will pay for the delivery of it each time.  Videos are also streamed at what ever bit rate they are encoded at.  Keep this in mind when creating HD quality video.  8Mbps video may sound and look great, but most homes can’t sustain an 8Mbps connection.  If you have really high bit rate video, consider delivering via HTTP.

Most web hosting providers or Content Delivery Networks (CDN) will have streaming media servers available to use. Historically, Flash video was more expensive to deliver than other forms. Recently prices have compressed and you will find that it costs about the same to deliver Flash or Windows Media files. In the past I would have said if your video is more than 10 minutes in length deliver it via Stream and less do progressive. Since prices have come down, I would consider streaming for any length video since streaming typically begins to play faster than progressive.

If you are looking at using a service such as a CDN or Cloud Computing and they say you can stream your videos, confirm with their tech support that they are utilizing a streaming server and not just offering bandwidth.

If you are delivering Flash videos, then you should be delivering via RTMP or RTMPE protocol for streaming and http for progressive. Windows Media uses either MMS or RTSP. Quicktime and Real Media use RTSP.

I hope you find this article of interest? This is a good guide to help you through deciding to use streaming delivery of videos or HTTP Progressive Download.

If you have any questions about this topic, please feel free to post them here and I will respond.  As always I ask that you support our sponsors.

Thanks,

Mike Colburn (DigitalMediaGuy)
Top Content Delivery Networks which support Streaming
* Limelight Networks
* EdgeCast Networks
* CDNetworks
* Level3
* Akamai

Return top