i am tired of the state of multimedia in the free software world.
phonon has eased so many of my multimedia pains while using kde4 apps (such as re-routing audio to my usb headset) that i'm getting sightly spoiled. i imagine it's what windows and mac people have felt like .. well .. for a long, long time. and that in itself is just sad that we've waited this long.
for the last two days (on and off) i've been trying to put together a screencast. in the past i've used recordmydesktop with the qt-recordMyDesktop front end. now, no love. recordmydesktop sometimes works. if there is anything touching the soundcard it just refuses to work. the rest of the time, it sometimes works. randomly. i've now done half a dozen records that didn't come out (no audio or just nothingness). and so for right now, i'm done. no screencast, i'm sorry. blame media on linux. i've done my bit, and it's let me down. were i a normal human being i'd be off back to proprietary software.
this is pathetic and alarming.
it doesn't end there, though. i've played with the various sound recording apps: audacity, jokosher, etc.. they all fail badly in one way or an other. it's not the UI (ok, those are pretty crap too, tbh) but rather the utter lack of sensible media hardware interaction.
we clamour over our ability to play media, probably because that was a long and hard road, too. but now we're at the point where we need to be able to record media ... and you know what? it's really, really bad right now.
a few years back we were way behind with display technology (think x.org) and we're eventually catching up with that (i have a blog i'm working on that topic, actually). today we're at the same sort of point of suckage when it comes to media play and capture. we must fix this or else go down in flames.
Sunday, March 02, 2008
Subscribe to:
Post Comments (Atom)

