h264enc Changelog

What's new in h264enc 10.4.7

Jan 22, 2016
  • Added support for the video rotate filter. Requested by Thomas Troeger
  • Updated copyright dates

New in h264enc 10.4.6 (Jan 6, 2016)

  • Clean up the config file a bit
  • Added support for setting the MAX_AMOUNT_SUBS and MAX_AMOUNT_AUD_TRACKS to "auto". When set to "auto" it will as for as many audio tracks/subs as detected
  • New variable in the config file, MAX_AMOUNT_EXT_SUBS, for setting the amount of times we get asked for importing external subs into mkv/mp4/ogm

New in h264enc 10.4.5 (Jan 6, 2016)

  • Fixed a small issue in the detection of aspect ratio when forcing it

New in h264enc 10.4.4 (Jan 6, 2016)

  • Portability improvements. It should now work on other UNIXes

New in h264enc 10.4.3 (Jan 6, 2016)

  • Removed the $ from the index of array variables
  • Be more portable and use eval instead of seq in loops as seq is too Linux-specific

New in h264enc 10.4.2 (Jan 6, 2016)

  • Increased the default audio bitrate/quality value for Vorbis audio
  • Added mov file extention to the supported formats for chapter dumps
  • New ASCII art banner
  • Updated the man page

New in h264enc 10.4.1 (Jun 24, 2015)

  • Modified the mail func for dir batch encodes to report the input directory instead of the last encoded file from it
  • Get rid of some commented out code which is no longer used
  • The -a52drc option only has an effect if input audio is AC-3. Since we currently don't store the audio codec detected into a usable var, disable this option for the time being
  • Increased the detault audio bitrate for AAC from 128 to 192kbps

New in h264enc 10.4.0 (May 4, 2015)

  • Accept relative paths for the output file
  • Do a second crop detection run in case the first try fails

New in h264enc 10.3.9 (May 4, 2015)

  • Add a check for x264 in the sanity test
  • Fix a typo in the x264params var for multi-pass encoding

New in h264enc 10.3.8 (May 1, 2015)

  • Fixed an issue in the EDL code where tab completion wasn't working due to missing -e option to read

New in h264enc 10.3.7 (Apr 6, 2015)

  • Added support for EDL list files. Updates the config version to 35.
  • By default, EDL is disabled as I don't think many people know what it is or how to make such files, so you have to enable it in the config file.

New in h264enc 10.3.6 (Mar 17, 2015)

  • Revert the previous change to crop detect for files as it misdetects too often

New in h264enc 10.3.5 (Mar 12, 2015)

  • Support mono and tile format frame packing. Requires latest x264
  • Improved crop detection for files

New in h264enc 10.3.4 (Jan 24, 2015)

  • Added support for setting a default software scaler in the config file
  • Ask for color primaries/transfers/matrics when using any preset, not just the Blu-ray ones

New in h264enc 10.3.3 (Jan 21, 2015)

  • Improved original resolution detection. Patch by Markus Grunwald
  • Update copyright dates

New in h264enc 10.3.2 (Oct 3, 2014)

  • Add the $cache var to a few more places in the audio code
  • Reorder the audio codec conditionals in the case statements for better readability
  • When using external audio encoders, we currently only check if the encoder has produced a file. Make it a bit more reliable and check if the audio file is at least 20 KiB in size as most encoders that output a file but error out, produce files less than 20 KiB. A more reliable method would be to check the return code of the background encoder process itself with $! to get its PID and using wait $PID; RET=$? to capture the signal, but this will result in a hacky way of doing it. I do not rule it out for the future

New in h264enc 10.3.1 (Sep 30, 2014)

  • Fix a syntax error in the ratio_and_pixels_func() due to missing var.

New in h264enc 10.3.0 (Sep 29, 2014)

  • Get rid of the $RATIO var in the ratio_and_pixels_func() function
  • Support disabling of all video filters at once through the config file
  • Support disabling of cropping and subtitles
  • Support disabling of all audio filters at once
  • Support disabling of asking for DVD/BD angles and chapters encode
  • 2014-09-27 - h264enc 10.2.9
  • Colorize the output of detected subtitles and DVD/VCD titles
  • Merge the two case statements of the ratio_and_pixels_func() function
  • All audio encoders we currently use support a max of 6 audio channels. Check the detected audio channels amount and warn per track if we detect more than 6
  • Minor default filters values tuning

New in h264enc 10.2.8 (Sep 29, 2014)

  • Get rid of the get_resolution_func() and audio_stream_copy_func() functions
  • Detecting Blu-ray resolution can be sometimes problematic when using -vo null -ao null. Switch to using -nosound instead of -ao null
  • Check the value set, if any, in the DEFAULT_VID_CRFQP variable in the config file and restrict the maximum to 51
  • Add the $cache var for Blu-rays to the audio_resample_func() function and to the audio detection code for stream copy
  • For audio copy, move the audio detection into its own audio_copy_func() function. It makes it possible to correctly copy TrueHD audio regardless of the preset used, except for restricted presets that do not support audio copy. DTS HD MA is not supported yet as there's no way detecting it due to no decode support in libavcodec
  • Remove the -nocache option from the MPOPTS var
  • Cosmetics

New in h264enc 10.2.7 (Sep 29, 2014)

  • Fix incorrect Aspect Ratio (AR) and Pixel Aspect Ratio (PAR) calculations for cropped resolutions
  • Do not run the get_resolution_func() function if we do cropping as it's needless
  • Calculate and display the AR and PAR when we do scaling

