Clone wiki

transcode / Transcode Command Line Options

Transcode accepts a lot of commandline options, which are passed on to the various tc* binaries while doing its work.
(check the man pages of the other tc* binaries if an option's explanation isn't clearly described here) To see differences in commandline options between releases, see commandline options changes

Default values are shown between square brackets and in [green].

Command line in principle

This is a basic command line for most uses

transcode -i sourcevideo \ -p sourceaudio \ -o destvideo \ -x vmod[,amod] \ -y vmod[,amod] \ -J filter ...

The -i option specifies the filename of the source video.
The -p option comes in handy if the video file contains no audio stream, or if you prefer to use a separate audiofile.
The -o option sets the name of the output file. If omitted, transcode will encode to '/dev/null'.
The -x option sets the video[,audio] import modules. If omitted, transcode will probe for appropriate import modules.
The -y option sets the video[,audio] export modules. If omitted, transcode will ignore the -o option and encode to '/dev/null'.
The -J option is for filter plugins.

The order you use to specify the options is not important.
( also available: the man page for transcode)


-i name input file|directory|device|mountpoint which can be an .avi, .mkv, .ogm, .vob, .mpg, a dvd device... nearly any type of video/audio container, device or file type.

-H n (0=off) [1] auto-probe n MB of source file specified using the -i option. Setting to '0' will prevent the auto-probe from overriding geometry specified by the -g option, for example. if you use -H 0 you will need to set --export_fps and --export_asr and -e manually since they will otherwise use the defaults, which may not be correct.

