Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
14th November 2009, 15:28 | #1 | Link |
Derek Prestegard IRL
Join Date: Nov 2003
Location: Los Angeles
Posts: 5,989
|
Handbrake CLI for batch encoding
Hey guys,
I'm building out a workflow for batch encoding on linux. I'm quite interested in Handbrake - as it seems to be pretty good at automatically handling the various idiosyncrasies with DVDs - i.e. aspect ratios, deinterlacing / IVTC etc... Basically, I'm trying to figure out something that can be easily scripted, ideally to the point where I can simply specify input (a VOB), output, resolution, and bitrate, and have the app automatically deinterlace / ivtc as necessary, resize to appropriate square pixel resolution, and then encode in 2 passes using x264 into an MP4 container with the first audio track in the VOB encoded to AAC. I have a feeling this can be done with a single command, using Handbrake. If not, could anyone else suggest something else? It would be quite simple to do this all via ffmpeg etc, but handling deinterlacing / IVTC / crop / resize properly seems like it would be tricky for a batch flow, without knowing correct settings ahead of time. I'm not expecting perfect results, of course. I also don't plan on having really exotic sources - like field blended or other brutal standards conversions. Most of the content will be fairly recent independent films, and I'm guessing most will be NTSC DVDs with either soft pulldown, or vanilla 3:2. Any input would be greatly appreciated Simplicity is THE operative word here. Thanks in advance, ~MiSfit
__________________
These are all my personal statements, not those of my employer :) |
14th November 2009, 16:38 | #3 | Link |
HDConvertToX author
Join Date: Nov 2003
Location: Cesena,Italy
Posts: 6,552
|
hadnbrake has already a good command line support
just use it.. nothing fancy, but quite usefull Code:
[andres@lucillex ~][andres@lucillex ~]$ HandBrakeCLI --help 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) -C, --cpu Set CPU count (default: autodetected) -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 --dvdnav Use dvdnav (Experimental) ### Source Options----------------------------------------------------------- -i, --input <string> Set input device -t, --title <number> Select a title to encode (0 to scan only, default: 1) -L, --longest Select the longest 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. --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 (ffmpeg,x264,theora) (default: ffmpeg) -x, --x264opts <string> Specify advanced x264 options in the same style as mencoder: option1=value1:option2=value2 -q, --quality <float> Set video quality (0.0..1.0) -Q, --cqp Use with -q for CQP instead of CRF -S, --size <MB> Set target size -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) 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 More than one output track can be used for one input. ("none" for no audio, "1,2,3" for multiple tracks, default: first one) -E, --aencoder <string> Audio encoder(s) (faac/lame/vorbis/ac3/dts) ac3 and dts meaning passthrough Separated by commas for more than one audio track. (default: guessed) -B, --ab <kb/s> Set audio bitrate(s) (default: 160) 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: dpl2) -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. -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) -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 Set the width to scale the actual pixels to <number> at playback, for custom anamorphic. --keep-display-aspect Preserve the source's display aspect ratio when using custom anamorphic --pixel-aspect Set a custom pixel aspect for custom anamorphic <PARX:PARY> (--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, for loose and custom anamorphic modes (default: 16) -M --color-matrix Set the color space signaled by the output <601 or 709> (Bt.601 is mostly for SD content, Bt.709 for HD, default: set by resolution) ### Filters--------------------------------------------------------- -d, --deinterlace Deinterlace video with yadif/mcdeint filter <YM:FD:MM:QP> (default 0:-1:-1:1) or <fast/slow/slower> -5, --decomb Selectively deinterlaces when it detects combing <MO:ME:MT:ST:BT:BX:BY> (default: 1:2:6:9:80:16:16) -9, --detelecine 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) <L:R:T:B:SB:MP> (default 1:1:4:4:0:0) -8, --denoise Denoise video with hqdn3d filter <SL:SC:TL:TC> (default 4:3:6:4.5) or <weak/medium/strong> -7, --deblock Deblock video with pp7 filter <QP:M> (default 5:2) -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. ("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 Only display subtitles from the selected stream if <string> the subtitle has the forced flag set. May be used in conjunction with "scan" track to auto-select a stream if it contains forced subtitles. Separated by commas for more than one audio track. ("1,2,3" for multiple tracks. If "string" is omitted, the first trac is forced. --subtitle-burn "Burn" the selected subtitle into the video track <number> If "number" is omitted, the first trac is burned. --subtitle-default Flag the selected subtitle as the default subtitle <number> to be displayed upon playback. Setting no default means no subtitle will be automatically displayed If "number" is omitted, the first trac is default. -N, --native-language Specifiy the your language preference. When the first <string> 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 Character codeset(s) that the SRT file(s) are <string> encoded in, separted by commas. Use 'iconv -l' for a list of valid codesets. If not specified latin1 is assumed --srt-offset Offset in milli-seconds to apply to the SRT file(s) <string> 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 Flag the selected srt as the default subtitle <number> 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
__________________
HDConvertToX: your tool for BD backup MultiX264: The quick gui for x264 AutoMen: The Mencoder GUI AutoWebM: supporting WebM/VP8 |
16th November 2009, 16:05 | #4 | Link |
Registered User
Join Date: Nov 2009
Posts: 110
|
Here is a profile that Tivo users of kmttg use for converting to x264 with HandbrakeCLI:
Code:
handbrakeCLI -i inputFile.mpg -f mp4 -p -e x264 -b 5000 -a 1 -E ac3 -x ref=3:mixed-refs=1:bframes=3: b-pyramid=1:weightb=1:analyse=all:8x8dct=1:me=umh:subq=9:direct=auto:keyint=24:min-keyint=2: no-fast-pskip=1:no-dct-decimate=1 -v -o outputFile.mp4 Last edited by txporter; 16th November 2009 at 16:06. Reason: adding hard returns to code box |
16th November 2009, 16:27 | #5 | Link |
HDConvertToX author
Join Date: Nov 2003
Location: Cesena,Italy
Posts: 6,552
|
one more thing:
all custom x264 parameters use the mencoder notation BHH
__________________
HDConvertToX: your tool for BD backup MultiX264: The quick gui for x264 AutoMen: The Mencoder GUI AutoWebM: supporting WebM/VP8 |
Thread Tools | Search this Thread |
Display Modes | |
|
|