New in h264enc 10.2.6 (Sep 18, 2014)

  • Fix crop detection for Blu-ray input.

New in h264enc 10.2.5 (Sep 17, 2014)

  • Set the -cache option needed for BD input in a single variable inside the code for BD input. Reduces detection time of resolution/audio codecs if input is not BD since the -cache option won't be used for such inputs
  • Make some words uppercase in the crop function to ease the focus on them
  • Reduced some dumplication by placing the chapters examples text into its own chapters_example_func() function

New in h264enc 10.2.4 (Sep 16, 2014)

  • Fix Blu-ray input: -demuxer lavf is used by default for BD input as it provides extra info for audio detection. The problem is that -demuxer lavf forces MPlayer to read the whole(!) BD even when -frames 0 or 1 is used as option. This fix works around the problem by using the -cache option which seems to make -demuxer lavf behave as it should. Thanks to Andy Furnis on the MPlayer mailing list for providing the workaround

New in h264enc 10.2.3 (Sep 15, 2014)

  • Add back checking for aften in the sanity check (-sc) option
  • Support disabling of MKV global tags. Bumps up the config file version to 32
  • Use -frames 0 to workaround possible problems when detecting audio bitrates

New in h264enc 10.2.2 (Aug 18, 2014)

  • Merge the eac3 and truehd part in the case statement as they're identical
  • Rename MP3FLOAT as reported by MPlayer to MP3 and EAC3 to E-AC-3
  • Since we now set -nosound when copying a TrueHD track, it is no longer necessary to modify the text files for encoding, so remove the sed part

New in h264enc 10.2.1 (Aug 16, 2014)

  • Support copying Dolby TrueHD audio into the MKV container.
  • When detecting audio, change the TRUEHD reported by MPlayer to Dolby TrueHD.

New in h264enc 10.2.0 (Jul 5, 2014)

  • We currently try to auto-detect resolutions and fps in order to set the fake interlaced option and color prims/transfers/matrices when using the Blu-ray/AVCHD presets. The problem is that this auto-detection cannot be made very reliable and there's a high chance it will misdetect something. Make it simple instead and ask the user if to set the prims and/or fake interlaced options
  • Tune the Blu-ray/AVCHD high-quality presets for better quality
  • Both the aften and lavc encoders for AC-3 audio share the same bitrate code. Move it out of the encoder functions to a new ac3_bitrate_func() function to reduce some duplication
  • Removed some commented out code
  • In addition to reporting file sizes in MiB after encoding finishes, also report them in GiB

New in h264enc 10.1.9 (Jul 2, 2014)

  • Add -noskip to where -mc 0 is used
  • Document the exit values used by the exit_func() function
  • Made the sed syntax consistent
  • Currently, we calculate the ratio and pixels in two places. One for when we don't scale and one for when we scale. Merge the code into the ratio_and_pixels_func() function to reduce some duplication
  • When printing info on files/bd, increase the -channels to 8
  • Tune the higher quality presets and the anime ones by tweaking the adaptive quants, psy and inloop deblocker for better quality
  • Bugfix: in case we skip the audio channels filter when the provided channels is higher than 6, the array var audchannels was not reset

New in h264enc 10.1.8 (Jul 1, 2014)

  • Fix syntax error in the ratio_and_pixels_func() function.

New in h264enc 10.1.7 (Jun 30, 2014)

  • Renamed the variable priority_level to nicelevel
  • Be more clear about the language code the user may use by mentioning that it's used for tagging
  • Be more clear on the channels filter by stating it is very basic and it will create empty channels in case the output channels are higher than the input ones
  • Add a 0 to the counter_func() function
  • mkvmerge version 7.0.0 and higher automatically adds statistics tags to the created file. Offer an option in the config file to disable this. Updates the config file version to 31
  • Add a note to the skeleton presets.cfg file that one must start the params with a : (colon)

New in h264enc 10.1.6 (Jun 30, 2014)

  • Add -mc 0, after some testing, for when encoding to E-AC-3 audio
  • A lot of the supported audio codecs do not support more than 6 channels so limit the channels to a maximum of 6
  • If aften is missing and user has selected it as encoder to use, fall back to the lavc encoder instead of exiting

New in h264enc 10.1.5 (Jun 25, 2014)

  • Updated the info on audio codecs supported by containers
  • Updated the set_audio_codec_func() function
  • Set the default IVTC filter to filmdint
  • Accept floating point values for CRF/QP ratecontrol in the config file

New in h264enc 10.1.4 (Jun 25, 2014)

  • Removed -mc 0 when encoding to E-AC-3 audio. It is not needed after some tests and A/V sync will be better in some cases
  • Use a case statement instead of an if conditional when checking if audio encoder is fkdaac or dcaenc in order to insert the format filter
  • Encode to AAC through MEncoder instead of using faac directly
  • Renamed the aac_audio_func() function to faac_audio_func(). Also renamed the $MENCIN var to $MENCINPUT

New in h264enc 10.1.3 (Jun 24, 2014)

  • Set the DRC profile for Aften to none
  • Allow the volume filter to be used even if the volnorm one is used
  • Added support for setting the DRC when using lavc for AC-3
  • Added support for encoding to E-AC-3 audio through lavc

New in h264enc 10.1.2 (Jun 21, 2014)

  • Fix a possible problem when detecting audio tracks when input is file or blu-ray. We only grep for the generic word 'audio' which could result in also printing lines that are not audio tracks but somehow carry the 'audio' word in their tags. Fix it by using 'awk' before 'grep' to only print the fourth column where lavf reports what type of track it is
  • Set default DTS bitrate to 755 kbps. Also check if we don't exceed the highest legal bitrate of 1509 kbps
  • Due to a bug in the dcaenc encoder, floating-point WAV files get wrongly interpreted as 32-bit integer ones. Work around this by adding the format=s16le filter
  • The 1536 kbps bitrate reported by MPlayer on some DTS files is technically 1509 kbps, if we have to be accurate. Account for this by substracting 27 kbps from the reported bitrate. Do the same for the reported 768 kbps bitrate which is actually 755 kbps
  • Report the kHz in addition to the Hz when displaying audio info for found tracks
  • When remuxing to MKV/MP4/OGM, instead of checking if a file is created to make a decision if it was successful or not, use return codes from the remuxing applications. Should be more reliable in telling the user if it really succeeded or not. Unfortunately tsMuxeR doesn't return anything so there's no other way than checking if there's an output file.
  • Lowered the scale factor in the calcbits() function from 3 to 2. Also use | instead of @ as delimiter
  • Tune a bit the subq values of the ani & anihq presets. Also turn on trellis on all decisions (trellis=2) for the anihq preset

New in h264enc 10.1.1 (Jun 20, 2014)

  • Added support for the internal lavc AC-3 audio encoder. Now one can choose between the lavc encoder (default) and the aften encoder. The lavc encoder is set to default as aften has seen very little development in the past years and is not as good as the lavc one which is actively developed by the ffmpeg devs
  • Fine-tune the volume filter by setting it to 4 after some tests
  • Delete the file stored in the $AUDINFO variable
  • When storing the MKV global tags while operating in batch mode, test the variable $DIRTAGS for not being empty
  • Cosmetics: add a few echo's at specific places to separate the cmd lines in the batch file for better readability. Also add a comment block for the start of the MKV, MP4, TS and/or OGM muxing
  • Bugfix in the MKV/MP4 tags: do not add channel info when using MP3. If we add channel info, it could result in "MP3 5.1" being added to the audio tags, which is obviously wrong as MP3 only supports stereo and mono channels
  • Opus supports sampling rates from 8 kHz to 48 kHz. Support this in the resampling code

New in h264enc 10.1.0 (Jun 19, 2014)

  • When scanning for audio tracks when input is file or blu-ray, rename DCA (as reported by lavf) to DTS to not confuse the user. Also rename AC3 to AC-3 for consistency
  • In case audio encoder is fdkaac, add to the MKV tags the audio format used (eg, Signed 16-bit little endian)
  • When dumping chapters from files, use the file extension .chaps for MKV. Also test to see if there's already a chapters file with the same name and rename it to .chaps.old
  • aac-enc name in the MKV tags is not very descriptive, so add (fdkaac) to it
  • Cosmetics

New in h264enc 10.0.9 (Jun 18, 2014)

  • Bugfix: only call audio filters on subsequent tracks when running MPlayer to decode since for the first track we already pass these filters to MEncoder, thus if we also use them when running MPlayer we'll get a double effect
  • Add a ^ (caret) at the beginning of grep when trying to get the [lavf] text to make sure we only grep the correct instances
  • Set default CRF/QP value to 19 and for bitrate based encodes to 2000 kbps
  • For the volume audio filter, set the default value to 3 as 5 is a bit high

New in h264enc 10.0.8 (Jun 17, 2014)

  • New method to detect and display audio info when input is file or blu-ray.
  • In comparison to the previous basic method, the new one will display for each found audio track the codec, channels, language, bitrate and sample rate info. It does take slightly longer to detect in case there are many audio tracks, but it is more descriptive and accurate

New in h264enc 10.0.7 (Jun 17, 2014)

  • Use an if instead of a case when dumping chapters from files
  • Also export chapter extraction commands to the batch file
  • Display mkvextract availability when using the sanity check option (-sc)
  • Add the path and name to the comment block of the batch file. Makes it easy to focus on the comment block to know for which file the commands are instead of needing to inspect the code itself to find out

New in h264enc 10.0.6 (Jun 12, 2014)

  • Added support for dumping chapters info from MKV/MP4 input files
  • This updates the config file version to 30 as mkvextract is needed
  • Made the audiofmt variable an array variable
  • Moved asking for sample encoding before asking to inspect or save the options to a file

New in h264enc 10.0.5 (May 27, 2014)

  • Fixed the detect_fps_func() function for detecting the NTSC type
  • Lowered the spugauss (variance param for gauss subtitle scaling) from 0.7 to 0.4

New in h264enc 10.0.4 (May 23, 2014)

  • Bugfix: $demuxer var was missing in the AUDCH array var which resulted in incorrect channel info being added to the tags when copying audio. DVD input was not affected by this bug, but file/dir/bd input was as they all use the $demuxer var

New in h264enc 10.0.3 (Apr 29, 2014)

  • Removed unused $AUDFIFO variable
  • Small bugfix: audio language for metadata tagging wasn't added to the global tags for MKV when input is Blu-ray due to missing 'bd' param in the case statement

New in h264enc 10.0.2 (Apr 24, 2014)

  • Bugfix:
  • In case user chooses audio copy, the metadata info for tagging always defaulted to "Stereo". Fix this by running MPlayer to detect the proper amount of channels

New in h264enc 10.0.1 (Apr 22, 2014)

  • Bugfix: wrong var used, $chanuse instead of $chandec, for setting the decode channels
  • Only call the video_subtitles_scale_func() function if the user actually provides an external sub for hardcoding

New in h264enc 10.0.0 (Apr 18, 2014)

  • Allow the video_subtitles_align_func() function for mks matroska subtitles
  • Display the warning message in red for when something goes wrong when importing/hardcoding subs. Do the same for when checking support for a sub format for MKV/MP4/OGM
  • Added support for subtitles for Blu-ray encodings. Note that only hardcoding of external sub or importing of external subs into the MKV/MP4/OGM containers is supported
  • Removed some duplication by placing the code for hardcoding an external sub or importing external subs into its own video_subtitles_option_func() function
  • Increased the rc_lookahead value for the ehq, uhq and ihq presets to 80, 90 and 100, respectively
  • When copying audio and using some of the portable device presets, also add the -mc 0 -msglevel demuxer=-1 options to MEncoder
  • More code optimizations and minor fixes

New in h264enc 9.9.8 (Apr 17, 2014)

  • Use proper extensions when copying the audio as MP4Box has a problem with recognizing the .raw extension
  • Renamed the named pipe from audio.wav to audio.pipe. Also placed it in a variable to reduce some minor duplication
  • Added support for subtitle scaling for when hardcoding an external sub or hardcoding an embedded one. Requested by lib3rty1 from the the Doom9.org forum
  • Added --no-chapters option to mkvmerge for when encoding with neroAacEnc in order not to auto-copy chapters info from the container
  • Instead of defaulting to 0 kbps if we can't detect the audio bitrate when copying audio and needing to calculate the video bitrate for a target file size , ask the user to provide it in case he knows it or can figure it out
  • Set the default exponent strategy value for AC-3 to 16
  • Placed frequently used MPlayer options into a single variable, $MPOPTS, in order not to write them over and over again when we need them. These options are not used everywhere as sometimes we need other specific ones when detecting something
  • Improved priority level checks for regular users if the PRIORITY variable is set in the config file
  • Bugfix: audio resampling was not possible for Blu-rays due to missing bd param in the case statement
  • Merge the Blu-ray output code with that of the file/vcd as it's identical
  • Some minor code optimizations

New in h264enc 9.9.7 (Apr 17, 2014)

  • Allow the channels filter for the portable device presets
  • Reorder the audio filters positions
  • Placed the $MENCOPTS variable in front in MEncoder in order for it to not overwrite the options already set
  • For AC-3 audio, default to 384 kbps instead of 192 kbps and default to "Film Standard" as DRC profile
  • For MP3 audio, default to 192 kbps instead of 128 kbps when doing CBR encodes and to "standard" when using a preset
  • For NEROAAC and FDKAAC, default to 128 kbps instead of 96 kbps when using LC-AAC mode
  • Better wording in what the Output option does in the audio_channels_decode_func() function
  • Modification to the audio_codec_exit_func() function. Use this function also to exit in case of an unsupported audio codec. By using this function, some repeatability is removed
  • Fixed a bug in the PCM audio code for the calculation of video bitrate for a target file size. Variable $AUDIO_BITRATE should be an array variable instead of a normal one
  • Added support for Blu-ray angle encoding
  • Reduced some duplication by placing the message into a single variable when we exit in case an audio encoder is missing
  • MEncoder currently has issues with copying audio. Work it around by using -mc 0 -msglevel demuxer=-1 options which disable its automatic A/V sync. With this, MEncoder may report 0 or some large random number on some files for the audio but one can safely ignore it. Audio is still being copied
  • If the user chooses audio copy and selects to remux the encode to MKV, the global tags did not contain the audio encoder string. Fix this by adding "Unknown (Stream Copy)" since we don't know which program was used to encode the audio
  • In case we try to copy AAC audio from the input, we need to pass the correct format to MEncoder or it will error out. Thus, use -fafmttag 0x706d if we detect AAC
  • Fixed a bug where copying AAC audio as as subsequent track did not result in that track being added when remuxing to MP4 due to a missing ffaac param in the case statement
  • When doing video bitrate calculations for a target file size and copying the audio, try to better detect the audio bitrate. If we can't detect it or it's reported as 0 kbps, default to 0 kbps
  • Small improvements and cleanups here and there

New in h264enc 9.9.6 (Apr 15, 2014)

  • Rewrote the audio_channels_decode_func() function. It is now possible to output channels different that the decoded channels amount. Note that this filter is very basic which means it will output silent channels if the decoded channels are less than the output channels
  • Added chanfilter variable to the aac_hev2_func() function
  • Support all supported channels in the PCM bitrate code for target file size calculation
  • Removed channels variable for MEncoder when copying audio for subsequent tracks as it has no effect
  • Display an informative message if the user has set a default audio codec in the config file. Also check if we support it or print an error message and exit
  • Updated the channels metadata info code due to changes in the audio_channels_decode_func() function
  • Modifications to the audio_filters_func() and audio_filters_var_func() functions
  • Some small code cleanups

New in h264enc 9.9.5 (Apr 15, 2014)

  • Improved resolution detection for Blu-rays
  • Improved the nlq preset
  • Don't call the audio_channels_decode_func when copying the audio as audio is copied 1:1 thus we don't need to set any channels
  • Insert the channels filter in case the user wishes to have 4 or 5 audio channels when decoding higher or lower amount of channels
  • Various small code improvements

