GUADEC video

We got some DVD’s with a presentation video of Vilanova de Geltru which I thought it would be nice to transcode to Ogg and share with everyone.

While waiting for Thoggen to get ported to 0.10 I had to make do with gst-launch. The pipeline below is what I managed to put together with the help of Zaheer.

gst-launch-0.10 dvdreadsrc title=”5″ ! decodebin name=”dvd” dvd. ! ffmpegcolorspace ! video/x-raw-yuv,format=\(fourcc\)YUY2 ! videoscale method=1 ! video/x-raw-yuv,format=\(fourcc\)YUY2,width=360,height=288,pixel-aspect-ratio=\(fraction\)16/15 ! videorate ! video/x-raw-yuv,framerate=25/2 ! ffmpegcolorspace ! theoraenc ! queue ! oggmux name=mux ! gnomevfssink location=file:///home/cschalle/vilanova_present.ogg dvd. ! audioconvert ! vorbisenc ! queue ! mux.

What this pipeline basically does is take the mpeg2/ac3 on the DVD, scale it down to 360×288 size, drop the framerate to half of the original and output the result as an Ogg Theora/Vorbis file.

Presentation video of Vilanova i la Geltru, home of GUADEC 2007

Anyway, you can now get a impression of the city of Vilanova i la Geltru by looking at
this presentation video of Vilanova
available in Ogg format and licensed under the Creative Commons Attribution-ShareAlike license. You can also watch the video online using the Cortado java-applet through this link.

Dirac
Also been testing the Schrodinger Dirac implementation recently. Thanks to Ralph Giles there is a official Dirac in Ogg specification now and I am able to create Ogg Dirac files using the GStreamer plugins provided by the Schrodinger project. We still have some way to go before this is truly useful, but it is nice to be able to actually encode something and view it in Totem.

svideo and linux continued

So in my previous blog entry I mentioned my intial work to get my xvideo output working with Linux. I did notice thought that there was one remaining issue, which was the problem that there was a black border around the computer screen image on the TV. I ended up spending more time on resolving that than I did on getting the thing working in the first place. Anyway Jan aka thaytan told me (after I had already spent quite some hours on the problem) that there is a option called TVOverScan in my xorg.conf file which can be used to get the image to scale up to get rid of black borders like I had. The problem was that whatever I set the TVOverScan too, my nvidia board seemed to ignore it. Adjusting it using nvidia-settings however worked fine. Seems that the TVOverScan in xorg.conf gets ignored, so what I did instead was set up my system to run ‘/usr/bin/nvidia-settings –load-config-only’ on login to solve it. A bit hackish, but it will have to do for now.

Also rediscovered my old issue of nautilus-cd-burner not being able to deal with both my internal cdwriter and my usb dvd burner at the same time. Ended up having to remove the internal drive and rebooting to ge t it to deal with my usb driver properly.

Enabling SVIDEO from my Dell 8600 laptop

On my Inspiron 8600 Laptop I have a SVIDEO output on the back which I thought would be nice to use for playing back videos etc., on my tv. Although my TV also has SVGA input support, the cable for that is way to short to work nicely for me. Anyway after a lot of googling and testing back and forth I managed to put together this xorg.conf file which does what I want, giving me a separate X screen on the svideo port. Tried playing some movies onto it yesterday and it worked very nicely. In addition to duplicating everything for two screens the magic was in the BusID option and the tvstandard, tvoutformat and connectedmonitor options.

Getting this going though was a very manual process with editing the xorg.conf file, reading the NVIDIA driver README and googling to find answers to some specific questions. (None of the Linux on Dell Inspiron sites seemed to have actually tried testing/using the SVIDEO output port).

I assume part of making this nice that X could do with some HAL/dbus magic in order to be able to handle this in a more automated fashion.
Not sure in the end if xorg or GNOME will be able to offer something to setup these things in a nice GUI’ed way or if we are depending on the hardware vendors to do this due to it being relativly hardware vendor specific? NVidia already have a little GTK+ based setup tool bundled which maybe they could extend (currently it only seems to allow you to adjust stuff not add anything). Anyone know if there are any efforts by anyone in this area currently?

