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.
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 :)