New in h264enc 9.9.4 (Apr 15, 2014)

  • Cosmetics: add an echo between the total found titles for Blu-ray and the info about each title
  • Cosmetics: remove double-quotes in empty echo's
  • Display full seconds value for each found Blu-ray title
  • Small code optimization to Blu-ray chapters info. Use a single variable that holds the title we need to scan for chapters
  • Warn and fallback to 8 channels in case user provides more than 8 channels
  • Added support for PCM audio for subsequent audio tracks

New in h264enc 9.9.3 (Apr 11, 2014)

  • Display the length in seconds and minutes for every found Blu-ray title
  • Implemented basic chapters encoding support for Blu-rays
  • Rewrote the code for subtitles imports for MKV/MP4/OGM
  • For DVDs/BDs, set default channels value to 6 when using other than copy for audio

New in h264enc 9.9.2 (Apr 11, 2014)

  • Allow importing of mks (Matroska stream) subtitles into MKV. Such files are usually created when dumping subs with the GUI version of mkvmerge
  • Add -nosub when importing external subtitles into MKV/MP4/OGM to prevent auto-loading of any embedded subs in the input file
  • Use case statements to check the values of the $MAX_AMOUNT_AUD_TRACKS and $MAX_AMOUNT_SUBS variables
  • Auto-cropping was not possible when input is Blu-ray due to missing bd param in the case statement
  • Set default audio channels decode option to 6 when input is Blu-ray

New in h264enc 9.9.1 (Apr 11, 2014)

  • Fixed not being able to calculate video bitrate for target file size when input is Blu-ray, due to missing $demuxer variable when calling MPlayer
  • Fixed DVD scanning in the -scan option
  • Support Blu-ray scanning in the -scan option
  • Display in the -sc option if MEncoder has Blu-ray support
  • Warn and exit if user chooses Blu-ray as input but MEncoder doesn't support it
  • Placed the $device and $vid variables after the $MPLAYEROPTS one in order for the custom MPlayer options not to possibly overwrite these variables
  • Modified the get_devices_func() function to allow files/folders as input so that a user can scan a DVD ISO or VIDEO_TS directory, not just discs
  • Fixed the colorprim code. $device and $vid variables were missing when calling MPlayer to get the resolution height

New in h264enc 9.9.0 (Apr 11, 2014)

  • Initial, basic support for encoding from Blu-ray discs/ISOs/directories. Requires MPlayer to be compiled with libbluray. As libbluray doesn't support encrypted Blu-rays, it is not possible to encode such Blu-rays. Encryption must first be stripped before encoding with h264enc
  • Reduced some duplication in the audio code for the first track for MKV
  • Adjusted the vbv_maxrate and vbv_bufsize for the bd40 and bdhq40 presets to comply with the level limits

New in h264enc 9.8.7 (Apr 1, 2014)

  • Merged the neroaac/fdkaac part of the MP4Box code as they're identical
  • Use a case statement to decide between --bluray and --avchd for tsMuxeR
  • A few more function renaming to carry the _func at the end

New in h264enc 9.8.6 (Apr 1, 2014)

  • Fix a syntax error

New in h264enc 9.8.5 (Apr 1, 2014)

  • Use a single variable for keyint for the Blu-ray/AVCHD presets. Reduces a bit of duplication
  • Reduced some duplication in the check_audio_codec_func() function by moving some of the error messages into a new audio_codec_exit_func() function
  • Allow muxing to TS when using neroAacEnc and/or FDKAAC in LC-AAC mode
  • Merged the NEROAAC/FDKAAC parts in the mkvmerge code as they're identical, thus we reduce a bit of duplication
  • Updated the man page

New in h264enc 9.8.4 (Apr 1, 2014)

  • Add audio encoder info to the MKV global tags
  • Renamed the mencoder_opts() function to mencoder_opts_func() for consistency reasons
  • Fixed subtitles metadata info in the MKV global tags

New in h264enc 9.8.3 (Apr 1, 2014)

  • Bugfix: If using nosound and dumping subsequent subs, the audio option for MEncoder was set to -ao null which is not recognized by MEncoder.
  • Change it to -nosound instead

New in h264enc 9.7.6 (Nov 15, 2013)

  • Allow importing of PGS subtitles into the MKV container
  • Improved chapters file handling for MKV/MP4/OGM when input is file

New in h264enc 9.7.5 (Nov 9, 2013)

  • Added support for importing a chapters file for MKV/MP4/OGM when input is file
  • Added support for setting the audio language code for MKV/MP4/OGM/TS when input is file
  • Added support for setting the subtitle language code when importing subs into MKV/MP4/OGM

New in h264enc 9.7.4 (Nov 4, 2013)

  • Fixed copying of E-AC-3 audio
  • Set default value for 3D frame packing to 3 (side by side)
  • Moved some audio selection code into the new set_audio_codec_func() function.
  • Reduces some code duplication and removes the default_audio_codec_func() function

New in h264enc 9.7.3 (Nov 1, 2013)

  • Merged the file and dvd audio detection/selection code
  • Merged the audio code for the first and subsequent tracks
  • Set a default audio ID based on input (ie, 0 for file and 128 for DVD)
  • Use -demuxer lavf for file and dir input
  • Small improvements to the subtitles code
  • Renamed the -help switch to -h
  • Improved the way audio tracks information is presented to the user
  • Make destination dir if it doesn't exist for saving to the batchfile
  • Updated the man page

