Tuesday 2 March 2010

The BBC and its constricting use of Flash and RTMP streaming protocol

The BBC started its streaming catch-up service (iPlayer) using Microsoft proprietary technology. It then moved to Adobe Flash after a lot of complaints that the Microsoft stuff was not platform independent (Mac OS X and Linux users complained like hell about it). but the Adobe stuff uses a proprietary protocol called RTMP.

RTMP is an Adobe proprietary streaming protocol which is used for its Flash technology, Flash is widely distributed and available for most platforms - except notably the iPhone and the new iPad from Apple... So the BBC held that moving to Flash would open up its service to all platforms, even though it meant staying with a proprietary protocol. But not quite, it still had to provide a special MP4 (H264 codec) streams for the iPhone but only in low quality (It has yet to decide what to do about the iPad which will need a higher quality MP4/H264 non-Flash stream - but that's another bag of worms). Higher quality streams are only available in Flash RTMP protocol streams. Everyone seemed happy as these could be decoded both by the Adobe Flash player on all computer platforms, some mobile phones and by some other open source programs.

For some reason the BBC has now changed its tune. It has introduced an extra Adobe feature of Flash, that of SWF Verification. Effectively putting DRM on the streams, and blocking the use of any other player except the Adobe Flash plug-in for browsers or their own iPlayer program written in Adobe's AIR software. The open source programs no longer work.

Also the Flash player does not permit local saving of the streams, and thus prevents them leaking out onto file sharing web sites. (Remember BBC programs are restricted to UK only by the rights holders, whereas if the material gets out onto a file sharing web site it is available globally).

What is more, now that they are using SWF Verification they believe they are protected by the US DMCA, EU law and the UK CDPA act. In the US Adobe uses the DMCA act to prevent anyone writing programs to circumvent the SWF Verification mechanism, claiming it is DRM as protected by the act, this has not been tested or proven. Neither has any challenge been made in the EU under similar EU copyright law or the UK law CDPA (1998 & 2003). This prevents taking measures to break DRM but allows recording of content for a catchup time (not defined).

What is SWF Verification?

Technically SWF Verification is a "constant + the hash of the 'file and its size' derived from a HMACSHA256 algorithm", the algorithm's 'key' is the last 32 bytes of the first server handshake packet. Official, known clients (sending a small .swf file) are kept on the Flash Media Server.

These two issues are combined to stop streams being sniffed and stored locally. But a known client can write the unencrypted stream to a file, by knowing the hash of 'file and its size'. I guess you could argue that this is not strictly DRM as the file is unencrypted, just that the receiving program has to be effectively licensed. A cute way of getting legal protection from the CDPA law on copying and assuming the copy will be used illegally.

So what BBC?

The BBC is getting itself up an stickier and stickier gum tree. For my part I believe, as I have already posted, that they have to be a Public Broadcaster, and this means allowing anyone to receive their streams in anyway they like (i.e. any make of TV) and to save these programs locally (i.e. use a VCR to record them).

They should be fighting on our behalf the rights the studios are trying to impose over distribution of media. Any illegality is not caused by viewing programs or by saving them, it is caused by the people who illegally put them on file sharing web sites and those that download them.

The media rights requested are also very restrictive (by region/country, by distribution channel, by time of broadcast, etc etc) this subdivision of copyright to the benefit only of media moguls, not artists, has to stop, and the BBC is the institution to do it, on my behalf.

No comments: