BBC Totem plugin

For those who might have missed it George Wright of the BBC blogged on Thursday about the Totem BBC plugin we are doing with them and Canonical and which I blogged about earlier. As George pointed out this plugin is not the iPlayer in terms of content, but I still hope a lot of you will end up using it. The more popular it is the more mindshare it will have, including within the BBC, and thus easier it will be to get further content added.

The content distribution system is also fully open sourced, so it should be possible for any broadcaster who is interested to use it for their content.

For those of you who wants to test this plugin, who are not using Ubuntu’s test packages, the patch for Totem is available in this bugzilla entry. As the totem progress and we work towards merging the latest versions will be posted to there.

Pitivi video editor

For those of you interested in the latest news on Pitivi I recomend you track Brandon’s blog. He posted yesterday a big update on his latest work to drill the Pitivi UI into shap. Keywords for this entry is cleander default layout, detachable components and a property editor.

Google Summer of Code mentor summit

I am currently at the Google Summer of Code mentors summit together with representatives for a many of the open source projects involved in the Google Summer of code. Had some interesting discussions so far, for instance we had a informal gathering of multimedia developers yesterday which reviewed the bugzilla entry for automatic support for interlaced media in GStreamer. Thanks to having a lot of people present like David Schleef, Mike Smith, Edward Hervey, Timothy Terriberry allowed us to map out all important interlacing variations and review the design proposal done by Jan Schmidt.

With the new deinterlace2 plugin fixed up by Sebastian Dröge it will be nice to be able to autoplug that plugin into our pipelines when we get this design completely implemented.

Another nice think discovered here is the Gerrit code review tool which they released alongside Android. It intergrates closely with Git and thus would be something that would be very nice to get running on freedesktop alongside the GStreamer CVS to Git migration.

Want to hack on video editing?

So as I mentioned in a preceding blog entry, we at Collabora Multimedia are looking at increasing the pace of development for Pitivi. The first step we took in that regard was hiring Brandon Lewis. We are now ready to take the second step and are now looking for good candidates to join our team. So if some of the bullets points below fits your profile and you would be interested in taking open source video editing to the next level, please send me your CV.

  • Solid C or C++ development skills
  • GStreamer experience
  • Video editing experience
  • Python development experience
  • Video codec development experience

We are not expecting someone to have all of these points down, and we are looking just as much for people who got any kind of experience with non-linear video editors as people with specific GStreamer skills. So for instance if you worked on any of the many open source video editing projects out there you could be our perfect candidate, even if this editor was not using GStreamer. As long as you are a generally proficient developer, it is more important for us that you know what chroma keying is than what a GstSegment is.

So if you are interested in joining one of the coolest companies in the world and especially if you wouldn’t mind coming to work in one of our offices in either Montreal Canada, Cambridge United Kingdom or Barcelona Spain, please send me your CV and short intro at christian-schaller-at-collabora-co-uk.

What does the free desktop need to grow in market share?

Saw a story on OpenOffice 3 today which reminded me of a question I been asking myself recently. What does the free desktop need to grow in market share?

Up to this point I guess I my thinking about the free desktop (grouping GNOME, KDE, XFCE etc. as one) and its growth has mostly been about seeing it as a dam filling up. The mass migrations from Windows would be trickling in slowly until at some point we have added enough features and polish to the free desktop for the dam to break. Kinda like how linux in the server space lived many years without a lot of adoption outside academia and or specific fields before suddenly becoming an ‘overnight’ success.

But at this point I am not so sure anymore. I mean is what holding us back from rapid gains in marketshare really just better MS Word import in OpenOffice? Or better support for exchange servers in Evolution? Or better drawing tools in Inkscape and Gimp? Or better support for muxing Quicktime files in GStreamer? Or improved ways of embedding a blingy clock widget into the desktop background? Or just adding an application that can do XYZ? Or is it the lack of a good driver for hardware ZYX? Sure these questions are part of the answer, but I can’ t help but wonder if they are a smaller part than I have given them credit for so far.

I have sometimes seen the lack of games being mentioned, but the Windows game market is suffering terribly these days, caught between piracy and console dominance. So if people care about games I think they probably got themselves a Wii, PS3 or Xbox360 to satisfy that need. So I can’t see lack of game support as being the tipping point either.

Not that there isn’t progress made. There are good migration stories out there from the major Linux vendors and PC makers like Dell do seem to try to offer better sales support for Linux desktop systems. But I can’t help but feel that we might be missing something in terms of understanding what needs to happen for the market share to grow more rapidly. And if we don’t diagnose the issue we will not be able to resolve it.

GStreamer RTSP server

One request we get often here at Collabora Multimedia is from people using GStreamer in the embedded and mobile sector and are looking for ways to stream over RTSP with GStreamer, often in combination with various kinds of transcoding and proxying functions. Due to this we have launched a new project, the GStreamer RTSP server. This server is written by GStreamer maintainer Wim Taymans and is tightly based on the RTP infrastructure in GStreamer that he has been working on for quite some time now.

It is a server written in C which can stream any GStreamer supported file over RTSP using any of the wide range of RTP formats supported by GStreamer. It also allows you to take any RTSP or HTTP stream and proxy it onwards over RTSP. The screenshot below is of totem playing a RTSP stream of the Max Payne trailer from Apple’s website. The stream offered by Apple is a normal Quicktime http stream, but our RTSP server repackages it and retransmits it over RTSP on my local network on the fly.

The code is currently only available through a git repository which you can grab using this command:
git clone git://git.collabora.co.uk/git/gst-rtsp-server.git gst-rtsp-server

The reason there is no formal release yet is due to early stage the software is in, while it works it is not very user friendly yet, with media paths having to be edited and compiled in with the server for instance. But for those looking for a RTSP server solution using GStreamer, which is suitable for putting onto embedded and mobile devices, then it might be enough to get you started and of course we at Collabora are available to offer assistance for those who want it. One hope we have is that this code will help people doing DLNA servers support the mobile profile of that specification for instance.

We also plan on moving the code into GStreamer’s code repository once that is migrated to git from CVS.

Supporting Pitivi

For a long while we had discussions here at Collabora Multimedia about how to push Pitivi forward at a more rapid pace. While Edward has been working on it as time allows, we came to the conclusion that if the Linux desktop was going to have a nice and easy to use video editor any time soon, we needed to do something to increase the pace of development significantly. We have several efforts under way to achieve this and I will announce the first one today:

We just hired Brandon Lewis for the sole purpose of doing Pitivi development. Brandon has been working on Pitivi for a long time now, having gotten involved during last years Google Summer of Code. He brings a lot of python development skills to the table and will let Edward focus his currently limited Pitivi hacking time (we hope to change this too soon :) on Pitivi related improvements in GStreamer and Gnonlin.

Brandon job will be making sure all the features available gets exposed in the user interface and that the user interface is intuitive and easy to use.

So Brandon, welcome to the team and lets make Pitivi rock!

Totem BBC plugin

As I mentioned in my previous blog post here at Collabora Multimedia we have been working with Canonical and the BBC to create a plugin for Totem which plays BBC content. This work is progressing well and with the recent patches we made for Totem to sort out python threading issues are looking really good. I really recommend that people running the latest Ubuntu test releases grab this for some testing. I attached a screenshot of Totem playing a Dirac stream from the BBC showing Big Buck bunny.

Big Buck Bunny
Big Buck Bunny

Update:: I noticed a lot of people commenting on the user interface. We are aware that the current user interface is far from perfect and a lot of the requested features are planed. So far we have focused on getting the base technology working smoothly which I think you will agree is the most important first step. A nice looking user interface is of little value if the application locks up :)

Updates on cool GStreamer happenings

Axis and GStreamer

Axis got a new camera out these days called the Axis P3301. Axis is well known for having what are probably the best network cameras on the market and this new beauty is especially nice as it uses GStreamer internally. It also supports Avahi, so you can get access to its services through avahi enabled applications, hopefully a feature we can get supported in Totem so you get access to these kind of cameras in your network very easily. Wim got gifted one of these by Axis while at their office in Sweden, which we got up and running at the Collabora Multimedia office now. Axis also got a video server, the AXIS Q7401 which also use GStreamer internally.

Jokosher

Jokosher is making great strides forward currently too. They did their 0.10 release a little over a Month ago and today Peteris Krisjanis told me that they just landed support for multichannel soundcards, which has been a major missing feature for a lot of potential Jokosher users. The mutichanel code is currently hosted in this branch on launchpad, but it will of course move into head once it gets stabilized.

Pitivi

Things are also moving forward with the Pitivi video editor these days. Edward recently merged the two Google Summer of Code projects that had been happening over the summer and also switched to the so called advanced timeline view to be the default in Pitivi. Thanks to Serat’s work there is now a structure in place in Pitivi for handling live sources, like webcams or DV cameras for instance. The simple timeline feature has also been dropped now as it turned out to be a lot less useful than we originally envisioned. So going forward the focus will be on making the previously named ‘advanced’ timeline userfriendly and easy to use instead. We will have some further cool Pitivi related announcements coming soon :)

Collabora Multimedia

