As much as I’m fascinated with where HTML5 is going, most of my day to day work is all about what you can do right now (or at the very least, ways to hack something together that works until a more elegant solution comes along). But today, I want to briefly focus on a few things HTML5 can’t do just yet (but which I think it’ll be able to do pretty soon).

1: HTML5 can’t do DRM

So, if you’re a media company, you want to have some way to control or limit the use of your content – typically by applying some form of digital rights management (DRM) to it. Sadly, at the moment, you can’t do this with HTML5. The problem is that within HTML5, it’s pretty easy to see the specification and from there, it’s a short step to being able to get round it (the full technical and political discussion is visible over on the W3C bug system). Personally I think this is something that needs to be cracked. Regardless of the political arguments for and against DRM, for many businesses this is a real problem – you can check out Lovefilm’s blog to see the issues they face.

2: HTML5 can’t stream live video

While HTML5 is absolutely fine for static video files, it can’t stream live video. So while it’s usable for catch-up services and video on demand, it’s not so hot for watching a live football match. Apple has a solution with its HTTP Live Streaming. This delivers H.264 files chunked over HTTP but it currently only works in Safari. (BTW, one thing that does get misrepresented is the belief that you can’t jump to a specific point in an HTML5 video. You can.) A good round up of HTML5 video resources can be found on Streaming Media magazine’s site.

3: Audio in HTML5 is flaky

You’d think that if HTML5 can deal with video then audio wouldn’t be a big deal. The issue is really down to latency. This can become a real problem when you’re building an application or game that requires audio to be synchronised with events taking place on screen. Part of the problem here is that each browser tends to work with audio in slightly different ways. There are ways around the issue but they really come down to pre-loading and are more at the hack end of things. If you want to know more, check out this post on the IE blog and for a solution, you can use Grant Skinner’s SoundJS JavaScript library.

4: You can’t interact with a webcam using HTML5

Unlike Flash, HTML5 doesn’t allow you to interact with a webcam (or your PC’s microphone). This makes any kind of web-based conferencing tricky to say the least. All is not lost however. On HTML5Labs, you can find a Prototype of the Media Capture API that implements the audio portion of this W3C specification. HTML5 Labs is the site where Microsoft prototypes early and unstable specifications from web standards bodies such as W3C. So it’s not perfect and not final yet. Once audio is cracked, the next step will be video. You can see more and download the prototype on the HTML5Labs site.

5: You can’t watch videos in full screen with HTML5

Using plugins, watching full screen video is not a problem. But, with HTML5 this hasn’t been possible (so far). However, there is already a specification allowing it to happen. Chris Pearce on the Thundering Herd blog recently described how he’s enabled the HTML full-screen API in Firefox’s nightly builds (with a view to a full release in Firefox 10 at the end of January). This API allows for an arbitrary “full-screen” HTML element. Chrome also has an implementation.

So that’s it, 5 things you can’t do quite yet but which will all be possible soon (fingers crossed).