How to do advanced settings in Transmageddon
Transmageddon is great if you have basic transcoding needs or want to use one of the bundled device profiles, but what
do you do if you need to tweak the output generated by Transmageddon further?
Well the good thing is that you can actually quite easily make Transmageddon output almost any kind of file you want,
including formats not even listed in the Transmageddon user interface. The way to do this is to create a custom profile
that is set to generate exactly the kind of file you need.
Below is an example of a profile file. You can look at all of the bundled ones for more information, they are most likely installed into '/usr/share/transmageddon/profiles on your system'.
<description>Profile for Apple iPod Nano</description>
<name>audio/mpeg,mpegversion=4, base-profile=lc, rate=44100</name>
The 'complex' part of the code above is figuring out what to put in there to describe the media files.
In GStreamer there is this concept of 'caps' which is a format for describing a given media format/file.
So in the example above, we want a Quicktime container. As you can see there is a 'variant=apple' statement
there, which means you specifically want Quicktime and not one of the two other major variations of that
format. If you wanted a MP4 container instead, you would change the above to 'variant=iso' and if you wanted
a 3GPP file you would change it to 'variant=3gp'.
For the audio you see 'audio/mpeg,mpegversion=4, base-profile=lc, rate=44100'. This means we want an MPEG4 audio stream, most commonly known as AAC. We want to use the 'low complexity' profile which is a variation of AAC, and we want the audio to have an bitrate of 44100. For video we want H264, using the constrained-baseline profile. The 'passes' tag is used to enable multipass encoding. You can set this value to 0, 2 or 3. 0 is the standard, which means no multipass encoding. 2 means 2-pass encoding and 3 means 3 pass encoding. As for pixel aspect ratio, if you just want to keep the ratio of the incoming file, keep that value at 0/0. If you want to ensure all generated files have square pixes you can set it to 1/1.
Be aware that the 'icon' field in the XML is not actually used by Transmageddon currently, so you don't need to worry about adding a image file.
If you are uncertain about how to compose a description of a given media format there is a command line tool called 'gst-inspect-1.0' which is very handy as it lets you see what format the encoder you want to use needs. And you are unsure about what plugin you want to use you can use the 'gst-inspect-1.0|grep speex' command, which will let you which plugins you have available
on your system to deal with the Speex audio codec. From running that grep you will see that the Speex encoder is called 'speexenc'. So to get the full details of speexenc you do 'gst-inspect-1.0 speexenc'. The important section in what you get returned here is the SRC template section, which for speexenc look like this:
SRC template: 'src'
rate: [ 6000, 48000 ]
channels: [ 1, 2 ]
What that tells you is that the 'caps' name for Speex is 'audio/x-speex'. There are no profiles or other things that needs setting for speex, you just need to choose a bitrate between 6000 and 48000 and decide how many audio channels you want (1 is mono, 2 is stereo). With this information you should be able to easily modify your profile file to use Speex for audio.
To make your new profile available in Transmageddon just drop the file into $HOME/.config/transmageddon where $HOME is of course your user home directory. Once the file it is there it should appear in the presets drop down box inside Transmageddon.