h264enc(1)

NAME
h264enc - 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.cfg Please 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 high The 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>

WWW
http://h264enc.sourceforge.net