Tuesday, January 31, 2006

Things about GNOME that Suck, Number Two

(Editorial note: I am trying to keep these posts short and to the point. I have had about 20 responses to them so far, all but one positive. So I will keep going for now.)

The woeful state of multimedia. Specifically: handling the (in)ability to play some formats.

A typical scenario that occurs at least once a week for me is that I will attempt to play a multimedia file (usually a movie), and the application I use can not deal with it. That's actually fine, especially if you are free software/anti-patent bigot like me. What bugs me, however, is that the shell (Nautilus?) will happily launch the application, or allow you to associate the application with the particular MIME type, when it is known that the application is unable to deal with the file. (I use Totem, Xine, and Mplayer by the way.)

I was going to post about something else today, but this one leapt to the fore in my brain after I had waited for a long time for a file to download (5Mb on a 56k connection) after Firefox offered me the option to save it to disk or open it with Totem. Totem starts up and then tells me it can't handle that file. OK, so it was a WMV. Try again with the Quicktime version of the file. Same result. DVDs? With Totem? Forget it. That's why I have to have three media players: to handle all the formats that I come across.

GNOME "Just Works"? GNOME is simple? I don't think so. And considering the ubiquity of multimedia in today's computing experience, I see this as a major impediment to encouraging people to start using GNOME.

The way forward: can we change the MIME type infrastructure to disallow the user associating applications with MIME types that they cannot handle? Nautilus offered to open a VOB file with Gedit. I can't remember associating Gedit with VOB files, and I am pretty sure that I would not have done so on purpose. Perhaps a distribution associated VOB files with Totem. But why would one do so? We know that will cause failure and frustration.

More: can the error dialogue of Totem be changed to give the user a clue about how to install plugins and where to find them? And perhaps a link to a page describing GNOME's stance on proprietary formats? (Does such a page exist?) I have hope on this front, and want to publicly thank the Gstreamer people for their efforts.



Anonymous said...

I just wanted to add my support to the mix as mainly a user as that it is good to point out problems like mime associations. It's a large problem, and one that doesn't seem too well thought out right now, and it affects normal users a lot. keep up the good critism!

Anonymous said...

I can understand your frustration, but you have to realize that the available codecs are responsible for format support, not the program.

With the proper codecs and with decss, totem (using the xine backend) can play dvds and proprietary wmv movies. So your assertion that a particular application is known to not work with a particular format isn't necessarily the case. With decss, for instance, I can easily open a VOB file with totem. Even without decss, totem can still theoretically play unencrypted VOB files.

Sorry to burt your bubble here, you make a good point, and I appreciate the effort you are putting into your "things that suck" endevor, but I think you are a bit off base with this one.

Gnome User said...

Well, the problem will not be easy to solve, as videos typically come in container files on formats like WMV, AVI, OGG, MOV. It's left to the application associated with each format to then figure out what streams are contained in a file and whether or not it has the right plugin (or the compiled-in code) to play that specific stream. I've more than once encountered cases where Totem could only play the sound of a WMV file, or MPlayer could only silently show the video part of a Quicktime movie. Other files in these formats played without problems. How can Nautilus be expected to know about such details? Surely they go beyond MIME type detection and registration.

At least, if you advise your browser to open a video in Totem, you can now right-click on the item in the playlist and copy the file location. It's usually under /tmp, and so you can try opening the file with another player.

I think in the end, only better multimedia support will solve this problem, and the developments that are visible on the GStreamer front are very uplifting news indeed.

Anonymous said...

Totem plays wmv, mpeg, and DVDs just fine for me. I don't know why doesn't work for you... I've found that ESD really screws up audio sync so I tend to turn that off.

So, it plays on the desktop, but support for media on web pages is abysmal! In Windows browsers, and to a lesser extent the Mac, media on web pages just works. Not so on Linux.

Anonymous said...

bug report:

steps to reproduce:
1. install any distro gnome based.
2. double click a movie file.
3. say "awsome" when totem is launched automatically.
4. say "what a piece of ...." when totem says it can't play it because he doesn't want to.

5. spend lot of time learning via google that you have to install codecs and how you have to do it.

Come on people, I love GNOME but I can't go everywhere saying that because when someone wants to do such a simple thing it doesn't work!. Recognize the truth about the crappy multimedia state.

Anonymous said...

Something I find very annoying about Firefox is the way it handles MPEG files. Depending of the web site where you download them, it will either start Totem, VLC, gxine, xine-ui or any other installed player.
This is not even predicatable.
For example, 5m ago I tried to download a mpg from http://www.djnugz.com/vid/ and gxine was selected.
I just tried again and now Firefox chooses vlc.
Ha! now it's gxine again.

