2006-04-09

Firefox Media Player

Someone really should make an open source, cross platform, embedded media player for Firefox, or any browser really. Something that works just as reliably as the embedded Windows Media player works in IE (and sometime in FF) or Quicktime or Real Player. Numerous sites these days love to use embedded audio/video players as I guess it makes them feel "safe" from people saving their files or something? Perhaps they just think it's more intuitive or easy to have their videos and audio files playing within a website instead of using an external application? Anyway, regardless of their intentions, tons of sites use this stuff, and it's one of the biggest thorns still left in both Firefox and Linux's sides. It's also one of the most visable problems that an average joe user will run into, and sometimes can make people decide to switch back to whatever proprietary setup they had before. Sure, embedded players work "most of the time" in Firefox for Windows, and there's things like the mplayer-plug-in or the VLC mozilla plugin for Linux users that usually seem to work, but it just never seems to work quite as well as they're intended to. Of course, this is most likely such a problem due to the widespread use of proprietary media formats and streaming protocols, but there's probably more to it than even that.

So, what I think we need, is a general purpose, embedded media player for web browsers. One that's very generalized so that it can work with numerous backends, any operating system, and preferably any web browser, or perhaps at least with any browser built on top of mozilla/gecko. This way Linux/Unix users can use whatever their media player of choice is for a backend, be it gstreamer, xine, vlc, mplayer or whatever and of course it could do the same on both Windows and Mac versions too. And no matter what system you view a webpage on, it'll work the same way.

By unifying the way embedded media is handled across all platforms, it'll probably make it easier for web developers, but more importantly it should make it much easier for users, which intern benefits open source in general as well. I'm not sure if there is already a W3C standard for how to code in embedded media, but there definitely should be if not already.

Most sites these days have recently started using Flash as the media player of choice, as it's available for the most platforms and browsers, but watching video through it has some severe limitations. The first thing anyone will notice is that no matter what system or browser you use, there's no way to truly watch a video in fullscreen, although quicktime also shares this limitation and Google Video has tried to create some sort of solution. For Linux and Unix users, Macromedia doesn't seem to find us that terribly important, as they still have not released Flash 8 yet, even though it's been out for Windows and Mac for well over 6 months now. Not only that, but just about every Linux user I've ever known has a perpetual problem with Flash video and animations getting out of sync from the accompanying audio. In addition to that, there is still no 64bit version of Flash available for 64bit Linux users either, resulting in weird hack arounds to get the 32bit version to run correctly, that no newbie or novice users could ever hope to easily achieve. Sure, flash video seems like a good idea at first, and I see why many sites would think it their best option, but it's just not cutting it.

Now of course, personally, I would much rather watch all video and whatnot through an external application that does not play till I click a link for it specifically, but it appears that my point of view on this may be in the minority...hence why I'm making this proposal ;)

One more suggestion I would make to the developers of this currently fictitious project is to allow for multiple gui configurations... or skins, if you will. I reluctantly say that because it's not in the idea that people have custom GUIs for aesthetic reasons, but because different people will likely want their embedded player to have different control setups, and this could help prevent unnecessary forks and fragmentation. Suppose one user wants a really simple bar across the bottom with a play/pause button, progress bar and perhaps a few other features, while another user wants all the bells and whistles you could imagine, while yet a third user doesn't want any graphical controls available till he right clicks on the player and chooses them through a menu.... are you seeing where I'm going with this? As while the project should ideally support different backends, it at the same time may also want to support various front ends as well...or to use the trendy term, different skins.

As a reference, even though I love VLC, I still use the mplayer plugin for my browser as it has convenient controls available, as while the VLC embedded player doesn't seem to having anything to it besides the ability to go into fullscreen, not even so much as a pause feature. Yet at the same time, I wish mplayer plugin had a volume control and I'm sure many other people have many other ideas, so once again...I feel that abstracting the player's control scheme could be very beneficial to prevent people from possibly forking over something trivial.

Unfortunately, like most of my ideas... I do not currently have the knowledge, time, nor skill to start such a project, so hopefully someone more capable will be inspired by my idea.