We had our first ever full meeting of the Collabora Multimedia division over the last few days in Barcelona. It was the first time Wim, Edward, Tim, Mark, Sebastian and myself where all together. It was both a social event to get to know eachother, but also a good chance to discuss various technical issues. For instance Tim and Edward managed to solve a painful python threading issue we have been experiencing in a current project we have been doing together with Canonical and the BBC, which is writing a Totem plugin to enable viewing of various BBC content easily through Totem (as mentioned in the Ubuntu beta release notes. The plan is to push this plug-in upstream also, so that everyone using Totem can get it.

The arguments for using GStreamer

There ended up being quite a lot of comments posted to my blog post yesterday where I pointed out a logical fallacy in a blog post by Aaron Segio. I wasn’t online in the evening so I didn’t reply to the comments posted, but let put down my arguments here instead.

Benoit Jacobs posted a reply making the point about Phonon being smaller than a multimedia framework and that on Windows and Mac installing another multimedia framework would be redundant. This argument rests on some assumptions I think are false. First of all it assumes that GStreamer is huge while Phonon is small. The core idea behind GStreamer since day one was to keep the core small and media agnostic while all functionality was put into plugins. This means that what you install on Windows or Mac, if all you want is access to the codecs provided on those platforms is actually very small. And while I haven’t looked at Phonon’s disk usage I would be suprised if Phonon plus dependencies really had much of an advantage in that area.

The second assumption is that using three different media frameworks is in some way work saving. Having talked with people who tried going the multi framework route before deciding to just use GStreamer on all three major platforms I can tell you that this simply isn’t true. First of all is the problem that you have three major sources for bugs instead of one. So what people trying this experienced was that instead of hitting one bug in GStreamer and having to fix that, they instead hit one bug in GStreamer, one bug in Quicktime and one bug in DirectShow. And since they didn’t have the source code to Quicktime and DirectShow they often had to introduce ugly work arounds in the application layer. The other cost people experience is that everytime a new feature is needed they would have to implement it once for each of their backends. And Phonon do not insulate people against these kind of problems. They will still hit bugs in the underlaying frameworks and whenever they try to do something Phonon do not support, they either have to try to extend Phonon, hoping that the media frameworks are similar enough in terms of that specific functionality to make this viable, or access the underlaying frameworks directly. And if they want to add a new codec for instance they would still have to implement that codec for three media frameworks instead of one.

bluescarni commented that I had a comprehension problem since Aaron was clearly talking about Qt apps. I am not sure what to reply to that considering you in your own comment posted the quote from Aaron starting with the words ‘Phonon is also more than just an option for Qt apps’. True enough, English is a second language for me, but I do feel I am somewhat in firm ground here…

There was quite a few comments about how Phonon was a better choice for Qt developers. First of all my original blog post was in direct response to a claim by Aaron that Phonon was a good choice also for non-Qt developers doing cross platform applications. So I do not feel a strong need to engage in that debate. But my paragraph above on the second assumption made by Benoit sums up why I do think there might not even be true for even for Qt developers in a lot of cases.

Aaron commented that Phonon is not in the same space as GStreamer. Sure, Phonon does not do most of what GStreamer does, but GStreamer does provide a key feature of Phonon, providing an easy to use API across Windows, Mac and Linux/Unix. Sure you ‘don’t get a hard dependency on any one multimedia system’ with Phonon, but you do get a dependency on Phonon and its dependencies instead. So the argument that ‘and like it or not most aren’t using GStreamer on those platforms’ doesn’t compute, because most applications on those platforms are not using Phonon either. The argument is not about what applications use today, cause if that is the argument then people should just use DirectShow or Quicktime. But instead the argument is about what is the best way to write a cross platform multimedia application today. And here I think GStreamer is a better option in most cases, especially the cases when your application is not using Qt.

Aaron also repeated the oft heard argument that Phonon is for KDE about not repeating the mistakes of Arts. And I guess this is one of the big differences in perception. Because for Aaron for KDE to have used GStreamer would have been repeating Arts, but for me Phonon is repeating the Arts story. Back in the day if one dared to take issue about any of the wonderous claims made about Arts one got tons of comments about just being partisan and ‘hating Arts or hating KDE’. Kinda like how it is today when one tries to point out that Phonon is not the universal wonder solution that Aaron likes to paint it as.

So to make it clear, I am not arguing that using Phonon is the biggest mistake you can ever make in any possible situation. I am taking issue with the promotion of Phonon as a better solution than just using GStreamer for a lot of specific use cases including cross-platform development. The strength of Phonon lies in providing a familiar API to existing Qt developers, giving them access to some limited multimedia functionality, but in terms of promoting itself as a generic cross platform multimedia development API it falls down, Phonon is attempting to do what wxWidgets tries to do for GUI components, and I never thought it worked very well for wxWidgets either.

In the land of silly arguments

Seems Lennart started a bit of a debate with his Linux Sound layers blog post. Not all the reponses has been as enlightened though. For instance Aaron Segio managed to make me laugh with his argument for why Phonon was a good alternative for non-Qt applications:

“Phonon is also more than just an option for Qt apps: you’d be making a huge mistake not to use it. You see, Phonon gets you equal and native support on Windows and Mac as well without the user having to install, say, GStreamer..”

Really? Wow, I would never have thought that if you use something instead of the other you wouldn’t need the other…an absolutely brilliant deduction. While we are at it lets point out that if you install Firefox you do not need to install Opera, cause you already got a web browser!!

GStreamer is already used by cross platform applications such as Songbird and SyncTV. And Songbird is using the native codecs provided by DirectShow and Quicktime where available.

So in a celebration of self serving arguments: So if you just use GStreamer you get equal and native support on Windows and Mac as well without the user having to install, say, Phonon…

Blog talking about Fedora, GNOME, GStreamer and related topics

css.php

Bad Behavior has blocked 703 access attempts in the last 7 days.