The mime system is ovbiously a big mess on Linux (at least on Debian).

Anonymous said...

remember that not being able to play a file, doesn't mean it won't work.

Kalle Vahlman said...

Just like to say that in my very own opinion anything beyond free and warm and fuzzy codecs should be considered a bonus. Only the ones that can be fully supported without legal and closed source problems should be shameful to fail on.

Yes, I know the users do not care as long as it doesn't work. But this is also the exact reason why they should be preferred and used by default when creating content. Because the users don't care, they want it to work. As far as I understand, free formats have better chances to work everywhere than burdened ones.

Note that I'm not against supporting non-free formats, that would be stupid. It's just impossible to suppport them all flawlessly so that should not be the top priority.

Also worth noting is that at least while back, the codec mess wasn't that nice in the properiatry (Windows) world either...

Craig said...

If you are going to make a decision to deliberately not support a certain format (and this is a distro decision, not a GNOME one), why not have the "obviously correct" action happen (ie Totem start), and then inform you of the problem ("mp3 not supported due to patent issues") and a possible solution ("email the government", "download this binary" - or even better "Click here to rectify")?

Anonymous said...

No business would use Linux without programs like OpenOffice supporting proprietary formats like Word, and many home users won't use Linux without it playing common multimedia files. If distributions ship with support for Word documents, not doing the same for multimedia formats is hypocritical and annoying.

Anonymous said...

Did you mean this video? ;)

I'm running Ubuntu and installed many codecs and video-players I found in the major repositories.

The effect:

Totem shows the video fine, but no sound (except for some random seconds in between).

Mplayer "jumps" all the time with video and sound.

Vlc plays sound nice (except for first few seconds).

So in the end i watch totem an listened to vlc.. Quite out of sync.

Andy Wingo said...

See also bug 161922, Ubuntu's thoughts on the matter, some more thoughts.

Very much agreed that the situation sucks. Folks are working on it, but slowly.

Simon said...

Odd, totem plays almost anything I throw at it. Make sure you're using the xine backend, rather than the gstreamer one. Also, install the w32codecs package.

Anonymous said...

I disagree with the original post - it really does "just work" for me: totem usually plays anything I throw at it; On Windows and MacOSX I'm usually not as lucky.

I did install all the video codecs and libraries on my (Debian) machine though: w32codecs, libdvdcss2, gstreamer0.8-xvid, -x264, -ffmpeg, -faac, -faad, -lame, -plugins.

But you can hardly blame Gnome for not installing all these by default - blame your distro for not making it clear when you installed Gnome.

Anonymous said...

works perfectly for me on ubuntu once i fetched the non-free plugins (must enable multiverse iirc). and i'm using the xine backend. with gstreamer (default in ubuntu) the videos were jerky on my system (amd 1700+/256Mo).

watching dvd, divxes, dv files, oggs... all with totem!

maybe only for subtitles i use mplayer sometimes. i think subtitles work in totem but i didn't find how to set their encoding etc. really minor.

Anonymous said...

Actually it is hard to argue with geek's cliche that "everything works for me". Yes, it works when you have installed xine libs (half-legal) or win32codecs (almost illegal). NONE of this is solution for common user (to install something) and for common distro (it is hard to get legal mp3 support in distros, don't talk about wma, Real formats, etc.).

Problem has two sides - technical and legal/political ones.

Techical is issues that can be solved easily - reporting about lack of codecs, providing help for users, information for countries which doesn't use software patents (it could be like that even while installing it such info could be provided). My guess is we can work around such problems, so it is deal what is Ubuntu/Fedora and Fluendo guys are doing.

For me, I would like to see nicer error messages for Totem, more streamlined and common interface for all sound/video settings GUI, such things. And for codecs, I would like more solution like Fluendo MP3 Gstreamer plugin, because if it could be easily downloaded/installed by click away, then nothing would be standing between user and a choice to use mp3.

And I agree with users that in Windows and OS X, many formats aren't played out of box, so actually it is not so big problem if we compare this with other desktop envorements. But as John pointed out, GNOME is ambicious, so maybe we should try our best to solve this.

Benjamin Otte said...

I'd like to mention that compared to other complex file formats, multimedia format support is stellar in Gnome.

Can Abiword open DOC files that only consist of embedded OLE objects? Does Firefox do anything about a Website requiring ActiveX? Does Evolution display some random attachment?

