h264enc - Man Page
the interactive shell script ripper
Synopsis
h264enc [-1p|-2p|-3p|-qp|-crf|-b|-e|-r|-sc|-scan|-iso|-spr|-mfr|-bpp|-bpb|-v|-h] [-p <preset>] [preset_file]
Description
h264enc is an advanced and powerful interactive menu-driven shell script which uses the encoding utility MEncoder from the MPlayer project. The script can be used to encode DVDs, DBs, (S)VCDs or regular video files to the high-quality H.264 video format (also known as AVC (Advanced Video Coding) or MPEG-4 Part 10). At the moment, the script supports virtually all options of the libx264 library and a variety of audio codecs, including support for virtually unlimited amount of audio tracks muxed into the MKV/MP4/OGM/TS containers. h264enc is targeted primarily at power users or users who understand the process of video encoding and want to tweak their settings in order to achieve the best possible quality/file size of their encodes. For more information and a FAQ/Doc, visit http://h264enc.sourceforge.net
h264enc uses a configuration file stored in the user's home directory inside a hidden directory named as .h264enc where the user can enable or disable many of the supported audio/video filters and containers. This can reduce the time it takes to pass through the script when the user disables filters and/or containers he never intends to use. Further, the configuration file stores the paths to the required programs and a few other things like some script options, MPlayer flags and email support.
Requirements
- MPlayer/MEncoder >= 1.0rc2 compiled with libx264 support (SVN highly recommended)
- libx264
- lsdvd
- dvdxchap from 'ogmtools' (for DVD chapter export)
- pv (pipeviewer - ISO dumps)
- LAME (for MP3 audio encoding)
- FAAC (for AAC audio encoding)
- neroAacEnc (for AAC/AAC+ audio encoding)
- aacplusenc (for AAC+ audio encoding)
- aac-enc (for AAC/AAC+ encoding)
- oggenc (for Vorbis audio encoding)
- opusenc (for Opus audio encoding)
- flac (for FLAC audio encoding)
- aften (for AC-3 audio encoding)
- dcaenc (for DTS audio encoding)
- MP4Box from 'gpac' (for AVI -> MP4 container conversion)
- mkvtoolnix (for AVI -> MKV container conversion)
- ogmtools (for AVI -> OGM container conversion)
- tsMuxeR (for AVI -> TS container conversion)
Parameters
- -1p
Encode in 1-pass mode
- -2p
Encode in 2-pass mode
- -3p
Encode in 3-pass mode
- -qp
Encode in fixed-quant mode
- -crf
Encode in constant rate factor mode
- <passmode> -p <preset> [-t <tune>] [-pf <profile>]
Use a predefined H.264 quality preset, where <passmode> is the desired encoding mode (-1p or -2p or -3p or -qp or -crf) and <preset> is the desired quality preset to use (see below). Note that the -t and -pf options only work with the x264 presets below! See examples at the end of this option.
cp --------> Load a custom preset file (see example below)
ulq -------> Ultra Low Quality preset
elq -------> Extreme Low Quality preset
vlq -------> Very Low Quality preset
lq --------> Low Quality preset
mq --------> Medium Quality preset
nq --------> Normal Quality preset (recommended)
hq --------> High Quality preset (recommended)
vhq -------> Very High Quality preset (recommended)
ehq -------> Extreme High Quality preset
uhq -------> Ultra High Quality preset
ihq -------> Insane High Quality preset
nlq -------> Near Lossless Quality preset
fghq ------> Film Grain optimized High Quality preset
ani -------> Anime preset
anihq -----> Anime High Quality preset
vdhq ------> VDPAU/DXVA High Quality (High@L4.1) preset
vdehq -----> VDPAU/DXVA Extreme High Quality (High@L4.1) preset
vdihq -----> VDPAU/DXVA Insane High Quality (High@L4.1) preset
fl --------> Flash Player preset
flhq ------> Flash Player High Quality preset
qt --------> QuickTime preset
qthq ------> QuickTime High Quality preset
bd40 ------> Blu-ray (Main@L4.0) preset
bdhq40 ----> Blu-ray High Quality (High@L4.0) preset
bd41 ------> Blu-ray (Main@L4.1) preset
bdhq41 ----> Blu-ray High Quality (High@L4.1) preset
avchd -----> AVCHD (Main@L4.0) preset
avchdhq ---> AVCHD High Quality (High@L4.1) preset
ag1 -------> Android G1 preset
ag1hq -----> Android G1 High Quality preset
ipc -------> Apple iPod Classic preset
ipchq -----> Apple iPod Classic High Quality preset
ip --------> Apple iPod preset
iphq ------> Apple iPod High Quality preset
iph -------> Apple iPhone preset
iphhq -----> Apple iPhone High Quality preset
atv -------> AppleTV preset
atvhq -----> AppleTV High Quality preset
ar --------> Archos 605 preset
arhq ------> Archos 605 High Quality preset
ar5 -------> Archos 5 preset
ar5hq -----> Archos 5 High Quality preset
bb --------> Blackberry 9000 preset
bbhq ------> Blackberry 9000 High Quality preset
nks60 -----> Nokia S60 preset
nks60hq ---> Nokia S60 High Quality preset
psp -------> Sony PSP preset
psphq -----> Sony PSP High Quality preset
ps3 -------> Sony PS3 preset
ps3hq -----> Sony PS3 High Quality preset
mz --------> Microsoft Zune preset
mzhq ------> Microsoft Zune High Quality preset
mx --------> Microsoft XBOX 360 preset
mxhq ------> Microsoft XBOX 360 High Quality preset
ultrafast (x264 preset)
superfast (x264 preset)
veryfast (x264 preset)
faster (x264 preset)
fast (x264 preset)
medium (x264 preset)
slow (x264 preset)
slower (x264 preset)
veryslow (x264 preset)
placebo (x264 preset)Example of presets usage: h264enc -2p -p hq
The above example will encode the input in 2-pass mode using the High Quality (HQ) preset
Load a custom preset from a file:
h264enc -2p -p cp /path/to/file/preset.cfgPlease have a look at the preset.cfg file inside the h264enc package to give you an example on how to write a custom preset. The preset.cfg file is usually located inside the doc directory of the h264enc package.
Examples of x264 presets/tune/profiles usage:
h264enc -2p -p slow
h264enc -2p -p slow -t film
h264enc -2p -p slow -pf main
h264enc -2p -p slow -t film -pf highThe first example encodes the input with x264's slow preset. The second one does the same but tunes the encode settings for film footage. The third example is as the first one but selects the main H.264 profile and the last example uses both a tuning for film and selects the high H.264 profile. You can also switch the -t and -pf options, eg: h264enc -2p -p slow -pf main -t film
- -b /path/to/file/batchfile
Load a batch file generated by this script. This option can be useful for testing or debugging the MEncoder parameters and for batch encoding.
- -e
Edit the config file from within the terminal. This option defaults to using the 'nano' text editor but one can manually set his preferred editor in the EDITOR variable of the config file. The config file is located in /home/username/.h264enc
- -r
Reset configuration file. As of version 8.5.7, h264enc uses a configuration file which contains the paths to the programs needed for its correct operation. This option tells the script to remove and recreate the config file using the default values. It can be used to restore the original values of the config file in case the user has modified it and wants to get rid of those modifications. It is also used for resetting the config file in case the user has installed a required program after h264enc has generated its config file. If this is the case, the config file will not contain the path to the newly installed program so one has to reset the file in order to find it. This is because the config file is generated/updated only once: if it's not available on the user's system and during config version updates. The configuration file is located in /home/username/.h264enc/config
- -sc
Perform a sanity check. This will check for the programs which are required for the correct operation of this script and it will print the status in a list. It will also display which audio codecs are supported by MEncoder.
- -scan
Scan the DVD disc and display extensive information about it. With this option, one can display or export the information to a file on disk in text, perl, python, ruby or xml format.
- -iso
Create an ISO image out of a DVD disc. Note that this option does no do any stripping of specific titles, audio languages and/or subtitles. It dumps the DVD content 1:1 to an ISO image. Removing of content protection is also not done.
- -spr
Calculate the Storage and Pixel Aspect Ratios (SAR/PAR) for various resolutions.
- -mfr
Calculate the maximum allowed frame references within DPB (Decoded Picture Buffer) limits for different H.264 levels and resolutions.
- -bpp
This is an informative option which lets you calculate the Bits Per Pixel (bpp) values for various resolutions. The bpp value represents how much bits each pixel gets. The higher the bpp value is, the more distinct colors the pixels will have which leads to a higher overall picture quality. Note that these values are not absolute! For video content with a lot of black in it, a bpp value of 0.14 may look very good. Video content with a lot of high motion scenes may still look bad with a bpp value of 0.20, so this really depends on the content you are willing to encode and the resolution you choose when scaling down.
- -bpb
This option is similar to the -bpp one, except it calculates the Bits Per Block (bpb) values for various resolutions. The bpb value expresses how many bits each 16x16 macroblock gets. Good bpb values are between 37-52. As is the case with Bits Per Pixel, the bpb values are not absolute and depend on the video content you are willing to encode and the resolution you choose when scaling down.
- -h
Display built-in help of the h264enc script and exit
- -v
Display version of the h264enc script and exit
See Also
mencoder(1), lsdvd(1), dvdxchap(1), lame(1), oggenc(1), flac(1), mkvmerge(1), ogmmerge(1), mp4box(1)
Authors
h264enc was written by Grozdan Nikolov <neutrino8@gmail.com>
This manual page was written by the author of h264enc
Bug Reports
Please send all bug reports and/or questions/suggestions to <neutrino8@gmail.com>