Reminds me of my USB soundcard issues from some time ago. While there is rudimentary support in the drivers, we still have so way to go before its ready for joe average user. And when we do get to the point of trying to make it joe average friendly we will probably find, like they discovered with Network Manager, that the drivers needs a lot of fixes before being ready to work properly in such a scenario. At least for the sound card scenario we should have infrastructure for it in the next release of GNOME thanks to Jürg Billeter‘s work. Hopefully the USB soundcard drivers makers follows suit and improves their linux support.

Pimping Togra

One project using GStreamer which I think is really cool, but doesn’t get enough pimping, is Togra. Togra is a framework that allows you to combine GStreamer media handling with 3D objects using OpenGL. One example of cool usage is the spinning movie cube which was worked on for linux.conf.au. The idea was to have one camera in every room where someone was speaking and then have those video feeds play on each side of the cube. The sound would then fade in and fade out for each room as the cube spun around. This spinning cube was then shown on a big screen in the reception. Don’t remember if they managed to pull it all together in terms of getting the needed hardware, but the cube works and maybe it would be cool to try to get it going for GUADEC this year.

Anyway, Togra allows you do to all these quickly and easily in Python, so if you need to put something together to pimp your own coolness at the next LUG meeting make sure to take a look at togra.

Maemo article

Newsforge has a good article on Maemo and Nokia. The article gives a good insight into the process I think is happening at Nokia where the success and quality of the Maemo platform is causing the whole organisations thinking around software, copyright and patents to change. One could always wish for the change to happen faster, but I think the current development is inreversible. As bigger and bigger parts of the industry starts depending on open source and open source solutions takes over internally as being the most important businesswise I think we will at the same time see a change in these companies from being agressive ‘pro-IP’ to being ‘pro-competition’. See this happening with IBM too, for every month that has gone by over the last two-three years their public comments on software patents for instance have become closer to that of the open source community. Still a long way to go for sure, but the direction of movement seems clear to me. Other companies too, have at least begun not vocally supporting software patents, hopefully they soon start advocating doing away with them as they simply don’t work. Maybe Sun and Jonathan Schwartz wants to be first one out?

Active weekend

Decided recently that I need to be more active during my weekends as I was feeling that I was letting them slip away to easily. So I set myself a goal of at least doing two things every day of the weekend. Started doing this weekend by goin to Montserrat which is a old church/convent in the mountains north of Barcelona. It was a very nice area and I walked around in the mountains for many hours enjoying the feeling of being outdoors and the beautiful scenery. Definetly going to go back there to explore further. In the evening I went to a stand up-comedy show in Gracia. They had pulled in some stand-up comedians from London and it great fun. Mike joined me there and I learned that Mike has an uncanny likeness to David Hasselhoff from our friends on the stage.

Sunday I went to see V for Vendetta at the local cinema. Loved the movie and combined with my recent viewing of Closer it increased my appreciation of Natalie Portman as an actress a lot. In the evening I went over to Matthieu’s place where he hosted a barbeque on his roof terrasse as a delayed house warming party. Mattheiu’s appartment is pretty nice even being very rustic. Nice view of the town from the terrace and short walk to the beach.

Elisa update

So Phillipe and Loic are working hard on getting a first version of Elisa ready to be announced/presented at GUADEC. One of the things they are currently working on is making sure it integrates with ViiV systems. Managed to take this screenshot today showing Elisa browsing the directories of the ViiV server. Lots of polish needed though :). Lionel has already made an agreement with David Vignoni for doing graphics for Elisa (the current temporary graphics used are taken from various existing icon sets, mostly Crystal afaik). David has done work for us before, doing a set of icons for Flumotion (which we haven’t fully included yet due to letting it block on a more generic ‘cleaning up the Flumotion GUI’ task’)