All of these are examples of applications that try to cope with file formats that allow proprietary extensions. And they're all pretty much at the same stage: They don't work whenever some proprietary extension is found.

It's not just multimedia.

Anonymous said...

Yes! I enjoy using GNOME but absolutely cannot understand what Totem is included for. It just won't play anything!

Thanks for this "Things about GNOME that Suck" series. It's refreshing to read someone who has the courage to just come out and write these things. If a newbie like myself were to say this I'd be vilified and silenced.

Please, keep writing. You're doing the GNOME community and GNOME users a great favor.

Anonymous said...

I totaly agree, so if you choose to open it with Totem and it doesn't work, now you have to download the fracking file again.

Simon said...

I think we are missing the point that John is making.

What I believe John is saying is that, sure, FLOSS distributions cannot come with several multimedia codecs or decss, if they want to be distributed in every country.

The software however should be adapted so that they inform the end-user that the inability to play this multimedia file is the lack of the codec. If you read two comments above, you will see a poster saying that totem is crap because it cannot play any popular media files by default.

In developer terms the easy response when a file cannot be played is a stock response, "sorry, I cannot play this file". What John suggests is that this stock error dialog should be adapted and inform the end-user what is the real reason why the file cannot be played.

To move the discussion further, should the error dialog check the locale settings for the country the end-user is in, and accordingly download those codecs that are allowed to be installed.

Should the error dialog spawn the package manager, instructing it to use special repositories to download the missing codecs?

Another poster mentions that totem is crap (same poster) which actually has some truth in it. Empirical: I use Ubuntu 5.10 and installed the required codecs. When using the totem-gstreamer backend, several of the movies are not played properly (too slow playback, sound is not synchronised or skips). One has to switch to the totem-xine backend. These are bugs in gstreamer, which have not been reported. We have to report these.

Anonymous said...

Speaking from a completely non technical standpoint, the user does not care if its the codecs "fault" or totems. The user sees that it doesn't work and that they see no imidiate way to fix the problem. This must be fixed regardless of how its done.

I head that someone was working on a windows codec wrapper for totem? What happened to that. Maybe some people never want to use propriatery codecs but there are a lot of others that just don't give a damn and they should have the option available to them as well.

Lets get the multimedia situation cleaned up so that it can at leasted be fixed with a few clicks of the mouse. Right now, some of these problems cant be fixed at all by the user.

Anonymous said...

Hallelujah :)

VLC plays most things for me happily, and I like its interface. I have set many filetypes to open with VLC as a result, but (and this may be an example of simple pilot error) it seems like my preferences don't always stick. Old radio shows (usually available in MP3 format) consistently open right for me in VLC since I've set that preference, but for some reason .mov and .mpg files keep opening Totem (which gets me the same error it does you). It's a peeve -- on the other hand, it beats lots of other alternatives ;)

J.B. Nicholson-Owens said...

I approach this problem from the perspective of fighting for software freedom (the freedom to run, inspect, share, and modify published software). Therefore, I look at this situation as an educational opportunity. This is a time when you can help other users understand why this situation exists for every OS (no OS comes with codecs for everything) and what the Free Software movement is doing to counter it.

I think that the "GNOME just works" aim is vague and therefore questionable. If this meant that GNOME is going to support a user's software freedom, organizations looking to help out here could sponsor work to reverse-engineer proprietary protocols, codecs, etc. and make Free Software drop-in replacements. Where patents get in the way, perhaps there are ways to do the same job without infringement. Where that is impossible, we should simply learn to do without and put social pressure on distributors to distribute works in Free Software codecs and formats (certainly one can do this as an alternative to the proprietary stuff offered). I'm particularly disappointed in how many Free Software supporters don't do this themselves (instead offering "screencasts" in Flash exclusively or audio files in MP3 format exclusively).

I sure hope that we're not about to see a series of licensing deals making it possible for various GNU/Linux distributions to include non-Free programs to play non-Free media. This is short-term thinking and it is not a good idea. Such thinking would not have gotten us where we are today.

I think that the Free Software community would do well to focus on the goal of software freedom and not get caught up in a trap of accepting non-Free Software to satisfy a short-term goal.

Aigarius said...

I can not understand why Gnome developers switch to GStreamer backend while it is clearly inferior in format support to xine backend with w32codecs installed.

I do not care about software and format patents, they are illegal in my country. Why should I pay for US stupidity?

BUY WOW GOLD said...

Nice blog. I a also ardent player of WOW GOLD. I love this game. Nice posting about wow gold. Thanks