Versatile dvd ripper and video transcoder (command line)
Syntax: HandBrakeCLI [options] -i <device> -o <file>
### General Handbrake Options
-h, --help
Print help
-u, --update
Check for updates and exit
-v, --verbose <#>
Be verbose (optional argument: logging level)
-Z. --preset <string>
Use a built-in preset. Capitalization matters, and if the preset name has spaces, surround it with double quotation marks
-z, --preset-list
See a list of available built-in presets
--no-dvdnav
Do not use dvdnav for reading DVDs (experimental, enabled by default for testing)
### Source Options
-i, --input <string>
Set input device
-t, --title <number>
Select a title to encode (0 to scan all titles only, default: 1)
--min-duration
Set the minimum title duration (in seconds). Shorter titles will not be scanned (default: 10).
--scan
Scan selected title only.
--main-feature
Detect and select the main feature title.
-c, --chapters <string>
Select chapters (e.g. "1-3" for chapters 1 to 3, or "3" for chapter 3 only, default: all chapters)
--angle <number>
Select the DVD angle
--previews <#:B>
Select how many preview images are generated (max 30), and whether or not they're stored to disk (0 or 1). (default: 10:0)
--start-at-preview <#>
Start encoding at a given preview.
--start-at <unit:#>
Start encoding at a given frame, duration (in seconds), or pts (on a 90kHz clock)
--stop-at <unit:#>
Stop encoding at a given frame, duration (in seconds), or pts (on a 90kHz clock)
### Destination Options
-o, --output <string>
Set output file name
-f, --format <string>
Set output format (mp4/mkv, default: autodetected from file name)
-m, --markers
Add chapter markers (mp4 and mkv output formats only)
-4, --large-file
Use 64-bit mp4 files that can hold more than 4 GB. Note: Breaks iPod, PS3 compatibility.
-O, --optimize
Optimize mp4 files for HTTP streaming
-I, --ipod-atom
Mark mp4 files so 5.5G iPods will accept them
### Video Options
-e, --encoder <string>
Set video library encoder Options: x264 / ffmpeg4 / ffmpeg2 / theora (default: ffmpeg4)
--x264-preset <string>
When using x264, selects the x264 preset:
ultrafast / superfast / veryfast / faster / fast / medium / slow / slower / veryslow / placebo
--x264-tune <string>
When using x264, selects the x264 tuning:
film / animation / grain / stillimage / psnr / ssim / fastdecode / zerolatency
-x, --encopts <string>
Specify advanced encoder options in the same style as mencoder (x264 and ffmpeg only): option1=value1:option2=value2
--x264-profile <string>
When using x264, ensures compliance with the specified h.264 profile:
baseline / main / high / high10 / high422 / high444
-q, --quality <number>
Set video quality
-b, --vb <kb/s>
Set video bitrate (default: 1000)
-2, --two-pass
Use two-pass mode
-T, --turbo
When using 2-pass use the turbo options on the first pass to improve speed (only works with x264, affects PSNR by about 0.05dB, and increases first pass speed two to four times)
-r, --rate
Set video framerate (5 / 10 / 12 / 15 / 23.976 / 24 / 25 / 29.97 / 30 / 50 / 59.94 / 60) Be aware that not specifying a framerate lets HandBrake preserve a source's time stamps, potentially creating variable framerate video
--vfr, --cfr, --pfr
Select variable, constant or peak-limited frame rate control. VFR preserves the source timing. CFR makes the output constant rate at the rate given by the -r flag (or the source's average rate if no -r is given). PFR doesn't allow the rate to go over the rate specified with the -r flag but won't change the source timing if it's below that rate. If none of these flags are given, the default is --cfr when -r is given and --vfr otherwise
### Audio Options
-a, --audio <string>
Select audio track(s), separated by commas ("none" for no audio, "1,2,3" for multiple tracks, default: first one). Multiple output tracks can be used for one input.
-E, --aencoder <string>
Audio encoder(s):
faac ffaac copy:aac ffac3 copy:ac3 copy:dts copy:dtshd lame copy:mp3 vorbis ffflac copy
copy:* will passthrough the corresponding audio unmodified to the muxer if it is a supported passthrough audio type. Separated by commas for more than one audio track. (default: faac for mp4, lame for mkv)
--audio-copy-mask <string>
Set audio codecs that are permitted when the "copy" audio encoder option is specified (aac/ac3/dts/dtshd/mp3, default: all). Separated by commas for multiple allowed options.
--audio-fallback <string>
Set audio codec to use when it is not possible to copy an audio track without re-encoding.
-B, --ab <kb/s>
Set audio bitrate(s) (default: depends on the selected codec, mixdown and samplerate) Separated by commas for more than one audio track.
-Q, --aq <quality>
Set audio quality metric (default: depends on the selected codec) Separated by commas for more than one audio track.
-C, --ac <compression>
Set audio compression metric (default: depends on the selected codec) Separated by commas for more than one audio track.
-6, --mixdown <string>
Format(s) for surround sound downmixing Separated by commas for more than one audio track. (mono/stereo/dpl1/dpl2/6ch, default: up to 6ch for ac3, up to dpl2 for other encoders)
-R, --arate
Set audio samplerate(s) (22.05/24/32/44.1/48 kHz) Separated by commas for more than one audio track.
-D, --drc <float>
Apply extra dynamic range compression to the audio, making soft sounds louder. Range is 1.0 to 4.0 (too loud), with 1.5 - 2.5 being a useful range. Separated by commas for more than one audio track.
--gain <float>
Amplify or attenuate audio before encoding. Does NOT work with audio passthru (copy). Values are in dB. Negative values attenuate, positive values amplify. A 1 dB difference is barely audible.
-A, --aname <string>
Audio track name(s), Separated by commas for more than one audio track.
### Picture Settings
-w, --width <number>
Set picture width
-l, --height <number>
Set picture height
--crop <T:B:L:R>
Set cropping values (default: autocrop)
--loose-crop <#>
Always crop to a multiple of the modulus Specifies the maximum number of extra pixels which may be cropped (default: 15)
-Y, --maxHeight <#>
Set maximum height
-X, --maxWidth <#>
Set maximum width
--strict-anamorphic
Store pixel aspect ratio in video stream
--loose-anamorphic
Store pixel aspect ratio with specified width
--custom-anamorphic
Store pixel aspect ratio in video stream and directly control all parameters.
--display-width <number>
Set the width to scale the actual pixels to at playback, for custom anamorphic.
--keep-display-aspect
Preserve the source's display aspect ratio when using custom anamorphic
--pixel-aspect <PARX:PARY>
Set a custom pixel aspect for custom anamorphic (--display-width and --pixel-aspect are mutually exclusive and the former will override the latter)
--itu-par
Use wider, ITU pixel aspect values for loose and custom anamorphic, useful with underscanned sources
--modulus
Set the number you want the scaled pixel dimensions
<number>
to divide cleanly by. Does not affect strict anamorphic mode, which is always mod 2 (default: 16)
-M --color-matrix <601 or 709>
Set the color space signaled by the output (Bt.601 is mostly for SD content, Bt.709 for HD, default: set by resolution)
### Filters
-d, --deinterlace <YM:FD:MM:QP> or <fast/slow/slower>
Deinterlace video with yadif/mcdeint filter (default 0:-1:-1:1)
-5, --decomb <MO:ME:MT:ST:BT:BX:BY:MG:VA:LA:DI:ER:NO:MD:PP:FD>
Selectively deinterlaces when it detects combing (default: 7:2:6:9:80:16:16:10:20:20:4:2:50:24:1:-1)
-9, --detelecine <L:R:T:B:SB:MP:FD>
Detelecine (ivtc) video with pullup filter Note: this filter drops duplicate frames to restore the pre-telecine framerate, unless you specify a constant framerate (--rate 29.97) (default 1:1:4:4:0:0:-1)
-8, --denoise <SL:SC:TL:TC> or <weak/medium/strong>
Denoise video with hqdn3d filter (default 4:3:6:4.5)
-7, --deblock <QP:M>
Deblock video with pp7 filter (default 5:2)
--rotate <M>
Flips images axes (default 3)
-g, --grayscale
Grayscale encoding
### Subtitle Options
-s, --subtitle <string>
Select subtitle track(s), separated by commas More than one output track can be used for one input. Example: "1,2,3" for multiple tracks. A special track name "scan" adds an extra 1st pass. This extra pass scans subtitles matching the language of the first audio or the language selected by --native-language. The one that's only used 10 percent of the time or less is selected. This should locate subtitles for short foreign language segments. Best used in conjunction with --subtitle-forced.
-F, --subtitle-forced <string>
Only display subtitles from the selected stream if the subtitle has the forced flag set. The values in "string" are indexes into the subtitle list specified with '--subtitle'. Separated by commas for more than one subtitle track. Example: "1,2,3" for multiple tracks. If "string" is omitted, the first track is forced.
--subtitle-burned <number>
"Burn" the selected subtitle into the video track If "number" is omitted, the first track is burned. "number" is an index into the subtitle list specified with '--subtitle'.
--subtitle-default <number>
Flag the selected subtitle as the default subtitle to be displayed upon playback. Setting no default means no subtitle will be automatically displayed If "number" is omitted, the first track is default. "number" is an index into the subtitle list specified with '--subtitle'.
-N, --native-language <string>
Specifiy your language preference. When the first audio track does not match your native language then select the first subtitle that does. When used in conjunction with --native-dub the audio track is changed in preference to subtitles. Provide the language's iso639-2 code (fre, eng, spa, dut, et cetera)
--native-dub
Used in conjunction with --native-language requests that if no audio tracks are selected the default selected audio track will be the first one that matches the --native-language. If there are no matching audio tracks then the first matching subtitle track is used instead. --srt-file <string> SubRip SRT filename(s), separated by commas.
--srt-codeset <string>
Character codeset(s) that the SRT file(s) are encoded in, separted by commas. Use 'iconv -l' for a list of valid codesets. If not specified latin1 is assumed
--srt-offset <string>
Offset in milli-seconds to apply to the SRT file(s) separted by commas. If not specified zero is assumed. Offsets may be negative.
--srt-lang <string>
Language as an iso639-2 code fra, eng, spa et cetera) for the SRT file(s) separated by commas. If not specified then 'und' is used.
--srt-default <number>
Flag the selected srt as the default subtitle to be displayed upon playback. Setting no default means no subtitle will be automatically displayed If "number" is omitted, the first srt is default. "number" is an 1 based index into the srt-file list