Dirac bitstream frozen!!

So the Dirac specification is now frozen and has a 1.0 release. This means that video encoded with any Dirac 1.0 compliant encoder is sure to keep working in future Dirac decoders. David Schleef is working hard on getting Schroedinger 1.0 ready which will feature both a Dirac encoder and decoder, both specification compliant of course. I have big hopes for Dirac is it provides the free and open source software community with an absolutely top notch codec comparable to things like H264 and VC1.

More on the World of Transcoding

I got a lot of feedback in regards to my previous blog entry about transcoding applications. Based on that feedback I tested Movic and OGMRip (thanks to Billl and Michael Kanis for those links), both of which had GUI’s which was closer to what I wanted. That said neither of those two applications supported the container format/codec combination I wanted.

So up to this point dvd::rip is still the application that has come the closest to doing what I needed. However it turns out that some of the rips I did using dvd::rip the audio and video got horribly out of sync a bit into the video. Hopefully if we get a GStreamer based application going we will be able to sort such things out as keeping audio and video in sync is among the things we have spent a lot of times on getting right in GStreamer.

People also pointed out other parameters that would be useful for a ripper application which I hadn’t included in my mockup. And while I agree that other parameters can be essential at time I fear that one would quickly end up back in the dvd::rip style GUI if one includes them where there are just a ton of options which for the common user might as well be ancient Egyptian. The reason I wanted a new application was to offer users a more friendly alternative, not to replace dvd::rip as the application of choice for highly technical users.

The world of Transcoding

Spent some time early this week trying to figure out how to get my NTSC DVD’s ripped and transcoded into a format I could store and play on my PS3. My main goal was to keep the AC3 audio intact and use the best video codec possible and at the same time have it working on the PS3. After some trial and error I learned that MPEG PS was the only way to combine AC3 audio and H264 video into a file and have the PS3 be able to read it.

None of the various Linux rippers seemed to support this combination however and trying to use gst-launch I discovered that the mpeg ps muxer from gst-ffmpeg did not seem to work to well.

As part of this process I got reminded of a couple of things. The first being that we really need an relatively commonly used application using GStreamer to test and make sure our muxers and encoders keep working. Pitivi would fit that role, but its a complex application which I think is still some way away from being a tool for everyone. A simple transcoder application would probably be a better choice to get us started. That said looking at the current rippers out there the either are very targeted at a specific target (like Thoggen) or have a GUI which I think is unnecessarily complex for the average user (dvd::rip). I do not consider myself a multimedia novice, but I still only had a vague idea what the various options exposed in dvd::rip would accomplish. I am not saying dvd::rip sucks though, it was in fact the only application I was able to find for Linux which produced files that my PS3 actually recognized (although I had to use ac3 and mpeg4 part 2 in avi to make it happen.) Tried another application called Handbrake, which was fairly easy to operate although only being command line for linux, but the only files it could make that worked was h264 and aac in mp4 which meant I lost surround sound output due to my PS3 being connected by s/pdif to my amplifier.

Mockup of gstreamer transcoder

So thinking about what kind of GUI I thought a transcoder should/could have I took a screenshot of dvd::rip and started modifying it in the Gimp. The result you see above. The idea would be that you select your input source at the top and then choose your target container format. Based on which container you choose the codecs which are supported by that container get ungreyed, while the remaining ones stay grey (unselectable). One are able to query muxers for the codecs they can mux so with the aid of pbutils one should be able to ungrey the codecs dynamically (which is an advantage as muxers could have new mappings added as time goes on.)

Once we have managed to stabilize/improve the muxers and encoders in GStreamer due to this application being tested and bugreported upon we could move this page into a ‘advanced’ tab. The new default view should then be a list of presets for various devices like N810, PS3, PSP, iPod and so on. These presets could then of course in addition to the codec choices also include resizing based on target device.

While there are use cases where one might still want/need a more advanced GUI which need all the options exposed by something like dvd::rip I think for the vast majority of us this application would do the job.

So if anyone out there would be interested in trying to hack up this application using gst-python for instance that would be really cool :)

Back from the yuletide vacation

Spent Yuletide and New Years in Oslo this year with family and friends. Was nice to be back for an extended period of time seeing everyone. The first few days in Oslo was particularly nice as many days of frost had caused all trees to be covered in frost, creating a very scenic experience. Unfortunately the temperature jumped above zero the day before christmas eve and stayed in the single plus digits until the day before I left.

Always nice to fill up with Norwegian yuletide foods like roasted ham, cooked dried smoked lamb and moose casserole. Only cloud somewhat hanging over the celebration this year was the fact that my mother is going in for brain surgery at the end of February. While it is supposedly a relatively routine operation, the fact that they are going into her brain makes it a bit worrisome nonetheless. Might end up taking a few days back in Norway in February to be there for moral support.
Had Jan and Jaime visit Norway for a few days around New Years Eve, had a good time and while the New Years Party was quite low key, it was pleasant and fun. Also since the current Norwegian government believes that anything that people find entertaining and fun should be banned, as some people being happier than others go against their philosophy of equality (and its always easier to make everyone equally unhappy), there was a lot of fireworks on New Years Eve due to this being the last New Years Eve where private airborne fireworks is allowed.

Managed to get a flu a couple of days before my return to Cambridge and due to the plane needing to get de-iced I got delayed with about and hour and a half at least when flying out. Stumbled into the house at 3am this morning, hating the world (and Ryan Air in particular) due to my flue and the long journey.

Brought quite a bit of food from Norway, so I be hosting some dinner parties serving fermented fish, reindeer steak, minced moose and whale meatcakes in the coming weeks.