-p file [off] input seperate audio file (overriding the audio stream, if any, in the file specified by the -i option.

-x vmod[,amod] [null] video[,audio] import modules. -x mplayer,mplayer will, for example, use mplayer as the input filter, which can handle nearly any audio/video format in existence. all mplayer commandline options are supported, making it possible to hardsub dumped vobsub .sub and .idx files into the video stream: -x mplayer="-vobsub $filename -vobsubid 0",null note that the filename should be the base filename exclusive of the extension.

-a a[,v] [0,0] extract audio[,video] track N,N.

--dvd_access_delay N [3] delay DVD access by N seconds. Used to synchronize import from DVD or vncrec ("simple VNC session recorder and player") . Mainly vncrec needs some seconds to start up and this is the option to delay transcode.


-e r[,b[,c]] [48000,16,2] PCM audio input stream parameters. Sometimes it is necessary to set this explicitly for output audio and video to be synchronized correctly.

-E r[,b[,c]] [as input] audio output samplerate, bits, channels.

-n 0xnn [0x2000] import audio format id. 0x2000 is the hex-value for the 'AC3' codec. 0x55 is the hex value for the 'mp3 (MPEG Layer 3)' codec. 0x1 is the hex value for the 'PCM Wav' codec.

-N 0xnn [0x55] export audio format id. 0x2000 is the hex-value for the 'AC3' codec. 0x55 is the hex value for the 'mp3 (MPEG Layer 3)' codec. 0x1 is the hex value for the 'PCM Wav' codec.

-b b[,v[,q[,m]]] [128,0,5,0] audio encoder bitrate kBits/s[,vbr[,quality[,mode]]] explain

--no_audio_adjust [off] disable audio frame sample adjustment explain

--no_bitreservoir [off] disable lame bitreservoir. why? This makes cutting of streams easier because the frames have no back references so all frames are independent from previous ones. (The bitreservoir allows a frame to use not used bits in the previous frame)

--lame_preset name[,fast] [off] use lame preset with name.


-g Cb/Cr [720x576] RGB video stream frame size.

--import_asr C [autodetect] set import display aspect ratio code, where C can be: 1 for 1:1 aspect ratio. 2 for 4:3 aspect ratio. 3 for 16:9 aspect ratio. 4 for 2.21:1 aspect ratio. if C is not specified, transcode will attempt to autodetect the input aspect ratio.

--export_asr C [as input] set export display aspect ratio code, where C can be: 1 for 1:1 aspect ratio. 2 for 4:3 aspect ratio. 3 for 16:9 aspect ratio. 4 for 2.21:1 aspect ratio. if C is not specified, transcode will attempt to autodetect and keep the input aspect ratio.

--export_par N,D [autodetect] set export pixel aspect ratio. I think this is the ratio of the input/output display aspect ratios.

--keep_asr [off] try to keep aspect ratio (only with -Z)

-f rate[,frc] [25.000,0] input video frame rate in fps. If frc (frame rate code, values [0..15]) is specified, transcode will calculate the precise frames per second internally.

--export_fps f[,c] [as input] output video frame rate[,code].

--export_frc F [as input] set export frame rate code F.

--hard_fps [off] disable smooth dropping (for variable fps clips)


-o file output file name base

-m file [off] write audio stream to separate file.

-y vmod[,amod] [null] video[,audio] export modules.

-F codec [module dependent] encoder parameter strings. the optional parameters to the encoders can be rather occult.

--avi_limit N [2048] split output AVI file after N MB.

--avi_comments F [off] Read AVI header comments from file F (see transcode(1))

Audio effects

-d [off] swap bytes in audio stream.

-s g[,c[,f[,r]]] [off,1,1,1] increase volume by gain,[center,front,rear]


-u m[,n] [10,1] use m framebuffer[,n threads] for AV processing should n threads be == to number of cpu's?

-A [off] use AC3 as internal audio codec. what does this mean?

-V [deprecated] use YV12/I420/YUV420 as internal video format. this is now the default.

--use_rgb [off] use RGB as internal video format. when is this appropriate?

--uyvy [off] use UYVY/YUV422 as internal video format.

-J f1[,f2[,...]] [off] apply external filter plugins

-P flag [0] pass-through flag (0=off|1=V|2=A|3=A+V) turns off decoding and encoding of audio and/or video stream

A/V offset

-D num [0] sync video start with audio frame num.

--av_fine_ms t [autodetect] AV fine-tuning shift t in millisecs.

Sync modes

-M mode [1] demuxer PES AV sync mode (0=off|1=PTS only|2=full)

-O [off] flush lame mp3 buffer on encoder stop


-r n[,m] [off] reduce video height/width by n[,m]

-B n[,m[,M]] [off,32] resize to height-n*M rows [,width-m*M] columns

-X n[,m[,M]] [off,32] resize to height+n*M rows [,width+m*M] columns

-Z Cb/Cr[,fast] [off,notfast] resize to w columns, h rows with filtering . if you notice moire effects when using "fast", disable the ",fast" option and add the option "--zoom_filter Mitchell". moire effects will manifest as faint vertical bars throughout the image.

--zoom_filter str [Lanczos3] use filter string for video resampling -Z . the Mitchell resampling filter is a good choice when Lanczos3 produces noticeable artifacts (moire bars in image or "teeth" appearing on the bottom of horizontal lines).


-C mode [off] enable anti-aliasing mode (1-3) 1 de-interlace effects only 2 resize effects only 3 process full frame (slow)

--antialias_para w,b [0.333,0.500] center pixel weight and xy bias explain


-I mode [off] enable de-interlacing mode (1-5) explain

Video effects

-K [off] enable b/w mode

-G val [off] gamma correction (0.0-10.0) note that when this option is used, there is no message about it generated in the default transcode stdio. when source video has a washed-out appearance, -G 0.9 is a good starting point.

-z [off] flip video frame upside down. used to correct a surprisingly common encoding artifact.

-l [off] mirror video frame

-k [off] swap red/blue (Cb/Cr) in video frame. used to correct a surprisingly common encoding artifact.

Clipping Options

These require some explanantion!

-j t[,l[,b[,r]]] [off] select frame region by clipping border. specifying negative values will add an external black border. for example, NTSC safe action, safe title, and overscan issues can be ameliorated by using -j -16,-32,-16,-32, making subtitles that are too close to the edges properly visible. -j values also distort the aspect ratio of the output image, so they can be used to correct anamorphic distortion in source material by applying relatively positive top and bottom values compared to left and right values.

-Y t[,l[,b[,r]]] [off] select (encoder) frame region by clipping border

--pre_clip t[,l[,b[,r]]] [off] select initial frame region by clipping border

--post_clip t[,l[,b[,r]]] [off] select final frame region by clipping border


-w b[,k[,c]] [1800,250,100] encoder bitrate[,keyframes[,crispness]] note that 'keyframes' is often referred to as GOP size. no satisfactory explanation of crispness has been provided, but it is probably a no-op.

--video_max_bitrate [same as -w] maximum bitrate when encoding variable bitrate MPEG-2 streams [same as -w]. I thought -w was target (something like average) bitrate?

-R n[,f1[,f2]] [0,divx4,log,pcm.log] enable multi-pass encoding (0-3)

-Q n[,m] [5,5] encoding[,decoding] quality (0=fastest 5=best)

--divx_quant n[,m] [2,31] min,max divx encoder min/max quantizer

--divx_rc p,rp,rr [2000,10,20] divx encoder rate control parameter

--divx_vbv_prof N [3] divx5 encoder VBV profile (0=free 5=hiqhq)

--divx_vbv br,sz,oc [10000,192,36864] divx5 encoder VBV params (bitrate,size,occup.) explain

Range control

-c f1-f2[,f3-f4] [all] encode only f1-f2[,f3-f4] (frames or HH:MM:SS)

-t n,base [off] split output to base[1-n].avi with n frames

--dir_mode base [off] process directory contents to base-XXX.avi

--frame_interval N [1] select only every Nth frame to be exported


-U base [off] process DVD in chapter mode to base-chXXX.avi

-T t[,c[,d][,a]] [1,1,1] select DVD title[,chapter(s)[,angle]]

Cluster mode

-W n,m[,file] [off] autosplit and process part n of m (VOB only)

--cluster_percentage [off] use percentage mode for cluster encoding -W

--cluster_chunks a-b [off] process chunk range instead of selected chunk

-S unit[,s1-s2] [0,all] process program stream unit[,s1-s2] sequences

-L n [0] seek to VOB stream offset nx2kB


--import_v4l n[,id] [0] channel number and station number or name


--pulldown [off] set MPEG 3:2 pulldown flags on export

--encode_fields [off] enable field based encoding (if supported) the dv to dvd howto says: --encode_fields b tells transcode that the DV material is "bottom field first". and this seems to be true for all dv.

PSU mode

--nav_seek file [off] use VOB navigation file

--psu_mode [off] process VOB in PSU, -o is a filemask incl. %d ???

--psu_chunks a-b [all] process only selected units a-b for PSU mode

--no_split [off] encode to single file in chapter/psu mode

--ts_pid 0xnn [0] transport video stream pid ???


--a52_drc_off [enabled] disable liba52 dynamic range compression

--a52_demux [off] demux AC3/A52 to separate channels

--a52_dolby_off [enabled] disable liba52 dolby surround explain

Internal flags

--print_status N[,r] [1,1] print status every N frames / use CR or NL settings of 100-500 are commonly used.

--progress_off [off] disable progress meter status line

--color N [1] enable/disable transcode coloured output. Recognized values are '0' (disable coloured output) and '1' (default, enable coloured output). Coloured output will be automatically switched to off if stdout/stderr is redirected on a file.

--write_pid file [off] write pid of signal thread to "file"

--nice N [off] set niceness to N note that this will not slow down processing significantly unless machine is highly loaded. I have never seen a problem using --nice 20

--accel type [autodetect] enforce IA32/AMD64 acceleration for type

--socket file [none] socket file for run-time control

--dv_yuy2_mode [off] libdv YUY2 mode (default is I420)

--config_dir dir [off] Assume config files are in this dir.

--ext video,audio [.avi,.mp3] filename extension for output files.

--export_prof string [none] Export profile {vcd, svcd, dvd, dvd-pal, dvd-ntsc} Any of the values implicitly set by the profile may be overridden by explicitly setting them on the command line or via an external config file where applicable.


-q level [1] verbosity (0=quiet,1=info,2=debug)

-h print usage summary

-v print version