New in h264enc 9.6.9 (Oct 29, 2013)

  • Various bugfixes for multi-track audio support

New in h264enc 9.6.2 (Oct 23, 2013)

  • Added -readtoeof 1 option to the aften AC3 encoder. This ignores WAV header signaling
  • and fixes encoding from a named pipe.

New in h264enc 9.6.1 (Oct 21, 2013)

  • Added support for encoding to 640 kbps AC3 audio

New in h264enc 9.6.0 (Jul 2, 2013)

  • Fix audio TID for MKV when using neroAacEnc as encoder

New in h264enc 9.5.9 (Jun 12, 2013)

  • Set correct color prims, transfers and matrix coeffs for Blu-ray/AVCHD SD resolutions
  • Removed space between two questions
  • Removed the sd* and hd* presets. They are useless
  • Updated the man page

New in h264enc 9.5.7 (Jun 11, 2013)

  • Add fake_interlaced flag to 25fps/29.970fps content when using the Blu-ray presets. It allows to encode progressive 25p and 30p content but flags it as interlaced for Blu-ray compliance

New in h264enc 9.5.6 (Jun 10, 2013)

  • Add rc_lookahead to the Blu-ray/AVCHD presets
  • When input is file, detect and display info about audio codec, channels, sample rate and bitrate

New in h264enc 9.5.4 (Jun 8, 2013)

  • Improved the expand filter code
  • Optimized the Blu-ray/AVCHD HQ presets for better quality

New in h264enc 9.5.2 (May 29, 2013)

  • Fix OGM muxing with AC3 audio

New in h264enc 9.5.1 (May 28, 2013)

  • Use aften for AC3 audio encoding as MEncoder is currently broken. This bumps up the config file version to 22

New in h264enc 9.4.9 (Apr 12, 2013)

  • Use ffmpeg's MPEG12 decoder instead of the libmpeg12 one

New in h264enc 9.4.8 (Oct 2, 2012)

  • Added bluray_compat=1 parameter to the Blu-ray and AVCHD presets
  • Use 'true' instead of 'false' where appropriate
  • Updated the man page

New in h264enc 9.4.7 (Sep 27, 2012)

  • Change bad default bitrate value in DTS audio encoding to 384kbps

New in h264enc 9.4.6 (Apr 17, 2012)

  • Bugfix: FAAC encoding was using wrong language TID in mkvmerge. Should be 0 instead of 1 as we no longer encapsulate AAC in MP4
  • Removed --no-chapters mkvmerge option for FAAC encoding. It's no longer needed as we no longer store the AAC audio in MP4 container.

New in h264enc 9.4.5 (Apr 9, 2012)

  • Don't require FAAC to be compiled with MP4 container support (the -w option). Some distro's do not compile FAAC with MP4 support so play it safe and assume FAAC isn't compiled with MP4 support.

New in h264enc 9.4.4 (Feb 22, 2012)

  • Only 'sed' mbtree for multi-pass mode
  • Don't append "- chapter [id]" to output file when encoding only specific chapters

New in h264enc 9.4.3 (Jan 4, 2012)

  • Use -vc dummy in MPlayer in the audio code. Seems to work better on some files

New in h264enc 9.4.1 (Oct 10, 2011)

  • Introduced two new variables in the config file, DEFAULT_VID_BITRATE and DEFAULT_AUD_CODEC.
  • The first one sets the default video bitrate or CRF/QP value while the second one can
  • be used to set a default audio codec. This change updates the config file to version 20
  • Fixed a typo in man page

New in h264enc 9.3.9 (Aug 9, 2011)

  • Bugfix: selecting the x264 internal denoiser does nothing due to missing $nr variable
  • in the MEncoder options

New in h264enc 9.3.8 (Jul 23, 2011)

  • Update the mq, nq, hq, vhq, ehq, uhq and ihq presets. Increase subme by 1. For the ihq
  • preset, this means that it uses subme 11 now which requires latest x264 from git

New in h264enc 9.3.7 (May 15, 2011)

  • Fixed the subtitles function which got broken when the get_selection_func() function got introduced

New in h264enc 9.3.6 (Apr 4, 2011)

  • Fixed the subtitles function which got broken when the get_selection_func() function got introduced

New in h264enc 9.3.5 (Mar 29, 2011)

  • Added support for setting the crop rounding value

New in h264enc 9.3.4 (Mar 9, 2011)

  • Fix option 4 and 5 of the video_deblock_func() function. Wrong vars used

New in h264enc 9.3.3 (Feb 22, 2011)

  • Fixed a bug in directory batch mode were wrong conditional was used to check for the DEFOUTPUT variable
  • Display which file is currently being processed in batch mode
  • Check only for files while in batch mode
  • Do not exit if user types an incorrect answer to y/n questions.
  • Instead, ask the question again. Patch by Jan-Hendrik Peters and friends

New in h264enc 9.3.2 (Jan 10, 2011)

  • Use -demuxer lavf when trying to get the video length for bitrate calculation
  • for a target file size. Should be more reliable on M2TS/TS files
  • Add support for the delogo filter. Patch by Haiko Michelfeit
  • Config file version is bumped to 19
  • Updated copyright dates

New in h264enc 9.3.1 (Dec 6, 2010)

  • Fix for the custom preset (cp) option.

