You are often required to transcode from one format to another. When shooting in consumer AVCHD or professional XDCAM you will need to transcode to a format your video editor (NLE) understands and can work with smoothly. But just as often you’ll need to transcode from your NLE’s format to another for optimised delivery. There are a couple of applications that are specifically developed for this task, and each has its own merits.
Transcoding is changing the format of a clip from one to another. Video transcoding doesn’t decrease image quality, provided that you don’t transcode using lossy codecs in-between. The first rule of thumb therefore is to keep your footage in a lossless format as long as possible, and only transcode with a lossy codec at the end of the editing and/or approval process — when you’re ready to deliver.
The first thing we’ll need to know is the difference between a container, a wrapper and a codec. There’s a lot that is confusing. For example, MPEG-2 is a compression codec for digital video but it is also a container when audio is combined with it. The difference is in the file extension used. When files are contained inside a wrapper, it’s even more confusing. You can then see whether it’s MPEG-2 video with separate AIFF audio or MPEG-2 video stream with an AAC audio element combined, only by looking at the metadata.
So what are containers and wrappers, and how important are they are when encoding for delivery? Containers can hold many different types of elements or codecs. Because of this, one of the important functions of a container is to inform the playback device what type of codec is required to decode the elements within. Containers, therefore, are important in a transcoding workflow for delivery.
Wrappers on the other hand, have been developed to make is easier to exchange video files and the information associated with them between various systems such as your NLE, a video server and some digital VTRs. The metadata carries different information depending on where it is being used. Wrappers are less important for transcoding to an output format, and I will not cover them any further.
Codecs are extremely important for delivery. They are the elements within the containers that define how good or bad your video looks, how big the file is, how good the audio sounds, etc. There are many codecs and we can subdivide them in three general categories for our purpose:
- The camera codec, which usually is tied with a brand and sometimes really is a wrapper (e.g. AVC-Intra and Panasonic, or XDCAM and Sony)
- The codecs used natively by a NLE (e.g. ProRes 422 and 4444 tied to Apple’s Final Cut systems, or DNxHD and Avid’s Media Composer family)
- Codecs for delivery, such as VP8, Flash 8 video (VP6), H.264, and Windows Media Video 9.
The last category is the one we will concentrate on. The first question to ask is whether you can output to one of these delivery codecs right from your NLE, and if that is the best thing to do (what we call “best practice”). The short answer is: “it depends”.
If you are using Apple’s Final Cut , you’ll see an output option that directly uses QuickTime. QuickTime doesn’t offer much in terms of configuration and quality control, and therefore should be avoided. With Final Cut Pro 7, you’ll also have an extra app on your system that takes care of encoding for free. It’s the Compressor application and it can transcode to Apple’s NLE formats, H.264 based formats such as the ones you would use when encoding for Blu-Ray as well as YouTube. While Compressor isn’t bad, it’s only really excellent when transcoding into ProRes, Apple’s own codec.
It’s also not very fast, so if you need to transcode lots of clips, you’ll spend some time waiting. It can run in the background, but if you switch to another app Compressor may become unstable and it will become much slower yet. In short, there’s better software than Compressor. And if you’re a Final Cut Pro X user, you don’t get Compressor for free anymore anyway, so the “free included” argument doesn’t stick.
There is currently one transcoding app that’s included for free with other software, and that’s Adobe’s Media Encoder. It comes in Adobe’s Production and Master Creative Suites, and is also included with the cloud equivalents of these.
Media Encoder CS6 has a lot going for it. For starters, it doesn’t stop at Adobe’s own codecs (which are limited to Flash video), but includes presets for XDCAM, AVC-Intra, and a whole bunch of others. It also has presets for online video and broadcast.
Media Encoder has a few tricks up its sleeve the others don’t know about. For example, you can import an After Effects composition in Media Composer and directly transcode it to a video output format. Of course the app is integrated with Adobe Premiere Pro, from which it will transcode sequences directly.
Media Encoder also allows you to create presets from existing ones. However, the level of customisation is more or less on par with Apple Compressor, which is good for most purposes, but not if you want to squeeze every last drop of quality out of your footage. For example, there’s only one filter in Media Encoder (Gaussian Blur), the H.264 configuration is fairly limited and x264 is nowhere to be found. x264 is the best H.264 codec for delivery to YouTube, Vimeo and online video in general so far. It’s open source and free for personal use but companies that wish to include it in their commercial offerings must pay a license fee.
Only Telestream and Sorenson Media support x264 and only after payment of an additional fee (Telestream Episode Pro/Engine) or included in the price of the app (Sorenson Squeeze 8.5 Pro).
Adobe Media Encoder is an especially good transcoding solution if you don’t need anything else but the presets. It even comes with one for Vimeo, which is the better quality sibling of YouTube.
Professional grade transcoding solutions
If you want complete freedom of choice and configuration and the best possible quality of transcoding, there are two professional grade transcoding applications that matter: Telestream’s Episode and Sorenson Media’s Squeeze. One major advantage of the professional transcoding solutions is that you needn’t worry about containers and wrappers if you don’t want to. The software will deal with this.
Both companies’ offerings exist in several editions, ranging from relatively inexpensive to several thousands of Pounds Sterling worth of transcoding power. Episode and Squeeze come with a large number of supported codecs in the three general categories listed above. Both applications also come with a complete set of filters you can apply in post-post-production. Both come with the ability to set up watched folders so that dropping a clip in such a folder immediately starts the encoding process.
They come with publishing capabilities so that you can set up an encoding workflow in such a way that at the end, the clip is automatically uploaded to an Internet based video service or to a streaming video server such as Akamai or Amazon S3. THey both have the ability to process files using all your processors and processor cores, speeding up the transcoding process to acceptable or even fast speeds.
Squeeze and Episode come with an impressive array of presets and an equally impressive number of parameters that you can configure per supported codec. And the number of codecs included with each is impressive too. In some cases, such as H.264, both apps come with two versions of this codec without you having to buy an add-on. With Squeeze Pro 8.5, you’ll even get the x264 codec thrown in (but at the premium price you pay for this version) for good measure.
Sorenson Media’s Squeeze differs from Telestream’s Episode mainly in the interface department as well as in the main focus of the app. Telestream’s Episode is more targeted at users in the broadcast industry or those who need to transcode several clips a day. Squeeze can’t handle this well unless you buy the server edition, which is quite a bit more expensive than the desktop version.
Episode’s interface is easier for a continuous transcoding setup, and the Engine edition offers clustering. With one license for the Engine app you are allowed to populate other machines on the network with a demo version that will serve only to enable the licensed application performing offloading and load balancing of encoding jobs across these machines/processors.
The downside of the power and completeness of both these transcoding apps is that you will need to learn about codecs and containers if you want to customise presets. “Read the Manual” is not just some free advice here; it’s a necessity. The number of configuration parameters is dazzling, and some parameters may go over your head unless you’re a video geek who handles video formats on a daily basis.
The main benefit is that you can create a preset that really gets you the quality you’re after. When encoding for Vimeo, you can set your parameters exactly as instructed by the Vimeo support pages, but within those settings, you still have a lot of leeway to improve the results. For example, Vimeo advises a bitrate of 5,000 kbps for high definition video. However, if you set your H.264 configuration to the Average Bitrate setting, you’ll need to work with a maximum bitrate setting of approx. 10,000 kbps to get the best results.
Needless to say you can fine-tune other parameters too, and if you don’t know what to expect visually from tuning a parameter, there’s nothing stopping you from experimenting until it looks just right or search for solutions via Google; often pros share their settings on forums. In fact, Sorenson even has a preset exchange where you can find the most exotic configurations saved as a preset you can import in your copy of Squeeze.