The Transcoder API is made available by launching the Transcoder AMI in EC2. It can trim, sequence and mix media inputs together into video and other types of output - even adding custom effects, titling and transitions in the process.
The resultant output files are then transferred to a web server or similar service like S3. Fine grained control over transfer requests is provided when retrieving and storing assets, to facilitate a wide range of authentication schemes. This same flexible transfer mechanism is used for callback notifications, which can be triggered at all relevant junctures during processing.
Basic Request Structure
Each request starts with the root MovieMasher tag which contains a single Job tag describing all the transcoding and file transfer operations to perform, plus Authentication and Signature tags that together authorize the request.
Learn more in Authenticating Requests.
The Job tag contains one or more
Input Tags defining media resources to incorporate into the transcoding, plus one or
more Output Tags defining media resources to generate from it and CGI Callbacks to trigger at various junctures in the processing.
The Transfer Tags describe
each request that's made to exchange resources with external servers, and can appear within Input, Output or Job tags to different effect.
Conceptually, the Transcoder joins all the inputs together to form a single intermediate file, which is then encoded into each of the formats specified by the outputs.
Standard input types include raw assets (video, audio, images), but also 'mash' XML data (generated programmatically or by the editor) to manifest custom effects, compositing, titling, transitions, time shifting, themes, etcetera. Learn more in Input Tags.
Standard output types include the raw assets, but also audio waveform graphics, image sequences, and metadata text. Many type specific options are supported for fine grained control of codecs and formats used during the encoding process. Learn more in Output Tags.
File Transfers and Callback Requests
Each individual input and output file can reside on different servers, even ones using different authentication mechanisms. Output files can be sent together as one request or in separate POST/PUT requests, with optional archiving. Both kinds of transfer requests can make use of custom GET/POST variables and even HTTP headers - all of which support runtime substitution of job variables, including auto-generation of signatures using your preinstalled private keys (so they don't have to be passed to the API itself).
Learn more in Transfer Tags.
The same flexible transfer mechanism is used for CGI callbacks which can be triggered at the start and end of processing, as well as at customizable intervals in between. In addition to control over HTTP headers and GET/POST variables, the request body itself is fully customizable, with support for runtime substitution of essential job properties including any problems or warnings encountered during encoding.
Learn more in Callbacks.