Maemo news

The Maemo 2.0 roadmap is out. It contains a lot of interesting information on the plans for the next version of Maemo like the upgrade to GStreamer 0.10, the inclusion of farsight/telepathy for VoiP and a lot of general version upgrades. There is also a general Maemo multimedia overview available now, although its about gst 0.8 its mostly correct for 0.10 to as GStreamer didn’t change much at the level which that document is covering.

Standards and standarisation

Been dealing a little lately with the issue of standards. On one hand I recognize some standards as important and their existence has problably been a critical success factor for free and open source software. POSIX, PNG, Window Manager specification, UTF8, SVG, XML and various hardware standards come to mind as some examples.

The problem with standards is that the standarisation process often brings with it stagnation or that the standard advocates horrible solutions (the horrible solution was the compromise between two good solutions for instance). I think Solaris is an example of how letting yourself get locked down into a gigantic pile of standards and ABI promises in the end becomes more of a problem than a help. Sure if you ask people if ABI stability is important to them they will say yes, but in the end developers tend to value feature additions and improvements in the library they are depending on even more than ABI stability. And the same is true for standards, while everyone would say that being standards compliant is good, they would still choose to use something else if it provides a better experience.

Of course the worst kind of standards is when you create technical workarounds for the lack of standards and then ask people to standarize on those. Been a couple of examples of such I seen recently.

I don’t know how to do good and needed standards while not creating a standards bog, all I know is that I think standards isn’t the solution to all of the worlds problems.

Dangerous times for the Wheel of Time

Was sad to read today that Robert Jordan the author of the popular fantasy saga Wheel of Time have been diagnosed with a disease called amyloidosis, which according to Jordan has a median of 1 year until fatality from diagnosis if untreated. If treated the median jumped to 4 years which isn’t that much more. It made me think about my uncle who died two years ago after having been diagnosed with cancer about one year before that again, which again made me realize I tend to accept the occurence death quite quickly. I guess it comes as a byproduct of having a lot of doctors, nurses, vetrinerians and biologists in the family, all who comes in close contact with the cycle of life through their jobs almost on a daily basis, which in turn I guess have made them very ‘comfortable’ with such events, something which has rubbed of on me I guess. Combined with a complete lack of religiosity in the familty which has removed words such as ‘unfair or unjust’ in relation to death and instead quiet acceptance that death is direct result of being alive. So while there are of course the sadness and sorrow which comes when someone close dies, no energy or anger is spent looking to the heavens asking ‘why’.

Quality of Service

Wim has been working adding Quality of Service support to GStreamer. For those who don’t have any familarity with that term in this context is means that when you are playing back something which you don’t have enough CPU power to play back GStreamer tries to cope with it nicely. This usually means dropping/skipping video frames and for instance only decode the keyframes in a video file. One of the things you need to get right in such a setting is that no matter how many video frames you need to skip audio and video should still stay perfectly in sync. So when movement in the video slows down a bit again and your CPU is once again able to cope the audio and video hasn’t lost sync. You also want audio to keep playing perfectly through it all. Well Wim has the start of it working now and its already doing better on his selected testclip than the alternatives he is testing with. There is of course still more work that needs doing in terms of both enabling this for more formats and fine tuning the core, but its looking pretty sweet. Not as sweet of course as actually having enough CPU to play it perfectly, but still a waste improvement of what you are experiencing today.

House on fire

Seems the house of my mothers neighbour burned to the ground yesterday. Nobody got hurt, but it still feels kinda strange to have a house thats ‘always’ been there, now be gone.

The Legend that is Mike Smith and Theora

Mike Smith, our resident Xiph.org master at Fluendo, put together a new Theora decoder plugin today. It is based on the alternative theora-exp code from Xiph.org svn and should give very significant performance improvements over the current one in the 30% to 50% range. A big thanks to to Mike for this. All we now need is a release of theora-exp and distributions and users have a much higher performant Theora playback option.

GStreamer on Windows

