Any task or chore is better and more effectively done with the appropriate tool. Transcode is a suite of the effective and appropriate tools for transcoding and converting audio and video files. With Transcode, you will have the ability to encode and decode whichever files you want.
There are modules that handle encoding and decoding. Import modules feed raw audio/video files into the transcode, while export modules encode frames. These are the tools you’ll be equipped with by using Transcode to handle your audio/video files.
Transcode can run on Unix-like operating systems like Linux, MacOSX, and BSD.
In transcoding, you will be working with import and export modules. Import modules handle whichever audio/video files are in the command line. The transcode will be able to detect which codecs are in the audio/video file. However, if the detection fails, you can add command line options. You can simply type in “tcprobe -i yourfile” to find out which codecs are in the file. There are audio, video, and audio and video import modules available.
There are also are audio, video, and audio and video export modules available for use. There is also a document on how to write export modules for transcoding.
Audio and Video Formats
There are a number of audio and video formats out there, and these formats often dictate whether a file is playable on certain programs and platforms or not. The format an audio/video file comes in has to be compatible with the playback software you’re using. By transcoding codecs, you can convert audio/video files into another format whenever necessary.
MPEG-1/2, MPEG-4(-part 3), Quicktime/MPEG-PS (decode only), MPEG-1-layer-1/2/3 audio, and AC3 audio are just some of the formats that Transcode is capable of handling. Transcode is also able to import DVDs on-the-fly as well record from Video4Linux devices.
If you want to do some additional processing on your audio/video files, you won’t have to switch programs from Transcode. You can install additional filter plugins if you need them. You will then be able to handle video frames, process audio, adjust color, and other pre- or post-processing adjustments.
With audio filters, you can do things like normalize volume, skip over certain audio frames based on noise levels, and copy an audio channel to another. Video filters, meanwhile, enable you to detect interlace and deinterlace. Audio/video filters allow you to select particular frames for filtering.
How Transcode Works
So, in general, how does Transcode work? The modules discussed above feed Transcode with raw files up for encoding or decoding. Import modules used for decoding are loaded with dlopen system call, then tasked with starting the raw media file streams either directly or through the popen system call. The transcoding process then starts off a series of audio/video frame manipulations. However, you also have the choice of allowing a pass-through of raw frame data.
Export modules used for encoding are also loaded through the dlopen system call. Once you select the relevant frames, the encoder loop can start.
Frequently Asked Questions
As expected, there are a few basic and frequently asked questions about Transcode. One is about which packages are needed to run Transcode. If you are the one compiling the source code, these are all you need: (1) libz and libm, which are already available in most operating systems, and the latest FFmpeg >= 0.4.9-pre1 release. Pre-built packages (like Redhat or Debian packages) may be a little more complicated to handle, because you’ll have to consider the dependencies the package builder wrote in.
A document guiding users on how to build Transcode is also available.
Say you’ve already successfully installed Transcode. However, you are unable to run it successfully, and it dies with a message saying that you need an export module called export_mp2enc.so (or something similar). The two ways around this are either compiling the transcode yourself, or finding a complete rpm yourself on the Internet.
Another problem is getting the import modules import_im.so and import_imlist.so to work, which can be solved by obtaining the ImageMagick library, which you can get from www.imagemagick.org. If this doesn’t solve the problem, you can check your config.log. You might need a libbz2.so shared object or a bzip2-devel package to obtain the modules.
You will eventually see a number of transcoding options once you get started. Many users ask what the difference between the options -j and -Y is. The answer is simple and easy to tell: it is simply their place in the order in which the transcode does the clipping. Here is the order: -j -I -X -B -Z -Y -r -z -l -k -K -G -C. When clipping frames or resizing, you can choose transcoding options based on the order in which you want to do those two tasks.
There are many other questions pertaining to usage, so it might be best to see them for yourself to get the full scope.
A number of other problems can arise during transcoding. For one thing, you must have the latest release (1.0.x) or the CVS versions, as older versions are no longer supported. If you want to obtain transcode from CVS, you can visit http://cvs.exit1.org. Check out the INSTALL file, which can guide you through the installation process. If the transcode hangs during use, you can check out http://people.redhat.com/drepper/assumekernel.html, which can help you with troubleshooting what is actually a thread version issue and not actually a transcode problem.