Song rendering

From Buzztrax

Jump to: navigation, search

Right now we render songs by using some hard-coded pipelines. This lacks usabillity regarding the availabillity of the elements and there is no way to set encoding parameters like the quality.

gnome audio profiles

Gnome-media provides some gstreamer pipelines in gconf together with a description and a name. They can be edited via gnome-audio-profiles-properties. Some links:

Unfortunately they have some disadvantages:

  • gconf dependency (even though they aren't settings)
  • gnome-media dependency
  • no relation to what gst elements are realy available
  • no encoder settings

There is some discussion in bugzilla about a future version.

gstreamer audio profiles

IMHO the encoder-profile feature should be provided by the gst-registry. Muxer (oggmux, avimux,mpegmux,wavenc) elements could register supported profiles, as they know what possible codecs they can handle inside the container format. When the registry changes they can only those formats which are available.


  • human readable name for the format
  • description
  • partial pipeline
  • user parameters
  • file extension

One example would be:

name:     OGG Vorbis, CD Quality, lossy
desc:     Used for converting to CD-quality audio, but with a lossy compression codec. Use this for CD extraction and radio recordings.
pipeline: audio/x-raw-float,rate=44100,channels=2 ! vorbisenc name=enc quality=0.5 ! oggmux
params:   enc:quality
ext:      ogg


  • how to figure out about the parameters ('name=enc' cannot be guaranteed to be unique)
  • should we have a distintion between standart and advanced parameters?
  • how to handle dynamic pipeline configs (e.g. changing one param requires additional elements)

gstreamer encodebin

EncodeBin will setup the encoding pipeline for us. The elements are picked according to an GstEncodingProfile. We nned to setup profiles for the format we want to produce (it seems).


Support Us


GStreamer Logo
Become a Friend of GNOME
Linux Sound Logo
GNU Library Public Licence
GNU Free Documentation License 1.2