New in h264enc 9.3.0 (Nov 26, 2010)

  • Remove double $HOME variable in the -scan option

New in h264enc 9.2.9 (Oct 29, 2010)

  • Fix typo in the backup_file_func(): exisiting -> existing
  • Workaround multichan FAAC encoding. FAAC somehow does not like multichan PCM from
  • MPlayer but it does if one treats it as raw using -P in FAAC. Nero/FLAC/Vorbis have
  • no issues, though. Go figure
  • Added support for setting subtitle codepage during hardcoding of external subs
  • Added support for the audio equalizer filter. This updates the config file version
  • to 18
  • Removed 'time' requirement

New in h264enc 9.2.8 (Sep 16, 2010)

  • Workaround mencoder stupidity. With recent versions of mencoder that have subs
  • to dump a sub for importing into mkv/mp4, during multipass encoding the first sub
  • will always get hardcoded due to missing -nosub option in the 2nd and 3rd pass code.
  • This is only valid for multipass encodes so people using one pass modes (-1p, -qp or -crf)
  • are safe.

New in h264enc 9.2.7 (Sep 15, 2010)

  • Small update to the -scan option. Just check if input file is there, regardless if
  • user provides the full path or not
  • Enable trellis in some presets that use CAVLC

New in h264enc 9.2.6 (Aug 23, 2010)

  • Fixed a syntax error in the iphq preset

New in h264enc 9.2.5 (Aug 21, 2010)

  • Updated QuickTime & iPhone presets

New in h264enc 9.2.4 (Jul 21, 2010)

  • Typo fix in the display_quality_preset_func(); verslow -> veryslow. As this is an
  • informative function, it does not affect the encoding configuration
  • Force -nosub option in case subtitles are skipped. This is to prevent auto-loading
  • of subs.

New in h264enc 9.2.3 (Jun 28, 2010)

  • Added support for x264's preset, tune and profile options. This adds two additional
  • optional args [-t (for tune) and -pf (for profile)] which can only be used with an
  • x264 preset, not with the built-in script presets. If used with those, these args
  • will be ignored.
  • Examples on how to use x264 presets (which is also explained in the -help option)
  • h264enc -crf -p slow
  • h264enc -crf -p slow -t film
  • h264enc -crf -p slow -pf main
  • h264enc -crf -p slow -t film -pf high
  • One can also switch the -t and -pf options, eg: h264enc -crf -p slow -pf high -t film
  • Updated the man page

New in h264enc 9.2.2 (May 21, 2010)

  • Small bugfix in the get_devices_func() function; script exits when user hits enter
  • to accept default device
  • Remove AVI menu entry as supported container when using FAAC for audio encoding

New in h264enc 9.2.1 (Apr 29, 2010)

  • Reworked a bit the audio channels decode/output function. This function also got
  • renamed from audio_channels_func() to audio_channels_decode_func()
  • Added support for the audio channels filter which can be used to add/remove/route channels
  • This updates the config file to version 17 and adds variable ALLOW_AUD_CHANNELS
  • Bugfix: audio filters were not inserted when doing 1-pass encodes

New in h264enc 9.2.0 (Apr 24, 2010)

  • Switch to using external FAAC encoder to work around an issue in mkvmerge where
  • it flags AAC audio taken from an AVI as being Main profile regardless if LC profile
  • is used for encoding or not. Problem noticed & reported by benpro. This updates the
  • config file to version 16 and requires FAAC to be installed.
  • Same small cleanups
  • Updated the man page

New in h264enc 9.1.9 (Mar 29, 2010)

  • Replaced sed with awk for checking available disk space. Should work better on
  • FreeBSD systems. Patch by ennob from doom9
  • Updated interlace options and presets to support the latest x264 from git. Note
  • that due to these changes, h264enc's presets are incompatible with older x264
  • versions so please upgrade to latest x264 from git!
  • Small update to the preset.cfg file

New in h264enc 9.1.8 (Mar 19, 2010)

  • Small bugfix: keyint and keyint_min weren't passed on to MEncoder when using some
  • presets

New in h264enc 8.8.7 (Jun 19, 2009)

  • Simplifications to the MKV tagging code which reduces some code duplication
  • Bugfix: FAAC acodec2 variable has wrong mpeg value. Must be mpeg=4 instead of mpeg4. This results in failure in encoding of the second audio track when one selects FAAC as encoder
  • Bugfix: FLAC audio was ignored for the second track due to missing value in the selection of the case statement
  • Added support for tagging of MKV files when doing a directory batch encoding
  • Replaced the IMPSUB1, IMPSUB2 and IMPSUB3 variables, used to import subs when input type is file/directory/vcd, by array variables EXTSUB[1], EXTSUB[2] and EXTSUB[3]. This allows for less code duplication as these array variables are shared by all input types (including DVD) and thus we only need to do a small loop and add their values if not empty to the MKVSUBS, MP4SUBS and OGMSUBS variables
  • Use as temp directory $HOME/.h264enc/job
  • Added new function audio_stream_copy_func() which will print a warning that audio stream copy in directory batch encoding mode is not recommended unless the user is certain that the files have a supported audio codec by the MKV/MP4/OGM/TS containers
  • Group audio filters under a submenu similar to how the video filters are grouped
  • Some small cleanups