We long have had some basic Windows support in GStreamer including building using Visual Studio and output plugins using DirectShow. Sebastian Moutte just commited a lot of fixes to our -good plugins package making sure most of the plugins in that package also build on Windows. What will be the second GStreamer application for Windows after Ixion?.

Pitivi

Plan on keeping up with my Pitivi blogging as Edward is such a lazy blogger. Edward has been working on improving robustness of Pitivi over the last few days with better handling for unloadable streams and also various smaller memleak fixes. Getting Pitivi memleak free is actually an important goal for us as we want to use the Pitivi engine also as a backend system for video processing which means it needs to be able to keep running for weeks without choking your server. A new release is planned soon and the goal is to have the features in there working as robustly as possible before then. It is in some ways similar to the development strategy we took with GStreamer 0.10. We defined a core set of plugins (which is what you today know as -base) which we felt represented many of the most important plugin types and usecases. We then worked on making GStreamer and these plugins work really well. Only when that had reached a high level of maturity did porting other plugins start becoming a priority. Apart from practical coding advantages to this approach it also came from a thinking that its better to do a few things really well and build on that instead of trying to do a lot of things right away and do them all badly. I think it worked out well for GStreamer 0.10 (as opposed to 0.8 where I guess we almost did the ‘add enough plugins and the core will fix itself’ strategy :). Hopefully it will work out equally well for Pitivi.

Cool GStreamer stuff

Jokosher

The Jokosher team continues kicking ass and taking names. The latest updates with screenshots of recent additions is simply amazing. I really hope they are planing on submitting a Jokosher talk for GUADEC today (last day before deadline!) or as a minimum do a Jokosher talk at LUGRadio live.

Thoggen

Tim-Philipp Müller has been reviewing patches and fixing bugs at a high speed in GStreamer for a long time now. I often feel he doesn’t get enough credit for this work as it is a little ‘behind-the-scenes’ kinda stuff. So I was very happy to see that his personal project Thoggen got a positive review on linux.com. With all the work Tim has been putting in on fixing the DVD and mpeg plugins in GStreamer 0.10 I think a GStreamer 0.10 based Thoggen should be possible in the not so distant future.

Diva

Michael Dominic just released his first 0.0.1 release of Diva today along with some really sweet looking demo videos. Thumbs up to Michael for his work so far and especially the work he has put into making such a sweet looking user interface. We are sure to borrow some ideas for that for Pitivi when the time comes to add more bling to the Pitivi GUI. Cool stuff Michael!

Diva and Pitivi

So why are there two efforts to make a GTK+ non-linear editor using GStreamer instead of one you might ask. Well as usual the answer is disagreement on design and component choices. While Diva and Pitivi are written in C# vs Python that isn’t the important divide, although it has some secondary implications in that regard as it makes it a little easier for Novell to integrate Diva with f-spot and Banshee when its done with Mono, while for us integrating Pitivi with Flumotion to do live editing on video streams is easier when both are done in Python. Both are possible of course anyway, but using the same language does makes things easier. But as said these are secondary items.

With Pitivi we sincerely feel that the under laying design is sounder and more flexible and that the path taken with gdv, the library Diva is built upon is suboptimal and much less flexible compared to the direction we have taken with GNonLin, the library/gstreamer plugin that Pitivi is built upon. Michael obviously disagrees which this assessment which is why he wrote GDV in the first place. Time will tell who is right and not.

That said the competition between the two projects is friendly and the redundancy in work is luckily kept to a minimum due to both projects using GStreamer. A lot of the work involved for both projects is of course writing various GStreamer plugins to enable support for various formats and effects and here everything that benefits one benefits the other. Both Edward and Michael is also looking at each others code and applications for ideas and discussing technical problems, so even though there are two codebases on two languages there is a good deal of cross pollination going on.

So no matter what happens the community should have one or two kick ass non-linear editors within a year. Personally I am putting my eggs in the Pitivi basket, but I will be genuinely happy about people contributing to any of the two projects.