On Tue, 2009-06-23 at 19:06 +0100, Christian Fredrik Kalager Schaller wrote: > Hi, Hey, > I have been working for a while on defining GStreamer level presets > based on the current plugin level preset system. The general document > for those presets can be found here: > http://gstreamer.freedesktop.org/wiki/PresetDesign This looks pretty good in my opinion, as discussed on IRC. > My current set of .prs files can be found here: > http://cgit.freedesktop.org/~uraeus/transmageddon/tree/presets I think the .prs files are also looking good. As discussed before, I think it would be good to use the textual names rather than the numerical ones when available, e.g. pass=pass1 instead of pass=17 because it isn't easy to guess what 17 stands for. I also think that any quality based setting needs to have the pass set to quantizer or quality mode, e.g. for x264enc we want the Normal Quality preset to include e.g. pass=qual quantizer=21 or something similar. The Main Profile could then be used to restrict the settings and the Pass 1 profile could be used to make it an average bitrate-based encode rather than a quality one, which is useful for many devices. So for example: Load Normal Quality * pass=qual * quantizer=21 * dct8x8=true * ref=3 * bframes=3 * me=umh * subme=6 * threads=0 Load Baseline Profile * dct8x8=false * bframes=0 * cabac=false Load Pass 1 * pass=pass1 Final settings on the element (x264enc Normal Quality, Baseline Profile, Pass 1): * pass=pass1 * quantizer=21 (unused) * dct8x8=false * ref=3 * bframes=0 * cabac=false * me=umh * subme=6 * threads=0 After this you are responsible for setting a sensible bitrate based on either the output dimensions/framerate or the device you are encoding to (which may also need vbv limits like the iPod). So the basic idea is to have the quality presets set the maximum possible quality and have other presets based on profiles or multi-pass to restrict those settings. This means that of course the order of loading presets matters and should be communicated to users and developers in some sane way. Some other random thoughts that I had while we talked via IRC: * DivX Home Theater NTSC/PAL profiles should be available for MPEG4 ASP encoders (xvid, ffenc_mpeg4, etc) * xvidenc really needs to output video/mpeg4 or something so that is shows up as an encoder if you request MPEG4 video Since you mentioned the device profiles are still a work in progress I won't talk about them here, other than to say that they do still need some work (I'm modifying the Arista preset format somewhat to accommodate things like subtitle rendering for various devices). I guess this will all be discussed at some point once the presets are in GStreamer trunk. Take care, -- Daniel G. Taylor http://programmer-art.org
Attachment:
signature.asc
Description: This is a digitally signed message part