Re: GStreamer presets (feedback requested)



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



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]