New in h264enc 8.7.2 (Feb 16, 2009)

  • Rewrote and simplified the video_denoise_func() function. Merged the presets with the denoise filters
  • Added two Archos 5 presets (ar5 and ar5hq)
  • Removed unused global_header variable from h264enc and the preset.cfg file
  • Add audio meta-data info for the MKV container when using aac, mp3, ac3 or vorbis audio
  • Revert back to the old crop detection method for DVDs as it was more precise in some cases than the currently used one. This forces the video codec during crop detection to mpeg12 instead of ffmpeg2 as the -sstep option doesn't play nice with ffmpeg2
  • Updated the man page

New in h264enc 8.7.1 (Feb 3, 2009)

  • Use keyint_min of 2 instead of 1 for the Blu-ray/AVCHD presets to prevent consecutive IDR frames
  • Added -loop 1 to MPlayer to prevent infinite looping if user has set -loop 0 in MPlayer's config file. Suggested by Jan Paral (Dept. of Physics, Univ. of Alberta, Canada)

New in h264enc 8.7.0 (Jan 21, 2009)

  • Added support for setting the position of the expand filer when scaling is used. The user can now choose to place it before or after the scale filter. Previously the expand filter was always placed after the scale filter which is not optimal in certain cases
  • Small improvement/fix: when encoding two audio tracks to HE-AAC audio and muxing them into MKV, mkvmerge uses for both tracks the same track ID (1) while h264enc assumes that the second track uses track ID 2 which is wrong so the option --aac-is-sbr 2:1 is incorrect here and should actually be --aac-is-sbr 1:1 for the second audio track

New in h264enc 8.6.9 (Jan 17, 2009)

  • Add title/movie name to MKV and OGM as meta-info. The title is taken from the output name provided by the user. For directory encodings, this will be skipped
  • Add audio codec and audio language meta-info to MKV when encoding DVDs and copying the audio track(s). Requested by Quentin Jackson
  • Added support for the expand video filter
  • Slightly improved info when the script is called without any parameters
  • Implemented denoising presets for the 'tn' temporal denoiser
  • Merge the mp3, aac, ac3 exporting code with the ffac3 and ffdts one since it's the same for the second audio track

New in h264enc 8.6.8 (Jan 14, 2009)

  • Calculate and display the amount of frames when scanning a video file. Also display seconds in addition to minutes for the runtime
  • Replaced MB and GB with MiB and GiB
  • Updates to the hq, vhq, ehq, ihq, ani and anihq presets: lower b-frames from 16 to 5 for the hq, ani and anihq, from 16 to 6 for the vhq, from 16 to 7 for the ehq and from 16 to 8 for the ihq presets and use b_adapt=2 instead of b_adapt=1. These changes increase encoding time a bit but are worth it quality-wise
  • Updated QP range, add 0 for lossless mode

New in h264enc 8.6.7 (Jan 7, 2009)

  • Added two AVCHD presets (avchd and avchdhq)
  • Removed tsMuxeR options insertSEI, contSPS and --vbv-len when using the Blu-ray and AVCDHD presets
  • Use 'source' instead of '.' for importing files into the script. Makes it easier for me to read when my eyes are tired
  • Moved the CONFIGDIR variable to the configuration file. This allows the user to set a custom temporary directory for storing temp files for encoding/remuxing. If the variable is unset in the config file, h264enc defaults to $HOME/.h264enc/h264enc_. This change updates the config file to version 3. Requested by Matyas Sustik
  • Improvements to the audio_resample_func() function. Automatically detect the audio sample rate of the content and display it. Also, moved the resample filters into a function called audio_resample_filters_func(). This change allows for comparing the detected with the selected sample rate and if both are the same, resampling will be skipped
  • For directory encodings, offer an option to automatically delete the AVI file after remuxing to the other containers. This can considerably reduce disk space usage, especially when encoding a directory with a lot of files in it.
  • Replaced all 'tail -1' commands with 'tail -n 1' since 'tail -1' is made obsolete as stated by the info page of tail
  • Lowered psy trellis by 0.1 for all presets that use it. Seems 0.3 can cause weak mosquito noise on some content, even at such low values
  • Use a weak AQ strength of 0.5 for the anime presets to reduce blocking in dark areas
  • Added -channels option when scanning a video file for its audio properties
  • Updated the man page

New in h264enc 8.6.4 (Dec 5, 2008)

  • Request from yeye69: add three VDPAU/DXVA presets (vdhq, vdehq and vdihq)
  • Changed b_adapt=1 to b_adapt=2 for all presets that use 6 b-frames or less
  • Improved dealing with LPCM audio on DVDs. If the user has selected to encode a second audio track and that track uses LPCM as audio, the encoding will fail since -oac copy will not be able to copy LPCM in AVI. For this reason, h264enc will check to see if the second audio track is LPCM audio and will use -oac pcm instead of -oac copy
  • DVD channels settings can be now independently controlled for each audio track
  • Added support for AC3 in MP4. This requires latest gpac version 0.4.5 compiled with liba52 support!
  • Disabled AQ for the anime presets
  • Updated the man page

New in h264enc 8.6.1 (Nov 26, 2008)

  • Empty variables cleanups
  • Bugfix: the vobsubout3 variable was not tested in the MKV/MP4 muxing code. This leads to the third subtitle not being imported into these containers
  • Added support for TS/Blu-ray muxing when batch encoding files in a directory
  • Small improvements for batch encoding of video files in a directory
  • New formulas to calculate the video bitrate for a target filesize. The user can choose between MeGUI's formula, h264enc's refactored MeGUI formula and the old h264enc/ripdvd formula