HandBrake custom presets

I have received some requests to support custom presets in addition to HandBrake's predefined ones. I have thought about that, and looked into the source code of HandBrake. First: it definitely does make sense to support custom presets. I have not dared myself to modify the predefined presets, but I can imagine how annoying it would be for somebody who has done that, and has now the "perfect preset", not being able to use it.

From a GUI perspective, I don't think there is any need to go beyond what HandBrake already does very well, so the idea is simply to read the presets stored by HandBrake, and show them in the list, in addition to the predefined ones. In brief, you would continue to design and tweak your customized presets from HandBrake, and those would be visible and usable by HandBrakeBatch. No worries if you have not installed and you don't want to install HandBrake, HandBrakeBatch would still allow you to use the predefined presets.

From a development perspective, some work needs to be done, as the representation of a preset is very different from what HandBrakeCLI (the command-line tool that HandBrakeBatch uses) expects. The good news is that somebody in the HandBrake team has already done this; the bad news is that it is written in ruby… Don't misunderstand me, I do love ruby (to give you proof, I even have recently attended thereddotrubyconf, and it was a great experience), but I think MacRuby is not mature enough for production. What I don't like is that to keep the code in ruby, I would have to include the entire MacRuby platform in the application bundle, which would make it larger than 50MB. Not to mention the trouble of interfacing Objective-C code with ruby code (maybe this is very easy, but I have no intentions of finding it out…). Conclusion is that I need to convert some 1,200 lines of ruby in Objective-C; nothing too daunting, probably just some hours of work as soon as I have found the right motivation.

Anyway, I hope to release HandBrakeBatch 1.1 soon, which will be able to natively read and interpret all your custom presets. Don't hesitate to leave a comment here if you find this useful, it will contribute to my motivation! ;-)