If you are compiling the source code yourself, what you need for a bare-bones installation is not much:
If you install a pre-built package like a Redhat or Debian package, it may or may not work depending on what the package builder wrote in as the dependencies!
See Building Transcode for more details on compiling the source, like what all the optional packages are.
See the CVS section at the bottom of this page: Download
See the Signature section at the bottom of this page: General Information As of 0.6.13, this is no longer true
Pre-built packages of some distributions are not complete. This is a general problem. If you want to use the mpeg2enc export module, you will have to compile transcode yourself, or try to find a complete rpm on the net. (ems)
No, transcode has its own library for writing AVI files. The avifile library is used to enable support for win32 binary codecs, but libavcodec from the ffmpeg project has a free implementation for most of these codecs anyway. (tibit)
This is not necessarily a bad thing. Transcode supports a lot of optional libraries & binaries that provide the same codec. Starting with version 0.6.13, the use of most of the optional packages is disabled, meaning configure won't even bother looking to see if you have the package installed. To make use of it, add the appropriate --enable-XXXX option when running configure. If you are sure you have a specific package installed and did enable the use of it, and transcode does not find it, have a look at config.log to find out the reason. Most likely you will just need to explicitly tell configure where to find the library/include files by adding the appropriate --with-XXXX=/path/to/XXXX option.
These modules use the ImageMagick library from http://www.imagemagick.org
Some Linux distributions ship an ImageMagick-devel package which requires a libbz2.so shared object or a bzip2-devel package. Check yourconfig.log for details.
For german reading users here is a link http://linuxwiki.de/DvdAuthoring (felix)
The difference between -j and -Y is only the order that transcode does the clipping. In the manual page we find that the video frame operations ordering is fixed:
"-j -I -X -B -Z -Y -r -z -l -k -K -G -C"
(executed from left to right).
So if one needs to do frame clipping and resizing, in a specific order, he can choose the apropriate transcode options. For instance, if one wants to clip and then resize the video frame, in this order, he can use -j (clip) and -B (resize). In this case -Y and -B would not work, as the operation -Y is done after -B.
There are two other options for clipping:
--pre_clip (executed before -j) and --post_clip (executed after -Y) (ems)
The ffmpeg export module uses this file at run-time to allow someone to fine-tune its use. Really, ffmpeg just reads it all in, sets the parameters as specified, then passes them all to the running codec in libavcodec. transcode also uses libavcodec, but supplies the parameters to it from a combination of resources: defaults, profiles, command line options, and now also from parameters listed in the ffmpeg.cfg file. Because transcode has to play by different rules, not all of the parameters you specify in ffmpeg.cfg will be used...even if ffmpeg uses them.
The parameters themselves are not really that well advertised. Mplayer also uses libavcodec (but it doesn't use an ffmpeg.cfg file, rather it takes all the fine-tuning parameters on command line) and its manpage has pretty good documentation on each parameter. See at the mplayer manpage (mencoder specific options section) on the web at [mplayerhq.hu], and scroll down to "lavc". I remind you that not all parameters you see there are supported by transcode.
By the way, if you're just going to encode to (S)VCD or DVD with the ffmpeg module, you should use the profile support. Also, in transcode you can see what all the supported options are, and what they are set to, by adding -q2 to the command line.
(Partial answer) In this form, your question cannot easily be answered. You're talking of container formats (avi, mpeg) while you probably mean video and audio formats.
A container is just a format designed to hold a combination of video and audio (and sometimes more, like sub-title) data in such a way that a player application can read it reliably and play it all back properly (that means with video and audio synchronized).
Examples of container formats are:
Examples of video formats are:
Examples of audio formats are:
Most of these video and audio formats compress the data in some way. Any program that works with these video or audio formats needs to work with the appropriate COmpressing/DECompressing library (shortened to just CODEC). It is common to use the word codec in place of audio and/or video format because it's easier to say and people usually understand that you need that particular codec to interpret the material.
Typically you will find that avi files contain mpeg4 video content and mp3 audio content, but that is just an example. Use tcprobe to find out what's inside a particular container.
With this information you should be able to rephrase your question a get a proper answer ;-)
Also see, for example [AviToVob]
Once you have separated (using tcextract) the audio and the video, get the file sizes of the audio and video files. If you are burning to a DVD5, the maximum image size is 4700000000. So the following equation will give you a 'best fit' number. 1.04 is a fudge factor to leave space for the file system and other overhead.
If you are including more that one audio stream or a subtitle stream, those filesizes must also be subtracted from the maximum dvd image size.
requant_factor = (video_size / (dvdmax_size - audio_size)) * 1.04; tcrequant -i ofile.m2v -o movie.m2v -f requant_factor
First try using transcode with a DVD profile and add -q 2 to the command line. All the parameters and their values will be listed. Take what you need from that list and put it in your own ffmpeg.cfg file. An example ffmpeg.cfg is here:
If ratecontrol still is insufficient, try adding:
(try lower lmax if still not right) (ems).
A: Suppose you want the 2nd audio stream from title #2:
transcode -x null,dvd \
-i /dev/dvd \
-a 1 \
-y wav \
-J resample \
-E 44100 \
The resampling is needed since DVD audio is usually sampled at 48 kHz.
A: Anything targeting DVD (NTSC or PAL) will ultimately have to pass through the program dvdauthor.
Upgrade to the most recent release (1.0.x) or the CVS version. Old versions of transcode are not supported.
In the Download section there is a description how to obtain transcode from CVS.
See the INSTALL file.
Join the transcode-users mailing list (see the Support section on the Main Page) and check the archive to see if your problem has been discussed at the mailing list before.
If your problem is that transcode "hangs" immediately, or even after some time, you may be experiencing the venerable old thread-version problem.
If running transcode this way: "env LD_ASSUME_KERNEL=2.4.0 transcode ..." fixes the problem, then it's thread version issues, not transcode, that's at fault.
See Reporting Problems. If your problem is that transcode crashes (with a "Segmentation fault" or similar), also see Reporting Crashes and follow the instructions carefully. You can also take a look at Bug Showcase to see if your problem is a known one.
The ffmpeg package is needed for its superb set of codecs, which are bundled inside one of its libraries: libavcodec (also nicknamed as lavc). Up until recently the API for this library was changing frequently enough to cause headaches for developers of other programs who used it. It was easier to just pick one version of the library, copy it to the package that's using it, and statically link it right into the program. Because each project used a different version of the library, anyone wanting to compile all of these packages had to deal with all these different versions.
But now the API has settled down and become stable, so it's safe to link to the library dynamically. Starting with version 0.6.13, transcode no longer ships with libavcodec, nor will accept it as a static library. Transcode needs to have it in shared (aka dynamic) library form. When you compile ffmpeg you have to build the shared libraries by passing the --enable-shared to its configure script.
This is usually because the red and blue components of the image are being swapped. Transcode uses the de facto standards for component order (R-G-B for RGB mode, Y-Cb-Cr for YUV mode), but some external libraries use different orders for various reasons; for example, on little-endian systems (like the Intel x86 CPU family) some RGB-based routines use B-G-R order instead. Transcode tries to handle all of these differences, but if it fails, you may end up with the purple-face problem.
To fix it, add -k to the transcode command line.
Add -z to the transcode command line.
You have probably installed transcode from source and you don't have the libdvdread package installed (including -devel if you're working with pre-built packages), so transcode did not compile in the support for it.
See previous question. You need to have a recent version of lame installed (including -devel if you're working with pre-built packages).
This message comes from the mp3 decoder (lame). It means that one or more previous mp3 chunks are missing. mp3 uses interdependent chunks, so if any chunks are missing the other chunks that depend on it couldn't be decoded properly. This usually happens when the file was split at some time or had its beginning cut off. There is not much you can do about it.
Transcode supports two DivX encoder modules. One is divx4 and the other is divx5. Please note that the `4' in divx_4_linux only stands for the word "for", it does not denote the version number. Use -y divx4 if you have a really old version of the divx4linux libraries installed. The divx5 export module depends on the divx4linux libraries you had installed when you compiled transcode. The developers from DivX.com changed their API in a non-backwards incompatible way causing -y divx5 to either supports the new API or the old one. They are mutually exclusive. If you have problems with -y divx4 try -y divx5.
Please note that the current version of the divx4linux libraries available from http://www.divx.com have a bug which may cause a segfault on Pentium 4 systems. There is another bug in older versions of divx4linux which results in a crash when writing data to a FAT32 windows partition. See http://www.exit1.org/dvdrip/doc/faq.cipp#faq11 for details.
Also note that DivX is really crap. You can make DivX-alike files (mpeg4) with the ffmpeg and xvid export modules. We don't support DivX ;^)
The best place to put these libraries is the transcode libdir (/usr/local/lib/transcode/ by default). You can find out the libdir of your transcode installation by executing tcmodinfo -p. Transcode will look into this libdir first when searching for a library. When that fails, transcode will look at the standard library locations. You should make sure that the location of the library is in /etc/ld.so.conf and don't forget to run ldconfig afterwards. You do not need to put the transcode libdir into the dlloader config file.
First, concatenate the VOB files into a single VOB file (called all.vob here). Next, use mencoder to generate an AVI file (and a fixed index, which really fixes your problem):
mencoder all.vob -o all.avi -ovc copy -oac copy
Then process the AVI file with transcode. If mencoder crashes (as it did on my system), do it in two pieces like this:
mencoder all.vob -o all_noaudio.avi -ovc copy -nosound
tcextract -i all.vob -x mp3 -a 0 > all_audio.mp3
which will give you an AVI without sound, and an MP3 with all the sound. Transcode that (I use xvid for video output module, you can use whatever you want):
transcode -i all_noaudio.avi -x mpeg2,null -y xvid,null -o transcoded_noaudio.avi
and finally merge audio and video with
avimerge -i all_noaudio.avi -p all_audio.mp3 -o all.avi
This can probably be improved; I was happy enough that it worked. (meier)
Raw DV is a container format that requires both a video stream and and audio stream. The dvraw export module doesn't write any data until it has received both a video frame and enough audio for that frame, so if your input doesn't have any audio, no frames will get written to the output file. In order to force the dvraw module to output frames, you have to tell transcode to provide a dummy audio stream. This can be done with (using the im import module as an example):
transcode -x im,null -y dvraw
By explicitly adding a ,null to the -x option, transcode knows that it needs to generate dummy audio data for the dvraw module. (Do not add a ,null to the -y option, however; this disables all audio output and leaves you back where you started!)
Use -x mpeg2 in the command line:
transcode -i data.mpg -x mpeg2 -o outfile ...