28 comments:
I'm agreed with you Aaron, I've found it pretty frustrating also.
Thankfully I think recording media is a task that is normally reserved for non-novice users so it isn't quite as serious as input hotplugging or some of the X issues but I agree it does need work.
Does Phonon handle input or just output?
The thing I find vaguely encouraging is that, with the FOSS world, we tend to go from sucking to beating Windows in a fairly short time once people make it a priority.
The capabilities are all there. Stuff like JACK is amazingly powerful, far more so than anything on Windows but it just needs a stupid-simple GUI.
the sad thing about multimedia on linux is, that normally all "new" approaches just use the same old tools, that worked only half before already...
Result is: No real competition -> No real progress...
Still i have to hold myself back from booting windows if i want to play with x264 or xvid, just because it has so many actually full featured tools for this task.
On linux you can only use mplayer, which is fine, but uncomfortable.
If you want something graphical you are screwed... Lots of missing options in every application. I know this is open source, everyone could change this situation... but after all this years it feels like not much is going to happen, sadly...
I think everyone would agree with you wholeheartedly. Something needs to be done. Not only is there the "Just Works" aspect, but multimedia has so much to explore. A good example of some amazing multimedia work is the Reason4 recording software. It automatically patches different effect modules and it shows them graphically, exactly how you would see them in real life. To top it all off there is ReWire which lets you wire your audio from Reason4 to other recording programs. This is some amazing work here. I'd love to see this happen on linux.
We need all these aspects of the desktop to come together. We shouldn't be so far behind our competition like this.
Hey Aaron, I feel your pain. Things have sucked for so long on that front that it sometimes looks hopeless, but things are getting better little by little. For example, I was pleasantly surprised to see the sound HW on my machine work when I first started up 4.0.0 and it fell back to rendering through JACK automatically when I started that up. Very Cool. :) Unfortunately, things seemed to have gotten broken in the 4.0.1 release and it doesn't play so nicely with JACK anymore (I can't even *start* JACK now). :(
It's also nice that some really powerful and professional MM apps have shown up on linux like Ardour (kicks the shit out of ProTools) and Cinelerra (Kino is cool too, but I wouldn't put it in the "pro" category). Developments like that give me hope that things will eventually sort themselves out. I don't know what the answer is; I just wish that everything on my desktop could coexist somehow so that I don't have to micromanage things like having to kill JACK manually whenever I'm not using Ardour.
@mike_arthur: Thankfully JACK has a stupid-simple GUI: qjackctl.
@anonymous: There already is a ReWire for linux and it's called JACK. It's pretty damned cool too.
Have you tried recording the audio seperately, then adding the track via ffmpg or mencoder?
Yes unfortunately this is way we stick with proprietary solutions in business.
When I charge 200$/hour I cant waste neither mine or my customers time hassling with buggy software :/
We might get a little less freedom when buying proprietary software, but at least it does its job..
Kind regards 10+ (private) OSS user
Your soundcard probably doesn't do hardware mixing, configure Dmix.
I feel your pain.
The thing is, I don't even mind when things don't work out of the box, and I have to install or configure something to get it working. It's not optimal, but I can live with it because I get freedom in return. What really pisses me off is when I spend a lot of time fixing something, and then it gets broken again and again by some update or other.
The new device hotplugger used to work, now it doesn't. God knows why. Keyboard shortcuts like to randomly stop working entirely, and I've spent way too much time trying to fix them. Then I finally got my EeePC to suspend properly (running debian), but after some update it just refused to work again. My wireless works in 2.6.22, but doesn't work in any newer kernel, and I don't even want to think about how much time I've spent futzing around with that.
I think I've just had a bad run of luck, and overall open source environment is still worth it to me, but sometimes I reboot into Windows to do some development for work and just stay a little bit longer... cause it's nice when everything is broken in a predictable way for a change..
Your comments are very true, Aaron...
The kernels of the free OSs (Linux and the BSDs) are fine and have been for some time. Now is the time to absolutely NAIL multimedia too, once and for all.
As well as Linux and the BSDs, I'm keeping an eye on Haiku. Ok, that is quite a way behind Linux/*BSD in where their kernel is, but the thing with them is that BeOS (which its a clone of, of course) was renowned for its multimedia ability. Hopefully, Haiku can reproduce that ability soon.
( That'll be many months away though, and Linux needs
flawless multimedia *yesterday*... )
Well, with as much duplication of effort and incompatible APIs between KDE and Gnome as there is, it's not surprising that things aren't as good as they could be.
> duplication of effort and incompatible
> APIs between KDE and Gnome as there is
this has nothing to do with KDE and GNOME. this has to do with:
a) the kernel level interfaces sucking
b) things like ALSA being horrid and innapropriate for user-facing applications to use in such a direct (and raw) manner
c) apps not using the APIs that the desktops do provide, as we're busy solving these issues on our end but the user gets screwed by every app that tries to remain in its own little world.
it has little to nothing to do with KDE/GNOME duplication of efforts (which is even more BS with Phonon, btw) and a lot more to do with media stacks below the desktop layer and the choices application developers have made historically (sometimes due to the lack of options, but those days are past us now)
Hello Aron,
I really fell your pain.
That's one of 3 very big problems in Linux these days - the other ones are missing drivers (I know most of the times it's a problem of hardware vendors) and gaming (espacially the "hot new 3D gamy xyz...").
And this problem I'm facing a lot of times when I recommand Linux to users - which I do very often. Normally I end up installing and configuring the computer myself - but sometimes things like multimedia just don't work out the way they should. And then it comes to the "shaming end" - I have to reinstall Windows (at least on some computers where these multimedia does not work at all). After this experience I don't even have to try to convince them to try Linux for the next 2 or 3 years...
Regards,
Ralf
Couldn't agree more.
This is why I found it a bit strange that KDE wasn't getting behind GStreamer. For once, we had an API that stood a chance of standardising file format loading/saving, device use, filters, etc. Finally, we could catch up with the basic import/export ability that Amigas had back in the 90s! It wasn't perfect, by any means, but I think it's far more important for people to agree that THIS is the framework we'll all use, and if its broken, we'll patch it. Not that other projects can't exist to try new ideas, but there has to be a mainstream effort, just like there has to be a mainstream free OS, or desktop efforts etc. will become too fragmented.
Don't get me wrong -- I understand the cross-platform issues that made KDE choose the phonon layer. AND, it's working out pretty well. I might even use it in an app once I port it to KDE4. BUT, I still can't help thinking that an opportunity was missed here.
As for the kernel-level interfaces being broken... well, I'm not sure I'd agree there. Again, Amigas had much nicer APIs years ago... basically object-oriented and event-driven, so very nice.
However, no one would argue that this was a good API for applications. Naturally, there were layers on top of that. And the thing with that, and with windows, and OS X, and just about any other proprietary platform which has good multimedia is... everyone knew what *the* API was. It was published in the reference manuals, and you just used it. None of this "well, I want my app to work on GNOME *and* KDE *and* *BSD, so I can't use that. I wonder what else is out there. Oh, ten other options. Which one looks coolest?". Someone choose, and everyone else used it. If it sucked, then someone wrote a new, *compatible* library that did all the same things, knowing that it wouldn't be used otherwise, but expanded on them. It might even have worked completely differently, and just provided a compatibility layer. BUT, again, the point is that there was a standard.
I mean, seriously... what's the worst that can happen by choosing a standard? A few years down the line, everyone realises they need to get behind a better framework instead, because some new card has taken things in a new direction. So, everyone realises that'll be tough, and they write a compatibility layer, and start using the new framework in new apps/rewrites. Is that really worse than (or even equally as bad as) having 10 different frameworks NOW, and splitting effort between them all? It's crazy.
Well. I don't think there's a lot missing with regards to technology. If you take for example ffmpeg, it's a most comprehensive collection of media codecs that is able to decode nearly anything you throw at it.
On the soundcard front there's Alsa, and while it may suck from a user perspective, it technically good. A bit overengineered maybe.
The problem is in the lack of standardization. It forces the application writer to deal with technology while he should concentrate on the functionality.
Unfortunately it's not a lack of standards but a plethora of standards we're facing. Choice is good in general, but choice of standards is not. Only in the comments of this blog there's half a dozen named.
And then of course there's excellence. Excellence comes from dedication. Dedication consumes time. You can not be excellent with just casual hacking. Large numbers of coders are no replacement because they lack focus. That's the main reason why there are so many apps that stop developing at the "barely good enough" stage.
I know that there are distros that are tuned towards MM/pro audio like planet CCRMA--what are they doing that other distros should be in order to make MM seamless the way it should be?
@Aaron: ALSA was never meant to be a user oriented sound framework as it was meant to replace OSS. The focus there has been on making sound hardware work and as such it's understandable that its a low level close-to-the-metal framework.
What exactly is it about ALSA, from a programmer's standpoint, that causes you to say that ALSA sucks?
ALSA rocks, I never had a problem with it.
I think the best solution for the audio chaos is probably PulseAudio. Unfortunately, it's still pretty buggy, but it can handle apps using either the ALSA or ESD API (a dmix-like plugin for ALSA is available, and the ESD protocol can be emulated), which covers most things these days. A padsp LD_PRELOAD hack (similar to artsdsp, esddsp and aoss) for apps using the obsolete OSS API is also available. One thing missing is an easy way to run JACK on top of PA (the other way round is possible, but probably not what the average user will want).
@Lee_B: A GStreamer Phonon backend is coming with Qt 4.4.
I agree with you.
PS: In the next day you'll see a new multimedia.kde.org ;)
Have you tried to use OSSv4?
The issue is that a lot of cheap soundcards don't implement hardware mixing. If you have a card that does everything just works. This sucks there is supposed to a software layer that emulates hardware mixing in Alsa called dmix but it is hard to get working and isn't set up by default (needs to just work out of the box).
Jackd is where it is at for serious multimedia on linux, Currently it can be tricky to set up to work well and requires a bit of tweeking. (also needs to work out of box). I phonon frontend or otherwise having KDE4 cooperate with jack completely would be awesome.
alsa is a dream? omg, it surely is not!
1) its a disaster to develop in and 2) Its a disaster to develop in :P
It was really sad that OSS went closed source in the past, but ppl should forgive them - and honestly: there should be support in official kernels for oss again. Its the best choice of Soundcard framework we have.
As for multimedia frameworks: There is no optimal case here. Either we have a monopol, as in standard, which does a good job, but then every application would simply use it and progress wont be made.
Or we have several frameworks, which is good for competition, but on the other hand gives us the mess of having several things installed doing the same task. (Because one likes the movie player using xine, but prefers its audio player using gstreamer).
Ideal solution anyone? :P
When it comes to ALSA sucking, there's actually a plan to fix that. It's called libsydney (see http://0pointer.de/blog/projects/foms-lca-recap.html ). The idea is to have an API that abstracts as much as possible of the hardware (which ALSA doesn't do) and yet doesn't stop anyone from doing advanced stuff with it.
Hi Aaron, I totally agree to your post, what I think is really needed are 3 things, 1# People who understand "Multimedia", 2# Developers who write the code, and 3# good COMMUNICATION between the right people.
And btw. I know what I am talking about, because I have actually written a video editor ;-)
openmovieeditor.org
The irony, is that the "high" end or "pro" side of the audio spectrum is well served, with the right hardware. I prefer Linux (64Studio specifically) to do my multitrack recording in. Alsa + Jack is simply awesome. Doing away with alsa right now does more harm than good.
There are many variables in getting this stuff right. You have kernel drivers, things like jack that were developed with "pro" users in mind, not playing a dvd. There are codec issues. Crappy hardware has certainly not helped.
Smart, dedicated people have been wrestling with this problem for a number of years. I think most of the posters here would do well to actually research the work that has been done to get a sense of where we actually are.
I do however agree with Aaron. This is an area that will sink us if we don't get it right.
and what if someone posted a blog "KDE : it's time to get serious" ?
I've seen you respond so badly to this kind of blog pointing to the weak points of you own work from other people. I expected you not to do the same on other's work ...
Or perhaps, the better solution is to accept critic (not an easy task). Pointing to weak points is annoying when you already knew those, but sometimes you were not even aware of that and a constructive critic is useful.
"and what if someone posted a blog "KDE : it's time to get serious" ?"
a better analogy would be "Desktop: it's time to get serious". the multimedia issue is one that touches pretty much all of us (app devs, kernel hackers, multimedia system developers, stacks like Phonon). this is a general call to arms.
"respond so badly to this kind of blog pointing to the weak points of you own work from other people"
there's a difference between what you are referring to and a general observation that a given genre of technology is lacking necessary architecture.
", the better solution "
curious: are you going to offer me a lecture on every one of my blog entries? if so, let's coordinate:
i'll write a blog that says, "hey, here's the lecture me entry. go nuts in the comments section." and you can spend some time putting together truly thoughtful and accurate chidings.
deal?
(yeah, i'm not being serious. it struck me as a funny idea, though =)
Post a Comment