View Full Version : ffx264 & ffhevc for Linux/BSD


microchip8
4th September 2015, 13:21
I wrote two small, simple and basic shell scripts for Linux. I did it because I encountered a few video remuxes (from my own Blu-rays) that I couldn't encode with my h264enc script so I turned to ffmpeg which was able to handle them.

ffhevc & ffx264 won't be anything big and professional like h264enc. I intend to keep them both basic and with the options I most often use so stuff like many audio/video filters, different input sources, etc, etc won't be added, unless I really need them on a frequent basis in the future.

However, if you need something and are willing to implement it, I accept patches. :)

ffx264: https://sourceforge.net/projects/ffx264/

ffhevc: https://sourceforge.net/projects/ffhevc/

microchip8
5th September 2015, 13:11
ChangeLog for ffhevc 1.3

* Added support for copying a single subtitle. Note that this is only supported when output container is set to mkv (default)
* Changed var OUTPUT in the config file to OUTDIR. Also changed internal var OUT to OUTPUT
* Updated the README file


ChangeLog for ffx264 1.5

* Added support for copying a single subtitle. Note that this is only supported when output container is set to mkv (default)
* Changed var OUTPUT in the config file to OUTDIR. Also changed internal var OUT to OUTPUT
* Updated the README file

microchip8
5th September 2015, 17:39
ChangeLog for ffhevc 1.4

* Implemented support for virtually an unlimited audio track encodings
* Ask for AC-3 bitrate instead of setting it in the config file
* Updated the README file


ChangeLog for ffx264 1.6

* Implemented support for virtually an unlimited audio track encodings
* Ask for AC-3 bitrate instead of setting it in the config file
* Updated the README file

microchip8
6th September 2015, 00:10
ChangeLog for ffhevc 1.5

* Bugfix: dB was missing after the value of the audio volume filter
* Be a bit more consistent with the audio variables
* Added support for encoding to AAC audio
* Use eval instead of seq for the for audio loops as seq is Linux-specific
* Added an ASCII art banner
* Export encoding params to a shell script and source it for encoding
* Place the libx265 params in the config file for easy modifications
* Made auto-cropping optional. It can be disabled in the config file
* Made the SUBS var in the config file consistent with the ones that accept "y" or "n" as value
* Added support for specifying the audio language metadata
* Automatically add the title of the content based on provided output name
* Automatically add the audio codec name metadata
* Updated the README file


ChangeLog for ffx264 1.7

* Bugfix: dB was missing after the value of the audio volume filter
* Be a bit more consistent with the audio variables
* Added support for encoding to AAC audio
* Use eval instead of seq for the for audio loops as seq is Linux-specific
* Added an ASCII art banner
* Export encoding params to a shell script and source it for encoding
* Place the libx264 params in the config file for easy modifications
* Made auto-cropping optional. It can be disabled in the config file
* Made the SUBS var in the config file consistent with the ones that accept "y" or "n" as value
* Added support for specifying the audio language metadata
* Automatically add the title of the content based on provided output name
* Automatically add the audio codec name metadata
* Updated the README file

microchip8
6th September 2015, 11:22
ChangeLog for ffhevc 1.6

* Added support for setting the genre and year metadata
* Added support for virtually an unlimited amount of subtitles copy
* Colorized the banner
* Cosmetics
* Updated the README file


ChangeLog for ffx264 1.8

* Added support for setting the genre and year metadata
* Added support for virtually an unlimited amount of subtitles copy
* Colorized the banner
* Cosmetics
* Updated the README file

microchip8
7th September 2015, 15:37
ChangeLog for ffhevc 1.7 and ffx264 1.9

* Bugfix: the specified channels to decode wasn't honored due to missing 'a' in the -ac option
* Added support for encoding to DTS audio
* Reduced some duplication in the audio code
* More cosmetics
* Updated the README file

microchip8
8th September 2015, 09:29
ChangeLog for ffhevc 1.8 and ffx264 2.0

* Enabled subs copy for other containers than mkv
* Some tweaks in the audio code
* Updated the README file

microchip8
9th September 2015, 14:18
ChangeLog for ffhevc 1.9 and ffx264 2.1

* Removed the $ in the index of array variables
* Use an if conditional instead of case to check for DTS audio and to check which audio codec has been selected
* Support setting the paths to mplayer/ffmpeg/ffprobe in the config file
* Support setting the language metadata for subs copy
* Fixed a small issue in the subtitles code

microchip8
10th September 2015, 14:37
ChangeLog for ffhevc 2.0 and ffx264 2.2

* Tweaks to the audio code
* Somehow I removed the chapters option. Add it back

microchip8
11th September 2015, 13:25
ChangeLog for ffhevc 2.1 and ffx264 2.3

* Update to the default libx264/libx265 encoding params

microchip8
12th September 2015, 19:56
ChangeLog for ffhevc 2.2 and ffx264 2.4

* Added audio channel layout mappings

microchip8
13th September 2015, 09:46
ChangeLog for ffhevc 2.3 and ffx264 2.5

* Added support for scaling
* Updated the README file

microchip8
14th September 2015, 19:22
ChangeLog for ffhevc 2.4.0 and ffx264 2.6.0

* Fixed an issue where -vf was added despite not using any filters

microchip8
15th September 2015, 10:14
ChangeLog for ffhevc 2.4.1 and ffx264 2.6.1

* Added support for deinterlacing
* Updated the README file

microchip8
17th September 2015, 10:06
ChangeLog for ffhevc 2.4.2 and ffx264 2.6.2

* Small update to the channel layout mappings

microchip8
18th September 2015, 06:48
ChangeLog for ffhevc 2.4.3 and ffx264 2.6.3

* Removed the workaround for DTS audio since we always use "5.1(side)" for 6 channels output
* Support setting the MAX_AUD_TRKS and MAX_SUBS variables in the config file to "auto". When set to "auto", it will ask for as many as detected audio tracks/subtitles

microchip8
19th September 2015, 08:51
ChangeLog for ffhevc 2.4.4 and ffx264 2.6.4

* Added support for encoding to MP3, Vorbis, FLAC and Opus audio
* Do some sanity checks for AC3/DTS channels
* Updated the README file

microchip8
4th October 2015, 12:28
ChangeLog for ffhevc 2.4.5 and ffx264 2.6.5

* Removed a test condition in the mp3 code that is not really needed
* Cosmetics in the audio code
* Added a counter

microchip8
31st October 2015, 13:54
ChangeLog for ffhevc 2.4.6 and ffx264 2.6.6

* Added support for audio resampling

microchip8
2nd November 2015, 18:06
ChangeLog for ffhevc 2.4.7 and ffx264 2.6.7

* Use -filter:a:id aresample instead of -ar:a:id

microchip8
3rd November 2015, 13:02
ChangeLog for ffhevc 2.4.8 and ffx264 2.6.8

* Use a single var to set the audio filters, in preparation for possible future extensions

microchip8
4th November 2015, 00:05
ChangeLog for ffhevc 2.4.9 and ffx264 2.6.9

* Made audio resampling optional

microchip8
21st November 2015, 22:00
ChangeLog for ffhevc 2.5.0 and ffx264 2.7.0

* Don't use dB for the volume filter

microchip8
26th November 2015, 18:42
ChangeLog for ffhevc 2.5.1

* Default params performance improvements. ONLY USE THIS VERSION IF YOU HAVE THE LATEST libx265/ffmpeg

microchip8
18th December 2015, 22:20
ChangeLog for ffhevc 2.5.2 and ffx264 2.7.1

* Add back using dB for the volume filter

microchip8
19th December 2015, 14:16
ChangeLog for ffhevc 2.5.3 and ffx264 2.7.2

* Added support for audio normalization using the Dynamic Audio Normalizer filter

microchip8
29th March 2016, 20:18
ChangeLog for ffhevc 2.5.4

* Support setting the MPlayer options
* Minor tweaks to the default x265 encoding options


ffx264 2.7.3

* Support setting the MPlayer options

microchip8
16th May 2016, 13:23
ChangeLog for ffhevc 2.5.5 and ffx264 2.7.4

* Only use side channels for DTS encoder which doesn't support anything else

microchip8
21st May 2016, 03:20
ChangeLog for ffhevc 2.5.6 and ffx264 2.7.5

* Add audio channel metadata

microchip8
27th May 2016, 17:52
ChangeLog for ffhevc 2.5.7 and ffx264 2.7.6

* Don't rm config file upon update. Just move it to .ffhevc.old / .ffx264.old
* Add audio bitrate metadata

microchip8
30th May 2016, 14:10
ChangeLog for ffhevc 2.5.8 and ffx264 2.7.7

* Support asking for container format if the CON variable is not set in the config file
* Warn and exit if user chooses MP4/M4V container and DTS audio
* Some minor code improvements

microchip8
7th June 2016, 20:09
ChangeLog for ffhevc 2.5.9 and ffx264 2.7.8

* Added support for cover art for the MKV container

smok3
8th June 2016, 05:55
Thanks for sharing, this will come handy. (I've been doing something similar (https://github.com/brontosaurusrex/singularity) (but much simpler), mostly various transcoders as tools/helpers for my daily editing needs. Also trying to be more modular this time, to avoid long spaghetti code.)

microchip8
8th June 2016, 11:23
ffx264/ffhevc are pretty simple and small. I will keep them that way and will no longer go the h264enc way. The latter got too complex and big for my taste. With ffx264/ffhevc I try to add just the "enough" for me, what I require to encode bluray remuxes

microchip8
9th June 2016, 03:28
ChangeLog for ffhevc 2.6.0 and ffx264 2.7.9

* Warn and exit if user provides an unsupported image format for cover art
* Added support for nosound option to disable audio encoding
* Updated the README file

microchip8
15th June 2016, 03:05
ChangeLog for ffhevc 2.6.1 and ffx264 2.8.0

* Added the MOV container to the list of containers that don't support DTS audio
* Made the audio volume filter optional

microchip8
29th June 2016, 15:09
ChangeLog for ffhevc 2.6.2

* Tuning to the default encoding options

microchip8
30th June 2016, 14:24
ChangeLog for ffhevc 2.6.3

* Added support for the built-in x265 presets
* Added a -h|--help option
* Tuning to the default encoding options v2
* Updated the README file


ChangeLog for ffx264 2.8.1

* Added support for the built-in x264 presets
* Added a -h|--help option
* Updated the README file

microchip8
3rd July 2016, 00:57
ChangeLog for ffhevc 2.6.4

* recursion-skip -> rskip to the default encoding options

microchip8
3rd July 2016, 18:26
ChangeLog for ffhevc 2.6.5 and ffx264 2.8.2

* Placed the supported audio codecs in a menu
* Updated the audio codecs default bitrates

microchip8
30th July 2016, 13:21
ChangeLog for ffhevc 2.6.6

* Update to the default encoding options

microchip8
12th August 2016, 00:15
ChangeLog for ffhevc 2.6.7 and ffx264 2.8.3

* Set the first video/subtitle/audio track as default

microchip8
16th August 2016, 13:37
ChangeLog for ffhevc 2.6.8 and ffx264 2.8.4

* Check the value of the astrm variable. This allows to properly remove any audio options in case no audio is detected
* Only display the audio codecs menu when audio has been detected or the user explicitly sets the track ID

microchip8
16th August 2016, 19:15
ChangeLog for ffhevc 2.6.9 and ffx264 2.8.5

* Switched to using getopts for parsing the options
* Added support for using x264/x265 tune profiles

microchip8
17th August 2016, 03:02
ChangeLog for ffhevc 2.7.0 and ffx264 2.8.6

* Added support for custom preset files (loaded with the new -c option)
* Added an example custom preset file to the package
* Added support for editing the config file with the vi text editor, using the new -e option of ffhevc/ffx264
* Updated the README file

microchip8
18th August 2016, 11:10
ChangeLog for ffhevc 2.7.1 and ffx264 2.8.7

* Added an EDITOR variable to the config file so the user can set his preferred editor for the -e option
* Added -r option to reset the config file to its defaults
* Cosmetics in the help info code
* Added man page

microchip8
18th August 2016, 17:38
ChangeLog for ffhevc 2.7.2 and ffx264 2.8.8

* Support asking for CRF value if it isn't set in the config file
* Support custom config files with using the x264/x265 preset/tune profiles
* Minor code updates
* Updated the man page

microchip8
19th August 2016, 15:04
ChangeLog for ffhevc 2.7.3 and ffx264 2.8.9

* Increased the frames value for the crop detection code
* Added ogv to list of containers not supporting DTS
* Cosmetics

microchip8
19th August 2016, 23:33
ChangeLog for ffhevc 2.7.4 and ffx264 2.9.0

* Added support for E-AC-3 audio encoding
* Add title metadata to the video stream

microchip8
20th August 2016, 21:26
ChangeLog for ffhevc 2.7.5 and ffx264 2.9.1

* NOSOUND audio option takes precedence so clear any other audio options given
* Workaround an ffmpeg disposition issue where in some cases it sets the default flag on all subsequent subs/audio tracks
* Bumped up default AAC bitrate
* Move the MOOV atom for MP4 files to the beginning of the file, for streaming-friendly files
* Enforce lower-case for container extension
* Added install script to the package

microchip8
23rd August 2016, 13:14
ChangeLog for ffhevc 2.7.6 and ffx264 2.9.2

* Merged the AC3/EAC3 channel check
* Bumped up EAC3 default bitrate to 768 kbps
* Use none instead of metadata flag for disposition for subsequent subs/audio tracks

microchip8
1st September 2016, 23:42
ChangeLog for ffhevc 2.7.7 and ffx264 2.9.3

* Renamed config variable MAX_AUD_TRKS to MAX_AUD_TRACKS
* Removed -strict -2 option for AAC audio. It is no longer needed since about mid 2015

microchip8
2nd September 2016, 13:59
ChangeLog for ffhevc 2.7.8 and ffx264 2.9.4

* Added support for multipass encoding, to be activated with the new -m option
* Added support for calculation of video bitrate for target file size when using bitrate-based encoding
* Replaced some simple if conditionals with test cases
* Updated the man page and README file

microchip8
5th September 2016, 09:18
ChangeLog for ffhevc 2.7.9 and ffx264 2.9.5

* Improved crop detection
* Removed dependence on MPlayer
* Added support for encoding to PCM audio
* Use ffprobe directly instead of outputting to files
* Updated the man page and README file

microchip8
5th September 2016, 23:06
ChangeLog for ffhevc 2.8.0 and ffx264 2.9.6

* Replaced some simple if conditionals with test cases
* Don't encode audio during first pass of 2-pass mode
* Bugfix: fix audio copy
* Target file size calc does not work with FLAC, PCM or Copy so just skip it
* Reduced ffmpeg command line options duplication in the encoder_func() function

microchip8
6th September 2016, 13:51
ChangeLog for ffhevc 2.8.1 and ffx264 2.9.7

* Added support for the new vaguedenoiser filter. Requires latest ffmpeg from git
* Merged the mp3 audio code with the rest
* Auto-add a metadata comment
* Updated the README file

microchip8
9th September 2016, 12:00
ChangeLog for ffhevc 2.8.2 and ffx264 2.9.8

* Adaptive channel range and defaults based on audio codec
* Made metadata comment optional, allow to modify it and place it in the config file
* Some minor tweaks

microchip8
14th September 2016, 14:45
ChangeLog for ffhevc 2.8.3 and ffx264 2.9.9

* Removed stray, unneeded MPLAYERPARAMS from config file
* Don't set by default a color prim/matrix in the x264 options in the config file
* Added support for rotating with the transpose filter
* Support setting the color primaries/matrix/transfer

microchip8
18th September 2016, 17:18
ChangeLog for ffhevc 2.8.4

* Add undefined option to the color primaries and make it default
* Support asking for crop values if autocrop is disabled
* Made most audio/video filters optional by allowing to enable or disable a filter in the config file
* Use menu tables for the audio sample rates
* Cosmetics


ChangeLog for ffx264 3.0.0

* Add undefined option to the color primaries and make it default
* Support asking for crop values if autocrop is disabled
* Made most audio/video filters optional by allowing to enable or disable a filter in the config file
* Use menu tables for the audio sample rates
* Force threads to auto
* Cosmetics

microchip8
28th September 2016, 22:40
ChangeLog for ffhevc 2.8.5 and ffx264 3.0.1

* Added support for the atadenoise video filter

microchip8
1st October 2016, 23:28
ChangeLog for ffhevc 2.8.6 and ffx264 3.0.2

* Allow volume setting when normalize is used
* Cosmetics: add header title to the sample rate options
* Bump up default video bitrate for 1/2-pass mode and AAC/Opus/Vorbis bitrates
* Simplify atadenoise options

microchip8
5th October 2016, 23:21
ChangeLog for ffhevc 2.8.7 and ffx264 3.0.3

* Audio channel layout 6.1(back) -> 6.1 and 7.1(wide-side) -> 7.1
* Cosmetics: add rotate filter menu banner
* Support 180° video rotating

microchip8
11th October 2016, 20:07
ChangeLog for ffhevc 2.8.8 and ffx264 3.0.4

* Fix video rotation for 180°. Don't use transpose=0 and transpose=3 as they cancel each others out

microchip8
1st November 2016, 01:37
ChangeLog for ffhevc 2.8.9 and ffx264 3.0.5

* Added support for bobbing (deinterlace at double FPS)
* Cosmetics: add menu header to the Color Primaries option

microchip8
2nd November 2016, 20:36
ChangeLog for ffhevc 2.9.0 and ffx264 3.0.6

* Added support for motion compensation deinterlacing for both deinterlacing at original FPS and bobbing
* Use denoise var instead of denoiser for the denoise filters and rotate var instead of transpose for the transpose filter
* Added support for deblocking with the fspp filter. This bumps up the config file version to 22
* Update to the README file

microchip8
3rd November 2016, 16:25
ChangeLog for ffhevc 2.9.1 and ffx264 3.0.7

* Added support for interlace-aware encoding
* Added support for the spp, uspp and pp7 deblockers
* Support asking for software scaler during exec time
* Added new SCALE var to the config file to enable/disable support for software scaling. Bumps up the config file version to 27 (23 for ffx264)
* Do a test write to see if output directory is writable by the script executing user
* Updated the README file

microchip8
4th November 2016, 11:37
ChangeLog for ffhevc 2.9.2 and ffx264 3.0.8

* Bugfix: the scale variable was used twice for different things causing an overwrite of the scale filter parameters, which eventually results in ffmpeg complaining and exiting
* Added support for NTSC <-> NTSC and NTSC <-> PAL frame rate conversions
* New var in config file, VID_FPS_CONVERT, to enable/disable FPS conversion. Bumps up config file version to 28 (24 for ffx264)
* Moved the FPS detection code into its own function so it can be easily reused
* Minor cosmetics
* Updated the README file

microchip8
5th November 2016, 11:52
ChangeLog for ffhevc 2.9.3 and ffx264 3.0.9

* Use a single var, $ofps, to set the output FPS for both deinterlace bobbing and FPS conversion
* Use new $bob var to indicate that we do bobbing and use that var to disable FPS conversion
* Renamed $fp var in video_deinterlace_func() to $fpar
* Print a warning message that FPS conversion gets disabled if the user chooses audio copy
* Added support for the FDK-AAC audio codec. Requires ffmpeg to be compiled with libfdk-aac support
* Support FPS conversion with the 'fps' filter
* Some minor code optimizations

microchip8
6th November 2016, 10:47
ChangeLog for ffhevc 2.9.4 and ffx264 3.1.0

* Bugfix: resampling wasn't working for fdk-aac due to missing value in the case statement
* Check if output file exists and if so, move it to $file.old
* Use test directly instead of an if condition to set the audio filters
* Support bitrate calculations for target file size when doing audio copy
* Use fdk* in the case statements for easier typing
* Renamed variable astrm to astream for clarity
* Use [1-2]p in the case statements for passmodes instead of 1p|2p
* New function, video_field_parity_func(), to detect and report the interlace field order. Used by motion-compensation deinterlacing and interlaced encoding
* Detect and display audio sample rate in case resampling is chosen
* Improvements to the video_fps_func() function. Get the FPS value directly instead of outputting to a file and reading it

microchip8
7th November 2016, 17:16
ChangeLog for ffhevc 2.9.5 and ffx264 3.1.1

* Cosmetics in the code for deinterlacing
* Instead of skipping FPS conversion if the FPS can't be detected, ask the user to provide it
* Use single brackets instead of double ones in the nosound setup code
* Added license snippet at the top of the script
* Added support for outputting to additional container formats
* Do some checking on supported audio codecs for the supported containers
* Check specified container and warn and exit if it's not supported
* Support setting the FLAC compression level
* Break out of the if conditionals in the audio code and replace them with two case statements
* Update to the README file


Additional for ffx264

* Added h264_mp4toannexb flag in case we're outputting to the AVI container

microchip8
8th November 2016, 11:05
ChangeLog for ffhevc 2.9.6 and ffx264 3.1.2

* Added support for encoding to TrueHD audio. Requires a very recent ffmpeg version, preferably latest from git
* Some small improvements to the additional container output
* Moved the video_deinterlace_func() function inside the actual deinterlace code
* Update to the README file
* Update to the man page

microchip8
9th November 2016, 08:00
ChangeLog for ffhevc 2.9.7 and ffx264 3.1.3

* Renamed config var CON to CONFMT. Updates config file version to 29 (25 for ffx264)
* Reduced some duplication in the audio codec checks for the container formats
* Reduced some error message duplication when checking if an additional container supports an audio codec
* Rework to the additional container selection code
* Added color functions for the additional container conversion


Additional for ffhevc

* Added back support for the MOV container

microchip8
10th November 2016, 22:16
ChangeLog for ffhevc 2.9.8 and ffx264 3.1.4

* Check if name of input file matches that of output file and warn and exit. Requires the realpath utility
* Added support for the m2ts, mts, ts (and flv for ffx264) containers
* Merged the code that checks if an audio codec is supported by a container with that that checks for additional output containers. Removes code duplication and maintainability
* Update to the audio sample rates. Sync them with ffmpeg -h encoder=<encoder>
* Restrict TrueHD channels to 2, 5 and 6 as that's what the encoder currently supports
* Updated the README file

microchip8
12th November 2016, 11:50
ChangeLog for ffhevc 2.9.9 and ffx264 3.1.5

* Added support for importing external srt/ssa subtitles for the mkv, m2ts, mts and ts containers
* Moved the subtitle code into its own video_subtitles_func() function
* Added support for simultaneously copying subtitles from the input file and copying external ones
* Renamed variable SUBT to SUBNR for clarity
* Updated the README file and man page

microchip8
13th November 2016, 12:31
ChangeLog for ffhevc 3.0.0 and ffx264 3.1.6

* Added support for batch encoding mode, to be activated with the new -b option. It's used to encode directories with video files
* Renamed variable $mode to $encmode for clarity
* Reworked the input/output code
* Instead of relying on a config var to set the subtitles amount to support, ask the user each time to provide it. Makes the code less complex and easier to extend in the future. Bumps up config file version to 30
* Check if the X265PARAMS (X264PARAMS for ffx264) var is missing from config in case we're not using an x265/x264 preset
* Updated the man page


Additional for ffhevc

* Disabled strong-intra-smoothing in the default x265 options in the config file

microchip8
14th November 2016, 10:11
ChangeLog for ffhevc 3.0.1 and ffx264 3.1.7

* Set default amount of subtitles to 1 instead of exiting when no value is given
* Allow the user to choose the amount of audio tracks he wants at run time instead of requiring it to be set in the config file. This removes config file var MAX_AUD_TRACKS and bumps up version to 31 (27 for ffx264)
* Renamed array variables audmapval and submapval to audindex and subindex since we're not mapping but specifying the audio/sub index id with these vars
* Fixed a possible case where audio params weren't cleared in case the nosound option was chosen


Additional for ffhevc

* Removed an if conditional checking for MAX_SUBS which no longer is used

microchip8
16th November 2016, 09:55
ChangeLog for ffhevc 3.0.2 and ffx264 3.1.8

* Added support for 3-pass encoding
* Added support for setting a default audio codec in the config file. Bumps up config file version to 32 (28 for ffx264)
* Moved setting the video bitrate before the video filters
* More variables renamings and other small code tweaks
* Do some checking on duplicate entries when using additional containers and warn and exit
* Updated the man page

microchip8
18th November 2016, 02:15
ChangeLog for ffhevc 3.0.3 and ffx264 3.1.9

* Use process number instead of .old when renaming existing files
* Added support for detelecining (IVTC). Bumps up config file version to 33 (29 for ffx264)
* Minor improvements to the cropping code

microchip8
20th November 2016, 15:04
ChangeLog for ffhevc 3.0.4 and ffx264 3.2.0

* Moved checks for supported containers into its own function, check_container_func()
* Improvements to gathering information about the input file. Saves us piping to sed and in some cases piping to awk and tail
* Removed the NOSOUND option since the user can specify 0 for amount of audio tracks which equals to encoding with the NOSOUND option
* Placed both subcopy and subcpy variables into a single subparams variable. This also removes the NOSUBS variable
* Placed the video length detection code into its own function, video_length_func(), as it is used in two places so we can save writing the same stuff twice
* Instead of skipping bitrate calc for target file size in case we can't detect the video length, ask the user to provide it
* Removed install script and added a Makefile for installation
* Added new INSTALL file with install/uninstall instructions

microchip8
23rd November 2016, 16:23
ChangeLog for ffhevc 3.0.5 and ffx264 3.2.1

* Added support for FLAC audio in MP4. Requires a very recent ffmpeg version
* Added the $strict variable to the remuxing code
* Use the improved way of gathering info for the audio sample rate detection
* Added the ability to flag the first internal or external subtitle as default, when using the option for internal and external subtitle copying
* Added support for LD-AAC audio encoding with libfdk-aac
* Removed stderr to stdout redirection (2>&1) for some of the ffprobe lines. It is no longer needed

microchip8
2nd December 2016, 23:39
ChangeLog for ffhevc 3.0.6 and ffx264 3.2.2

* Merged the output code for the batch mode with that for single file input
* Fixed an issue where remuxing to MP4 may fail in case the user chooses FLAC audio
* Renamed variable $extracon to $remuxcon and $econ to $rcon
* Made strict option "global" so I won't have to worry about adding experimental audio codecs support in the future
* Clean ups to the FPS conversion menu

microchip8
4th January 2017, 13:58
ChangeLog for ffhevc 3.0.7 and ffx264 3.2.3

* Use readlink to get the full path to the cover art image. Fixes an issue when running in batch mode

microchip8
5th January 2017, 12:32
ChangeLog for ffhevc 3.0.8 and ffx264 3.2.4

* Support per-file auto-cropping when running in batch mode
* Use internally full paths for input and output
* Add a test case for output directory to the script that gets sourced for encoding

microchip8
6th January 2017, 11:48
ChangeLog for ffhevc 3.0.9 and ffx264 3.2.5

* Bugfix: default output directory wasn't made when running in batch mode
* Display found per-file crop values when running in batch mode

microchip8
8th January 2017, 12:21
ChangeLog for ffhevc 3.1.0 and ffx264 3.2.6

* Support SMPTE-2084 transfer characteristics
* Placed the video post-processing filters in their own sub-menu
* Some small changes to the FPS conversion code

microchip8
9th January 2017, 13:41
ChangeLog for ffhevc 3.1.1 and ffx264 3.2.7

* Fix a possible issue when detecting the FPS value that occurs with some files
* Expand directory path internally instead of exporting the dirname command to the file that gets sourced for encoding
* Use 'bc' for calculating the detected FPS value
* Only use fractions internally for FPS values. The user should be presented with the floating point value

microchip8
12th January 2017, 01:23
ChangeLog for ffhevc 3.1.2 and ffx264 3.2.8

* Added support for pixel format conversion
* Added support for colorspace conversion

microchip8
13th January 2017, 12:39
ChangeLog for ffhevc 3.1.3 and ffx264 3.2.9

* Support 50 <-> 60/59.940 FPS conversions
* Use upper-case words for the color primaries/transfers/matrices and pixel formats
* Support 4.0 audio channel layout in addition to Quad

microchip8
15th January 2017, 12:39
ChangeLog for ffhevc 3.1.4 and ffx264 3.3.0

* Support ALAC audio encoding
* Some small improvements to the audio code
* A few variable renamings, mostly in the case statements

microchip8
18th January 2017, 15:02
ChangeLog for ffhevc 3.1.5 and ffx264 3.3.1

* Check channel amount for the libfdk_aac encoder and warn and exit on 7 channels as it doesn't support it
* Use range=tv instead of range=mpeg for the color conversion filter
* Bugfix: return value of variable autocrop wasn't checked when running in batch mode resulting in always cropping the input files
* Bugfix in the $OUTPUT variable when running in batch mode
* Removed readlink from the batch mode variables as it's no longer needed

microchip8
20th January 2017, 14:35
ChangeLog for ffhevc 3.1.6 and ffx264 3.3.2

* Fixed a small issue in the output for batch mode

microchip8
24th January 2017, 17:16
ChangeLog for ffhevc 3.1.7 and ffx264 3.3.3

* Removed one of the OUTPUT variables for batch mode. It is no longer needed
* Rewrote the audio channel layout code. It is now based on per-codec encoder support
* Repositioned the audio channel checking code

microchip8
6th February 2017, 21:39
ChangeLog for ffhevc 3.1.9 and ffx264 3.3.5

* Support the framestep filter for FPS conversion
* Support halving the frame rate. Only supported for 50/59.940/60 FPS input

microchip8
22nd February 2017, 16:14
ChangeLog for ffhevc 3.2.0 and ffx264 3.3.6


* Support high FPS -> low FPS conversions
* Bugfix: missing options in FPS conversion menu

microchip8
6th March 2017, 22:28
ChangeLog for ffhevc 3.2.1

* Update audio compression level values
* Initial support for HDR VUI signaling

microchip8
18th March 2017, 22:56
ChangeLog for ffhevc 3.2.2 and ffx264 3.3.7

* Update audio compression level values (ffx264 only)
* Update colorspace entry for NTSC video
* Fixed bug in the video_colorspace_func() values

microchip8
28th March 2017, 20:01
ChangeLog for ffhevc 3.2.3

* Update to the default encoding options

microchip8
3rd April 2017, 20:01
ChangeLog for ffhevc 3.2.4 and ffx264 3.3.8

* Support setting the input/output color range

microchip8
13th May 2017, 19:00
ChangeLog for ffhevc 3.2.5 and ffx264 3.3.9

* Support accurate rounding for the software scalers
* Support full chroma interpolation for the software scalers
* Use the flags option of the scale option instead of -sws_flags to set scaler and its options

microchip8
14th May 2017, 10:33
ChangeLog for ffhevc 3.2.6 and ffx264 3.4.0

* Bugfix in the software scale code. Use an if conditional to check for an y/n answer

microchip8
16th May 2017, 09:53
ChangeLog for ffhevc 3.2.7 and ffx264 3.4.1

* Added support for FFmpeg's internal Opus audio encoder

microchip8
29th May 2017, 09:02
ChangeLog for ffhevc 3.2.8

* Added support for Dynamic HDR10+ JSON files. Requires libx265 to be compiled with Dynamic HDR10+ support

microchip8
30th May 2017, 12:30
ChangeLog for ffhevc 3.2.9

* Bugfix: use an if conditional to set hdr-opt option
* Increase default CRF value to 21
* Tune the default encoding parameters

microchip8
1st June 2017, 13:01
ChangeLog for ffhevc 3.3.0 and ffx264 3.4.2

* Simplify the scale variable a bit
* Support SMPTE170M colorspace conversion
* Support SMPTE170M for color primaries/matrices/transfers

microchip8
4th June 2017, 22:41
ChangeLog for ffhevc 3.3.1 and ffx264 3.4.3

* Match software scaler options in config file with the ones inside the script. $SCALER in config file now takes a value between 0 and 9
* Do some basic checking of scaler option when it's set in the config file

Additional for ffhevc

* Further optimizations to the default encoding options

microchip8
5th June 2017, 04:50
ChangeLog for ffhevc 3.3.2

* Remove redundant software scaler warning and exit in the sws_func() function for the config file
* Added support for the experimental software scaler
* Lower psy-rdoq from 2.5 to 1.5 and psy-rd from 2.5 to 2.0 to eliminate ringing artifacts
* No need to enclose the values of max-cll in quotes
* Removed additional encoder info on max audio channels support
* Added support for software scaler tuning where applicable
* Added example JSON file for Dynamic HDR10+ to the package
* Updated the Makefile

ChangeLog for ffx264 3.4.4

* Remove redundant software scaler warning and exit in the sws_func() function for the config file
* Added support for the experimental software scaler
* Added support for software scaler tuning where applicable
* Removed additional encoder info on max audio channels support

microchip8
8th June 2017, 15:45
ChangeLog for ffhevc 3.3.3 and ffx264 3.4.5

* Report software scaler set in the config file
* Merge the bicubic and spline scaler tuning code
* Mention for the Lanczos scaler that the scaler tuning value is the filter length and not sharpness

microchip8
9th June 2017, 09:46
ChangeLog for ffhevc 3.3.4 and ffx264 3.4.6

* New function, video_chars_func(), to detect and display video characteristics like color range/space/transfer/primaries
* Detect and display video resolution if video scaling is enabled
* Detect and display pixel format

microchip8
10th June 2017, 08:52
ChangeLog for ffhevc 3.3.5 and ffx264 3.4.7

* Replace numbers in array variable char of the video_chars_func() function with the ones from the for loop
* Pipe the ffprobe string to tail -1 to work around issues with some problematic files
* Some small improvements to the video_colorspace_func() function

microchip8
11th June 2017, 11:05
ChangeLog for ffhevc 3.3.6

* Bugfix: master-display option must be enclosed in quotes to not confuse Bash

microchip8
13th June 2017, 00:56
ChangeLog for ffhevc 3.3.7 and ffx264 3.4.8

* Bugfix in the video_colorspace_func() function. Wrong value used for the ispace option of the filter. Must be bt2020ncl instead of just bt2020

microchip8
14th June 2017, 13:11
ChangeLog for ffhevc 3.3.8 and ffx264 3.4.9

* Make software scaler tweaking optional
* Added support for the unsharp filter for sharpen/blur
* Use a colon symbol as separation for input/output color range in the video_colorspace_func() function as to be consistent with the other options. Also set the default to tv:tv

microchip8
11th July 2017, 12:37
ChangeLog for ffhevc 3.3.9 and ffx264 3.5.0

* Support setting the min/max keyframe/IDR intervals

microchip8
20th July 2017, 19:44
ChangeLog for ffhevc 3.4.0 and ffx264 3.5.1

* Bugfix: use realpath instead of readlink for the OUTPUT var when running in batch mode. Fixes the issue where readlink will follow the full path in case the input is a symlink which may result of encoding files we were not asked to
* Don't print cropped resolution during runtime if batch mode is selected
* Remove check for realpath. It is now required and not optional

microchip8
23rd August 2017, 10:51
ChangeLog for ffhevc 3.4.1 and ffx264 3.5.2

* Support full chroma input for the software scaler

microchip8
29th September 2017, 16:43
ChangeLog for ffhevc 3.4.2 and ffx264 3.5.3

* Support setting the output video aspect ratio

microchip8
22nd October 2017, 18:33
ChangeLog for ffhevc 3.4.3 and ffx264 3.5.4

* Support dialog level normalization for AC3/EAC3 audio

microchip8
17th November 2017, 17:42
ChangeLog for ffhevc 3.4.4

* Update transfer characteristics: smpte-st-2084 -> smpte2084. Requires latest x265

microchip8
28th November 2017, 19:35
ChangeLog for ffhevc 3.4.5

* Disable Open GOP and enable header repeating when HDR options are enabled like master display and max-cll

microchip8
25th December 2017, 11:33
ChangeLog for ffhevc 3.4.6 and ffx264 3.5.5

* Initial support for HDR to SDR conversions. Requires FFmpeg to be compiled with the zimg library as it needs the zscale filter https://github.com/sekrit-twc/zimg

Merry Christmas! :)

microchip8
27th December 2017, 12:35
ChangeLog for ffhevc 3.4.7

* Renamed array variable CHARS to VCHARS in the video_chars_func() function
* Report pixel format in the video_chars_func() function
* Don't show HDR options if doing an HDR to SDR conversion
* Use -v quiet instead of -v error log level for ffprobe
* Cosmetics

ChangeLog for ffx264 3.5.6

* Renamed array variable CHARS to VCHARS in the video_chars_func() function
* Report pixel format in the video_chars_func() function
* Removed strange copy-paste word in the colrospace conversion code
* Use -v quiet instead of -v error log level for ffprobe
* Cosmetics

microchip8
1st January 2018, 11:12
ChangeLog for ffhevc 3.4.8 and ffx264 3.5.7

* Reworked the video_chars_func() function and added reporting of video bit depth
* Initial support for audio codec metadata when doing audio copy
* Increased default E-AC-3 audio bitrate from 768 to 960 kbps
* Set dialnorm for AC-3/E-AC-3 to its FFmpeg default (-31)
* Added HDR_to_SDR_instructions.txt file to the package
* Cosmetics

Happy New Year! :)

microchip8
2nd January 2018, 00:00
ChangeLog for ffhevc 3.4.9 and ffx264 3.5.8

* Set proper zscale transfer value in the video_hdr_to_sdr_func() function, option 0 (copy color characteristics)
* Use a desat value of 2.5 for the tonemap filter when doing HDR to SDR conversions
* Don't use pix_fmts in the format filter. It is not really needed
* Removed 12-bit options from the video_pixfmt_func() function
* Cosmetics

microchip8
2nd January 2018, 13:00
ChangeLog for ffhevc 3.5.0 and ffx264 3.5.9

* Disabled audio metadata for batch mode when using audio copy, until I figure out how to do it in a decent way
* Removed default software scaler parameters for bicubic/spline. They are already the default in FFmpeg so no need to force them
* Use a case statement instead of if condition in option 0 of the video_hdr_to_sdr_func() function

microchip8
3rd January 2018, 09:26
ChangeLog for ffhevc 3.5.1 and ffx264 3.6.0

* Don't hardcode the desaturation strength of the tonemap filter but let is be an option
* Removed the matrix and primaries options in the zscale filter as it leads to over-saturation of colors

microchip8
4th January 2018, 21:06
ChangeLog for ffhevc 3.5.2 and ffx264 3.6.1

* Support tweaking the tonemap algorithms for HDR to SDR conversion
* Increased default desat tonemap value from 2.3 to 4.2
* Support applying color saturation correction when doing an HDR to SDR conversion
* Added bt2020-12 to the list of transfers when doing color characteristics copy
* Updated the HDR_to_SDR_instructions.txt file

microchip8
6th January 2018, 01:15
ChangeLog for ffhevc 3.5.3 and ffx264 3.6.2

* Moved the eq filter to almost the end of the video filter chain as it can lead to banding in certain cases in case the filter is in front of most other ones
* If the eq filter is used, also insert the format one after it if a pixel format has been chosen

microchip8
8th January 2018, 20:42
ChangeLog for ffhevc 3.5.4 and ffx264 3.6.3

* Fixed a possible devision by 0 that may occur when one copies audio and the bitrate for metadata is reported as N/A by ffprobe

microchip8
7th February 2018, 05:11
ChangeLog for ffhevc 3.5.5 and ffx264 3.6.4

* Update transfer chars to support latest changes to zimg from git

microchip8
16th February 2018, 11:28
ChangeLog for ffhevc 3.5.6

* Replace an ffprobe log level occurance of -v error to -v quiet
* Added a small script called "hdr" to get HDR values from a file which then can be used in ffhevc's HDR options menu

microchip8
16th February 2018, 21:57
ChangeLog for ffhevc 3.5.7

* Implemented HDR side data scanning
* Rewrote the hdr script

microchip8
17th February 2018, 12:49
ChangeLog for ffhevc 3.5.8 and ffx264 3.6.5

* Fixed an issue where in some cases write-testing the output directory will fail due usage of readlink -f instead of readlink -m
* Small code optimizations

microchip8
22nd February 2018, 11:39
ChangeLog for ffhevc 3.5.9

* Support per-file HDR side data when running in batch mode
* Minor code optimizations

microchip8
24th February 2018, 11:47
ChangeLog for ffhevc 3.6.0 and ffx264 3.6.6

* Set the eq saturation default value to 1.0 (same as filter default)
* Add the colorspace and colormatrix filters when doing an HDR to SDR conversion
* Lower tonemap desat strength to 2.8
* Support white point adaptation for HDR to SDR
* Moved the colorspace filter after the scale one
* Moved the pixel format filter near the end of the filter chain

microchip8
20th March 2018, 13:03
ChangeLog for ffhevc 3.6.1

* Support 12-bits in the pixel format function
* Improvements to the HDR to SDR conversion code, copy color characteristics option
* A few typo fixes

ChangeLog for ffx264 3.6.7

* Improvements to the HDR to SDR conversion code, copy color characteristics option
* A few typo fixes

microchip8
15th April 2018, 07:45
ChangeLog for ffhevc 3.6.2 and ffx264 3.6.8

* Support setting the chroma location parameter

microchip8
9th July 2018, 23:03
ChangeLog for ffhevc 3.6.3 and ffx264 3.6.9

* HDR to SDR: transfer to linear light before doing bt2020-10/12 transfer

microchip8
10th July 2018, 21:38
ChangeLog for ffhevc 3.6.4 and ffx264 3.7.0

* Revert previous change. Linear transfer is already set in the $tonemap variable

microchip8
22nd December 2018, 12:24
ChangeLog for ffhevc 3.6.5

* Add the new tune animation option
* Updated the man page

microchip8
22nd December 2018, 12:25
ChangeLog for ffhevc 3.6.5

* Add the new tune animation option
* Updated the man page

microchip8
10th January 2019, 12:09
ChangeLog for ffhevc 3.6.6

* Support Dolby Vision HDR

microchip8
11th January 2019, 14:14
ChangeLog for ffhevc 3.6.7

* Check if tonemap is used and if so, disable Dolby Vision questions

microchip8
12th January 2019, 12:03
ChangeLog for ffhevc 3.6.8

* Set Open GOP to 0 and repeat headers to 1 when Dolby Vision is used

microchip8
2nd March 2019, 08:07
ChangeLog for ffhevc 3.6.9

* Add HDR_SUPPORT option to config file for making HDR support optional

microchip8
13th June 2019, 03:35
ChangeLog for ffhevc 3.7.0 and ffx264 3.7.1

* Added support for the bm3d denoise filter

microchip8
12th July 2019, 15:00
ChangeLog for ffhevc 3.7.1

* Updated the default encoding params. Added the new hme (hierarchical motion search) and hme-search options. Also lowered rd to 4 and increased subme to 4. To use hme, the latest x265 from git is required

microchip8
23rd July 2019, 12:23
ChangeLog for ffhevc 3.7.2 and ffx264 3.7.2

* Added support for crop preview using MPlayer when autocrop is enabled in the config file. This was ported over from my h264enc script

microchip8
1st August 2019, 18:21
ChangeLog for ffx264 3.7.3

* Switch to using -x264-params instead of -x264opts. The latter will be eventually removed from FFmpeg

microchip8
3rd August 2019, 11:48
ChangeLog for ffhevc 3.7.3

* Update default encoding options

microchip8
5th August 2019, 15:14
ChangeLog for ffhevc 3.7.4

* Update default encoding options v2

microchip8
21st August 2019, 15:37
ChangeLog for ffhevc 3.7.5

* Add audio sample rate to the audio metadata
* Fixed a bug in the audio resample code where sample rate wasn't detected due to wrong value used (bit_rate instead of sample_rate)

ChangeLog for ffx264 3.7.4

* Add audio sample rate to the audio metadata

microchip8
29th August 2019, 08:57
ChangeLog for ffhevc 3.7.6 and ffx264 3.7.5

* Use a comma instead of a dash for the audio sample rate metadata

microchip8
5th September 2019, 04:32
ChangeLog for ffhevc 3.7.7 and ffx264 3.7.6

* Code optimization in the audio sample rate metadata

microchip8
13th September 2019, 15:14
ChangeLog for ffhevc 3.7.8 and ffx264 3.7.7

* Add audio channel metadata when using audio copy

microchip8
18th September 2019, 09:00
ChangeLog for ffhevc 3.7.9 and ffx264 3.7.8

* Improvements to the audio copy metadata

microchip8
19th September 2019, 05:01
ChangeLog for ffhevc 3.8.0 and ffx264 3.7.9

* Support encoding to WMAv1 and WMAv2 audio
* Update high bit depth pixel formats options
* Add WMAv1 and WMAv2 audio detection metadata when doing audio copy

microchip8
21st September 2019, 06:33
ChangeLog for ffhevc 3.8.1 and ffx264 3.8.0

* Add side channel info to the audio metadata

microchip8
22nd September 2019, 05:55
ChangeLog for ffhevc 3.8.2 and ffx264 3.8.1

* For audio stream copy, in case ffprobe reports channels layout as unknown, try to guess the amount of channels based on channel detection and use that as metadata
* Set Mobisu transform as default for HDR to SDR
* Updated the man page

microchip8
25th September 2019, 07:27
ChangeLog for ffhevc 3.8.3

* Use the audindex[i] variable for audio metadata during audio copy
* Updated default encoding options. Requires latest x265 from git
* Updated default audio bitrates for some codecs

ChangeLog for ffx264 3.8.2

* Use the audindex[i] variable for audio metadata during audio copy
* Updated default audio bitrates for some codecs

microchip8
25th September 2019, 11:10
ChangeLog for ffhevc 3.8.4 and ffx264 3.8.3

* Revert using audindex[i] var for audio metadata detection

microchip8
11th October 2019, 11:29
ChangeLog for ffhevc 3.8.5 and ffx264 3.8.4

* Support hardcoding external or embedded subtitles. Requires libass support in FFmpeg
* Fixed a typo in the subtitles code

microchip8
13th October 2019, 06:40
ChangeLog for ffhevc 3.8.6

* Fixed a typo in the keyframe code
* Use readlink -e and realpath -e where needed
* Updated default encoding options and CRF value
* Updated the preset.txt example file

ChangeLog for ffx264 3.8.5

* Fixed a typo in the keyframe code
* Use readlink -e and realpath -e where needed

microchip8
14th October 2019, 15:36
ChangeLog for ffhevc 3.8.7 and ffx264 3.8.6

* Support scanning for multiple video tracks in the input file

microchip8
15th October 2019, 05:01
ChangeLog for ffhevc 3.8.8

* Bugfix: use correct video mapping for crop detection
* Cosmetics

ChangeLog for ffx264 3.8.7

* Bugfix: use correct video mapping for crop detection

microchip8
16th October 2019, 06:25
ChangeLog for ffhevc 3.8.9 and ffx264 3.8.8

* Support the fftdnoiz denoise filter

microchip8
17th October 2019, 06:43
ChangeLog for ffx264 3.8.9

* Support the WMV container format

microchip8
18th October 2019, 06:04
ChangeLog for ffhevc 3.9.0

* Bugfix: use correct video track for crop preview with MPlayer
* Renamed variable SCAN_MULTIPLE_VID_TRACKS to SCAN_MULTI_VID_TRACKS
* Some reordering in the config file
* Add option hrd and vui-hrd-info when encoding HDR video
* Add LPCM detection for audio copy
* Add support for cover art for the mp4 and mov containers. Requires MP4Box from GPAC
* Set Catmull-Rom as default Bicubic/Spline tuning
* Some code optimization

ChangeLog for ffx264 3.9.0

* Bugfix: use correct video track for crop preview with MPlayer
* Bugfix: in the video_field_parity_func() function. $vidtrack was missing for ffprobe
* Bugfix: missing ;; in the additional container formats code
* Renamed variable SCAN_MULTIPLE_VID_TRACKS to SCAN_MULTI_VID_TRACKS
* Some reordering in the config file
* Set Catmull-Rom as default Bicubic/Spline tuning
* Add LPCM detection for audio copy
* Add support for cover art for the mp4, m4v and mov containers. Requires MP4Box from GPAC
* Some code optimization

microchip8
19th October 2019, 08:21
ChangeLog for ffhevc 3.9.1 and ffx264 3.9.1

* Use atomicparsley to add cover art for the mp4/m4v containers. This removes dependence on MP4Box and makes it possible to copy over metadata info in an easy way
* Add +frag_keyframe to the -movflags option when output is mp4
* Renamed variable METACOVER to MKVCOVER
* Updated the man page

microchip8
20th October 2019, 05:45
ChangeLog for ffhevc 3.9.2

* Added support for embedding of SRT/SSA/ASS subtitles in the MP4 container
* Moved back to MP4Box for adding cover art to MP4/MOV. Apparently, after lots of testing, atomicparsley creates files that hang during playback
* Cosmetics
* Updated the man page

ChangeLog for ffx264 3.9.2

* Added support for embedding of SRT/SSA/ASS subtitles in the MP4/M4V containers
* Moved back to MP4Box for adding cover art to MP4/M4V/MOV. Apparently, after lots of testing, atomicparsley creates files that hang during playback
* Cosmetics
* Updated the man page

microchip8
21st October 2019, 04:43
ChangeLog for ffhevc 3.9.3 and ffx264 3.9.3

* Add support for verbose logging to a log file
* Bugfix: -map_metadata and -map_chapters where not set to 0 when the respective options in the config file were set to "y"

microchip8
21st October 2019, 09:49
ChangeLog for ffhevc 3.9.4 and ffx264 3.9.4

* Renamed variables $MDATA and $CHPS to $METADATA and $CHAPS
* Add $METADATA and $CHAPS to the remuxing code

microchip8
22nd October 2019, 05:26
ChangeLog for ffhevc 3.9.5 and ffx264 3.9.5

* Add support for SRT/SSA/AAS subtitles for the MOV container
* Add color characteristics to MP4Box if output is MOV
* Use smpte170m for option 0 in the color primaries code
* Update colormatrix in the video_colorspace_func() function to smpte170m for NTSC
* Some code optimizations

microchip8
23rd October 2019, 04:23
ChangeLog for ffhevc 3.9.6 and ffx264 3.9.6

* Added support for setting the VBV maxrate and buffer size
* Set default audio codec based on output container format
* Add colr option for MP4Box to the video_colorspace_func() function and the color primaries code. Only used for MOV
* Add -color_primaries, -color_trc and -colorspace to the FFmpeg command line options

microchip8
25th October 2019, 06:37
ChangeLog for ffhevc 3.9.8

* Removed M4V from the case statements for cover art. I confused it with ffx264 which supports M4V while ffhevc does not.
* Detect audio bit depth and add it to the audio metadata
* Added detection for DTS Express and DTS-HD HR for audio copy
* Use -show_entries instead of -show_streams for detecting audio properties with ffprobe. Removes piping to grep and awk
* Support setting the FLAC bit depth for encoding
* Minor restructuring and variables renaming in the audio code
* Updated the man page

ChangeLog for ffx264 3.9.7

* Detect audio bit depth and add it to the audio metadata
* Added detection for DTS Express and DTS-HD HR for audio copy
* Use -show_entries instead of -show_streams for detecting audio properties with ffprobe. Removes piping to grep and awk
* Support setting the FLAC bit depth for encoding
* Minor restructuring and variables renaming in the audio code
* Updated the man page

microchip8
26th October 2019, 08:10
ChangeLog for ffhevc 3.9.9 and ffx264 3.9.8

* Renamed audio variable aid[i] to aidx[i] and moved it outside of the if conditional that decides the audio codec. This removes the same code in three places and now uses the global aidx[i] variable
* HE-AACv2 only supports 2 channels. Update the audio code to reflect that
* When running in batch mode, add a warning about automatic audio metadata and offer an option to enable/disable it
* Added -tmp option to MP4Box to store temp files in the output directory
* Some minor improvements to the audio options

microchip8
27th October 2019, 09:33
ChangeLog for ffhevc 4.0.0 and ffx264 3.9.9

* Use 16 bits as bit depth metadata when encoding to TrueHD audio
* Removed an unneeded if conditional in the audio bit depth code
* Add director and cast metadata for the MKV container
* Reorder some code for the output shell file
* Cosmetics

microchip8
28th October 2019, 06:35
ChangeLog for ffhevc 4.0.1 and ffx264 4.0.0

* Added support for director/cast metadata for MP4/MOV/(M4V)
* Added +use_metadata_tags to the $movflags variable for MP4/MOV/(M4V)
* Support ADPCM encoding for DTS audio
* Fixed an issue where asking for director/cast occured multiple times if remuxing to other containers was enabled

microchip8
29th October 2019, 07:19
ChangeLog for ffhevc 4.0.2

* Removed an unneeded check for audio codec in the conerror_func() function
* Removed a stale "" in the case statement that checks the channels for AC3
* Support setting the matrixed stereo type when resampling stereo input
* Support setting the filter type of the audio resample filter
* Add the bsf bitstream filter to convert from length prefix to start code prefix when remuxing to m2ts/mts/ts
* Cosmetics

ChangeLog for ffx264 4.0.1

* Removed an unneeded check for audio codec in the conerror_func() function
* Removed a stale "" in the case statement that checks the channels for AC3
* Support setting the matrixed stereo type when resampling stereo input
* Support setting the filter type of the audio resample filter
* Cosmetics

microchip8
2nd November 2019, 14:55
ChangeLog for ffhevc 4.0.3

* Merged two case statements in the metadata code for mkv/mp4/mov
* Support dithering when downscaling to 8-bit pixels

microchip8
4th November 2019, 17:33
ChangeLog for ffhevc 4.0.4

* Bugfix: Using ADPCM encoding for DTS audio wasn't possible due to wrong variable used in the if conditional

ChangeLog for ffx264 4.0.2

* Merged two case statements in the metadata code for mkv/mp4/mov
* Bugfix: Using ADPCM encoding for DTS audio wasn't possible due to wrong variable used in the if conditional

microchip8
11th November 2019, 14:53
ChangeLog for ffhevc 4.0.5 and ffx264 4.0.3

* Added support for the (newer) deblock filter

microchip8
12th December 2019, 21:44
ChangeLog for ffhevc 4.0.6

* Update the default encoding options

microchip8
14th December 2019, 06:10
ChangeLog for ffhevc 4.0.7

* Update default encoding options and CRF value

microchip8
14th December 2019, 19:04
ChangeLog for ffhevc 4.0.8

* Update default encoding options and CRF value; V2

microchip8
19th December 2019, 15:56
ChangeLog for ffhevc 4.0.9

* Update default encoding options, v3

microchip8
23rd December 2019, 07:28
ChangeLog for ffhevc 4.1.0

* Default encoding options tweaks. Add qcomp=0.7 and go back to standard non-hierarchical motion estimation. Also increased tu-{inter,intra}-depth to 4 and reference frames to 5
* Lower default CRF value to 20

NOTE: Currently, Sourceforge has problems and errors out when uploading the new version. Temporarily you can find it at https://ffhevc.teambelgium.net/ffhevc-4.1.0.tar.gz
When SF is fixed again, I'll upload it there.

microchip8
24th December 2019, 05:30
ChangeLog for ffhevc 4.1.1

* Switch to AQ mode 2
* Increase default bframes from 6 to 8
* Keep quantization group size at the same size as the max CTU

microchip8
24th December 2019, 12:20
ChangeLog for ffhevc 4.1.2

* Increase deblocking values from -3,-3 to -1,-1
* Enable strong intra smoothing
* Lower qcomp to its default value of 0.6

microchip8
25th December 2019, 09:35
ChangeLog for ffhevc 4.1.3

* More fine-tuning to the default encoding options that should preserve noise and especially mosquito noise on dark backgrounds while at the same time increasing quality with a slightly higher bitrate cost

microchip8
28th December 2019, 16:41
ChangeLog for ffhevc 4.1.4 and ffx264 4.0.4

* Add support for the noise video filter. Can be beneficial on (very) clean sources by applying some noise to avoid things like color/light banding in the encode
* Fine-tuning to the default encoding options

microchip8
31st December 2019, 00:18
ChangeLog for ffhevc 4.1.5

* psy-rd/psy-rdoq psycho-visual tuning to the default encoding options. Aim is to preserve the energy of the input as much as possible without introducing noticable artifacts such as ringing

microchip8
31st December 2019, 16:54
ChangeLog for ffhevc 4.1.6

* Go back to uniform AQ (mode 1) with a strength of 1.0
* Bump up qcomp to 0.72
* Increase psy-rdoq to 15.0 and psy-rd to 4.0
* Increase reference frames to 5

microchip8
3rd January 2020, 19:54
ChangeLog for ffhevc 4.1.7

* Add option to force signaling of HDR in case max-cll is 0,0

microchip8
4th January 2020, 21:55
ChangeLog for ffhevc 4.1.8

* More psycho-visual tunings

microchip8
8th January 2020, 16:09
ChangeLog for ffhevc 4.1.9

* Rename hdr option to hdr10. Requires latest libx265 compiled from the default branch
* Rename hdr-opt to hdr10-opt. Requires latest libx265 compiled from the default branch
* Support HLG (Hybrid Log Gamma) HDR
* Some minor psy-rd/rdoq tunings

microchip8
16th January 2020, 16:49
ChangeLog for ffhevc 4.2.0

* Minor optimizations to the default encoding options. Lower qcomp to 0.7

microchip8
23rd February 2020, 15:59
ChangeLog for ffhevc 4.2.1 and ffx264 4.0.5

* Use MPlayer for crop detection instead of FFmpeg which seems to have issues with 4k/UHD content

microchip8
5th March 2020, 22:10
ChangeLog for ffhevc 4.2.2 and ffx264 4.0.6

* Go back to FFmpeg for crop detection

microchip8
9th March 2020, 21:14
ChangeLog for ffx264 4.0.7

* Bugfix: missing if conditional in the crop code

microchip8
21st March 2020, 11:33
ChangeLog for ffhevc 4.2.3

* Update default encoding options

microchip8
22nd March 2020, 03:57
ChangeLog for ffhevc 4.2.4

* Bugfix: -c used instead of -ac for audio channels

microchip8
23rd March 2020, 07:12
ChangeLog for ffhevc 4.2.5 and ffx264 4.0.8

* Add -max_muxing_queue_size switch to workaround possible issues when muxing Atmos/DTS-X audio

ravs
26th March 2020, 19:32
froggy1, first thanks for creating the ffmpeg scripts.

About ffx264-4.0.8

* Bugfix: -c used instead of -ac for audio channels

I try to find the option for selecting the audio channels I want to have, but to no prevail.

-c is the option for the setup file.

According to ffx264 -h there is no such option as -ac. -ac is not to be found in the man page either.

What do I miss here?

Do I need to create a setup file for each DVD to get the audio tracks that I want?

microchip8
26th March 2020, 19:35
froggy1, first thanks for creating the ffmpeg scripts.

About ffx264-4.0.8



I try to find the option for selecting the audio channels I want to have, but to no prevail.

-c is the option for the setup file.

According to ffx264 -h there is no such option as -ac. -ac is not to be found in the man page either.

What do I miss here?

Do I need to create a setup file for each DVD to get the audio tracks that I want?

-ac is used internally by the channel code itself to set the channels desired by the user. I made a change to that code that I left and didn't revert. There's no -ac parameter in the ffx264 options

You don't need to set up any setup/config files. Just pass through the script and answer the questions

ravs
26th March 2020, 23:55
-ac is used internally by the channel code itself to set the channels desired by the user. I made a change to that code that I left and didn't revert. There's no -ac parameter in the ffx264 options

You don't need to set up any setup/config files. Just pass through the script and answer the questionsAhh good to know.

One issue remains. It aborts with an error:

-> MPlayer is missing from your system!
I don't have mplayer but mpv installed in my system.

Can mpv used instead of mplayer?

If not and if I do not want any crop, how can ffx264 be convinced to run without mplayer?
I do not see an option to disable crop.

When I understand it correctly, ffx264 as well as fhevc and ffxvid all use mplayer for crop, so when one not uses crop all scripts should be able to work without mplayer.

microchip8
27th March 2020, 07:26
Ahh good to know.

One issue remains. It aborts with an error:

-> MPlayer is missing from your system!
I don't have mplayer but mpv installed in my system.

Can mpv used instead of mplayer?

If not and if I do not want any crop, how can ffx264 be convinced to run without mplayer?
I do not see an option to disable crop.

When I understand it correctly, ffx264 as well as fhevc and ffxvid all use mplayer for crop, so when one not uses crop all scripts should be able to work without mplayer.

Set AUTOCROP to "n" in the config file located in $HOME/.ffx264 (a hidden file)

MPlayer is a requirement, though. It is used only for crop preview, not crop itself which uses FFmpeg. I'll make it optional in another release shortly

I will not switch to mpv as someone else can come and say he has MPlayer installed but not mpv. I've chosen MPlayer for crop preview because it has the rectangle filter. I do not know if mpv has it too, for that matter

microchip8
27th March 2020, 07:49
ChangeLog for ffhevc 4.2.7 and ffx264 4.0.9

* Check for MPlayer only if AUTOCROP is enabled

microchip8
25th April 2020, 08:16
ChangeLog for ffhevc 4.2.7

* Update default encoding options

microchip8
16th June 2020, 20:10
ChangeLog for ffhevc 4.2.8

* Support TrueHD audio in the MP4 container
* Lower max-merge from 4 to 2

ChangeLog for ffx264 4.1.0

* Support TrueHD audio in the MP4 container

microchip8
21st June 2020, 16:12
ChangeLog for ffhevc 4.2.9 and ffx264 4.1.1

* Fixed a bug that prevents using TrueHD mono audio in the MP4 container

microchip8
4th July 2020, 19:52
ChangeLog for ffhevc 4.3.0

* Switch to rskip mode 2 (edge density). Should prevent onion artifacts and speed up encoding a bit

richardpl
5th July 2020, 10:19
I will not switch to mpv as someone else can come and say he has MPlayer installed but not mpv. I've chosen MPlayer for crop preview because it has the rectangle filter. I do not know if mpv has it too, for that matter

mpv have if you have not know all ffmpeg filters, thus it have drawbox filter which is much more powerful than rudimentary and unmaintained mplayer filter.

microchip8
13th July 2020, 10:38
ChangeLog for ffhevc 4.3.1

* Enable tskip and hme in default encoding options
* Merge mp4 audio support with ts/m2ts/mts in the case statement for additional container formats
* Removed not in use, commented out code
* Lower default AAC audio bitrate from 448 to 384 kbps

microchip8
3rd October 2020, 12:31
ChangeLog for ffhevc 4.3.2

* Lower edge density recursion skip to 3%
* Lower RC lookahead to 80
* Lower subme from 5 to 4

microchip8
5th October 2020, 20:25
Change Log for ffhevc 4.3.3

* Fixed an issue in default encoding option where using a CTU of 64 can cause visual distortion when using rskip=2 (edge density). Workaround is to use a CTU of 32 and qg-size of 32

microchip8
10th November 2020, 21:27
ChangeLog for ffhevc 4.3.4

* Bump up psy-rd from 3.3 to 4.0
* Lower deblock strength to -4,-4
* Enable strong intra smoothing
* Lower rskip edge threshold to 2

microchip8
15th December 2020, 19:30
ChangeLog for ffhevc 4.3.5

* Tweaks to the default encoding options

microchip8
27th December 2020, 19:33
ChangeLog ffx264 4.1.2 and ffhevc 4.3.6

* Fixed a long standing bug where audio mapping values were incorrect for audio metadata resulting in incomplete or wrong values

microchip8
28th December 2020, 02:52
ChangeLog for ffhevc 4.3.7 and ffx264 4.1.3

* Fix a bug in the $vidtrack variable

microchip8
22nd January 2021, 09:02
ChangeLog for ffhevc 4.3.8 and ffx264 4.1.4

* Remove "a" from the -ac audio option
* Fix possible negative index in the audio option

microchip8
2nd February 2021, 15:08
ChangeLog for ffhevc 4.3.9 and ffx264 4.1.5

* Replace the yadif deinterlacer with bwdif. It's faster and provides higher quality

microchip8
8th February 2021, 19:35
ChangeLog for ffhevc 4.4.0

* Support setting the Maximum Decoder Level

microchip8
10th February 2021, 20:51
ChangeLog for ffx264 4.1.6

* Support forcing an H.264 level

microchip8
16th February 2021, 19:53
ChangeLog for ffhevc 4.4.1 and ffx264 4.1.7

* Fix "too many arguments" error in the HEVC/H.264 Level code

microchip8
21st March 2021, 16:10
ChangeLog for ffhevc 4.4.2

* Fix a long-standing bug in the HDR code where the $hdr variable was used twice, once to check if HDR is selected and once to force signaling of HDR in case max-cll is 0,0. This resulted in an "y" being added after the specified max-cll value
* Renamed hdr_opt to hdr10_opt

microchip8
27th March 2021, 17:18
ChangeLog for ffhevc 4.4.3

* Remove hrd options for HDR encodes. They're not really needed
* Luma/Chroma Offset should be Optimization instead

microchip8
3rd April 2021, 20:32
ChangeLog for ffhevc 4.4.4

* Fixed a small bug where the -colorspace option was not added for BT2020 content in case SMPTE2084/HLG was chosen as transfer

microchip8
25th April 2021, 17:51
ChangeLog for ffhevc 4.4.5

* Remove +frag_keyframe for the MP4 container. Doesn't make sense when used with +fasstart.
* Cosmetics: use HDR10 word when asking HDR questions

microchip8
29th July 2022, 19:33
ChangeLog for ffhevc 4.4.6

* Fine tuning to the default encoding options
* Tweaks to the HDR10 code

microchip8
23rd January 2023, 11:37
ChangeLog for ffhevc 4.4.7 and ffx264 4.1.8

* Support more deinterlacing filters

microchip8
5th May 2023, 05:09
ChangeLog for ffx264 4.1.9

* Update default encoding options
* Bump up default CRF value from 19 to 21

microchip8
7th May 2023, 08:06
ChangeLog for ffhevc 4.4.8

* Update to the default encoding options
* Increased default CRF value from 21 to 23

microchip8
16th August 2023, 07:06
ChangeLog for ffhevc 4.4.9

* Ask for the Lanczos scaler width (alpha)
* Only ask to force HDR10 signaling in case Max CLL is not set or user has provided 0,0 as value

microchip8
17th August 2023, 04:47
ChangeLog for ffhevc 4.4.10 and ffx264 4.1.10

* Fix crop detection for HDR content
* Set Lanczos as default scaler option

microchip8
19th August 2023, 19:13
ChangeLog for ffhevc 4.4.11 and ffx264 4.1.11

* Improved FPS detection code

microchip8
21st August 2023, 12:59
ChangeLog for ffhevc 4.4.12

* Update to the default encoding options
* By default, force signaling of HDR10 in case max-cll is unknown or 0,0
* Various small improvements

microchip8
25th August 2023, 14:04
ChangeLog for ffx264 4.1.12

* Various small improvements

microchip8
10th September 2023, 17:07
ChangeLog for ffx264 4.1.13 and ffhevc 4.4.13

* Bugfix in the video_noise_func() function

microchip8
27th October 2023, 12:40
ChangeLog for ffhevc 4.4.14 and ffx264 4.1.14

* Set side/wide audio channels as default
* Support the newly added channels for TrueHD audio

microchip8
6th November 2023, 19:00
ChangeLog for ffhevc 4.4.15 and ffx264 4.1.15

* Set the setpts + atempo option as default for FPS conversion
* Correct 5.0 and 5.1 channels option for TrueHD encoding. Should be 5.0(side) and 5.1(side)

microchip8
14th December 2023, 18:40
ChangeLog for ffhevc 4.4.16 and ffx264 4.1.16

* Improved compatibility with the BSDs

microchip8
4th February 2024, 17:34
ChangeLog for ffhevc 4.4.17 and ffx264 4.1.17

* Don't exit but warn about MP4Box/Mplayer missing from the user's system

microchip8
28th February 2024, 23:14
ChangeLog for ffhevc 4.5.0 and ffx264 4.2.0

* Initial support for zimg (z lib) scalers

microchip8
21st September 2024, 09:57
ChangeLog for ffhevc 4.5.1

* Improved the HDR10 code
* Renamed a few variables

microchip8
28th October 2024, 17:16
ChangeLog for ffhevc 4.5.2

* Updated the audio copy code to detect Dolby Atmos and use the correct name metadata

ChangeLog for ffx264 4.2.1

* Updated the audio copy code to detect Dolby Atmos and use the correct name metadata
* Renamed a few variables

microchip8
30th October 2024, 21:57
ChangeLog for ffhevc 4.5.3 and ffx264 4.2.2

* Reduced duplication in the final audio params code variable
* Use kHz instead of Hz for audio sample rate metadata
* Slightly increased default value of the noise filter
* Updated the AUTHORS file (email address)

microchip8
1st November 2024, 15:40
ChangeLog for ffhevc 4.5.4 and ffx264 4.2.3

* Added support for copying only the DTS Core audio or the full DTS-HD MA audio track

microchip8
2nd November 2024, 10:21
ChangeLog for ffhevc 4.5.5 and ffx264 4.2.4

* Support copying full DTS-HD HRA audio or just the DTS Core in it
* Support copying full Dolby Atmos audio or just the AC-3/TrueHD Core in it

microchip8
3rd November 2024, 14:40
ChangeLog for ffhevc 4.5.6 and ffx264 4.2.5

* Support copying full DTS-X audio or only the DTS core

microchip8
6th November 2024, 11:21
ChangeLog for ffhevc 4.5.7

* Replaced the detelecine filter with a combination of the fieldmatch, bwdif and decimate filters
* Small changes to the HDR10 code and tonemap desat default value
* Renamed a few variables for DoVi

ChangeLog for ffx264 4.2.6

* Replaced the detelecine filter with a combination of the fieldmatch, bwdif and decimate filters
* Use 0 as default value for the tonemap desat filter option

microchip8
8th November 2024, 11:11
ChangeLog for ffhevc 4.5.8

* Support copying the DTS core-only from DTS 96/24 and DTS:X IMAX tracks
* Updated the AAC profile detection for audio copy
* Set default value for Chroma Location to 2 if HDR encoding is enabled

ChangeLog for ffx264 4.2.7

* Support copying the DTS core-only from DTS 96/24 and DTS:X IMAX tracks
* Updated the AAC profile detection for audio copy

microchip8
11th November 2024, 12:36
ChangeLog for ffhevc 4.5.9 and ffx264 4.2.8

* Do colorspace conversion before scaling
* Moved chroma location code after color primaries code and before the IDR/keyframes code

microchip8
18th November 2024, 14:17
ChangeLog for ffhevc 4.5.10 and ffx264 4.2.9

* Fixed a bug in the audio metadata when copying the Dolby core audio that added "+ Atmos" to the metadata
* One-line micro-optimization in the Dolby metadata code

microchip8
21st November 2024, 16:18
ChangeLog for ffhevc 4.5.11 and ffx264 4.2.10

* Added support for disabling automatic metadata such as video title, audio codec names, etc through the config file

microchip8
23rd November 2024, 17:37
ChangeLog for ffhevc 4.5.12

* Tweaks to the built-in script preset
* Made the built-in script preset selectable with the -p option
* Support tune profiles with custom presets (-c option)

microchip8
25th November 2024, 16:37
ChangeLog for ffhevc 4.5.13

* Support both Lanczos3 and Lanczos4 in the zscale filter
* Enable grain-optimized ratecontrol in case tune profile 'grain' is used. Also add an option to enable/disable it during runtime
* Updated the man page

microchip8
25th November 2024, 22:24
ChangeLog for ffhevc 4.5.14

* Bugfix for missing video filters

microchip8
28th November 2024, 08:56
ChangeLog for ffx264 4.2.11

* Make the built-in script preset selectable with the -p option
* Support tune profiles with custom presets
* Updated the man page

microchip8
3rd December 2024, 16:33
ChangeLog for ffhevc 4.5.15

* Only ask once for HDR10 side data in batch mode
* Use AQ Mode 1 (Uniform) for the built-in script preset. Should reduce a bit pulsing of noise in noisy videos

microchip8
9th December 2024, 16:16
ChangeLog for ffhevc 4.5.16

* Moved cropping code into its own function and display informative crop values message when running in batch mode
* Add hdr10-opt=1 option when in batch mode and using HDR10
* Set default audio volume filter value to 2dB

ChangeLog for ffx264 4.2.12

* Moved cropping code into its own function and display informative crop values message when running in batch mode
* Removed old, commented out code
* Set default audio volume filter value to 2dB

microchip8
31st December 2024, 12:31
ChangeLog for ffhevc 4.5.17

* Don't error out during runtime if a HDR10 value is not set/available
* Updated the built-in script preset

microchip8
2nd January 2025, 10:56
ChangeLog for ffhevc 4.5.18

* Fixed a bug in the cropping code for batch encoding

ChangeLog for ffx264 4.2.13

* Fixed a bug in the cropping code for batch encoding
* Updated the built-in script preset

microchip8
2nd February 2025, 14:12
ChangeLog for ffhevc 4.5.19

* Turn on HME for the built-in script preset
* Increased default noise value from 4 to 5
* Updated the README file

microchip8
4th June 2025, 12:59
ChangeLog for ffhevc 4.6.0

* Delete side data when doing tone mapping to SDR
* Updated the AUTHORS, README and man page files

ChangeLog for ffx264 4.3.0

* Increased default noise value from 4 to 5
* Fix wrong default option for tonemap algo
* Delete side data when doing HDR -> SDR conversion
* Updated the README and man page file

microchip8
28th June 2025, 09:45
ChangeLog for ffhevc 4.6.1

* Lower B-frames from 8 to 6 in the script preset
* Disable tskip in the script preset
* Add negative Chroma QP offsets for HDR content

microchip8
8th September 2025, 15:11
ChangeLog for ffhevc 4.6.2

* Fix: chroma qp offsets for HDR10 weren't added when running in batch mode
* Small fine-tune to the script preset

microchip8
31st October 2025, 09:36
ChangeLog for ffhevc 4.6.3

* Set qp-adaptation-range to 2.0 for the script preset
* Enable asymmetric partitions for the script preset
* Lower rskip2 threshold to 1 for the script preset

microchip8
1st November 2025, 08:01
ChangeLog for ffhevc 4.6.4

* Reworked the internal script preset
* Lowered the Cb/Cr qp offsets to -2 for HDR encodings
* Increased the Cb/Cr qp offsets to 1 for SDR encodings

microchip8
9th November 2025, 12:36
ChangeLog for ffhevc 4.6.5

* Set max-cll to 0,0 in case no values were detected
* Warn user that HDR10 will be disabled in case of unavailable master-display values

microchip8
12th November 2025, 23:19
ChangeLog for ffx264 4.3.1

* Support setting a default zimg scaler in the config file

ChangeLog for ffhevc 4.6.6

* Lower subme from 7 to 5 in the script preset and increase aq-strength to 1.1
* Support setting a default zimg scaler in the config file

microchip8
13th November 2025, 20:04
ChangeLog for ffhevc 4.6.7

* Lower qg-size to 16 for HDR encodings
* Enable hdr10-opt by default for HDR encodings
* Set default in-script FFmpeg scaler to natural bicubic spline and the default zimg scaler to spline36
* Minor improvements to the scaling code
* Updated the README and man page files

microchip8
14th November 2025, 09:16
ChangeLog for ffx264 4.3.2

* Set default in-script FFmpeg scaler to natural bicubic spline and the default zimg scaler to spline36
* Minor improvements to the scaling code
* Updated the README and man page files

ChangeLog for ffhevc 4.6.8

* Fixed a bug in the options parsing that resulted in max-cll and dhdr10 not being added for HDR encodings
* Minor code restructuring in the HDR code

microchip8
15th November 2025, 07:40
ChangeLog for ffhevc 4.6.9

* For SDR encodings, use blue/red chroma qp offsets of -2
* For HDR encodings, lower blue/red chroma qp offsets to -4
* Some minor optimizations in the HDR code
* Fix comparison for cb/crqpoffs for SDR encodings

microchip8
16th November 2025, 16:44
ChangeLog for ffhevc 4.6.10

* Increase QP adaptation range for the built-in script preset to 1.3
* Reworked a bit the HDR code

microchip8
21st November 2025, 21:46
ChangeLog for ffhevc 4.6.11

* Fine-tune the built-in script preset
* Lower default CRF value from 23 to 22
* Add option to change already set CRF value when encoding in HDR

microchip8
25th November 2025, 09:48
ChangeLog for ffhevc 4.6.12

* Add support for Spline64 zimg zscale filter. Requires latest FFmpeg from git

microchip8
12th December 2025, 08:48
ChangeLog for ffhevc 4.6.13

* Fix: only ask to lower the CRF value when doing HDR encodings

microchip8
13th December 2025, 13:36
ChangeLog for ffhevc 4.6.14

* Detect type of content (HDR/SDR) and base default CRF value on it

microchip8
20th December 2025, 16:21
ChangeLog for ffhevc 4.6.15

* Bugfix in the zscale scale filter for Lanczos3/4

microchip8
20th December 2025, 17:21
ChangeLog for ffx264 4.3.3

* Bugfix in the zscale scale filter for Lanczos3/4

microchip8
30th December 2025, 13:07
ChangeLog for ffx264 4.3.4

* Add support for detecting type of content (SDR/HDR10/DoVi)
* Minor tweaks to the lanczos3/4 zscale filter code

microchip8
9th January 2026, 12:28
ChangeLog for ffhevc 4.6.16

* Also turn on Dolby Vision in ffmpeg, not just in x265
* Optimize lanczos3/4 zimg scaler code selection

microchip8
10th January 2026, 10:37
ChangeLog for ffhevc 4.6.17

* Dolby Vision encoding requires vbv maxrate/bufsize so check if it's set or not. If not, print notice and exit
* Fix VBV maxrate/bufsize code
* Cosmetics

microchip8
10th January 2026, 11:24
ChangeLog for ffx264 4.3.5

* Fix VBV maxrate/bufsize code

microchip8
22nd January 2026, 12:03
ChangeLog for ffhevc 4.6.18 and ffx264 4.3.6

* Use more accurate crop detection by using rounding of 4 instead of the default 16

microchip8
23rd February 2026, 06:08
ChangeLog for ffhevc 4.6.19

* Minor update to the built-in script preset
* Set Spline64 as default zimg scaler

ChangeLog for ffx264 4.3.7

* Minor update to the built-in script preset
* Add support for the Spline64 zimg scaler

microchip8
2nd March 2026, 16:42
ChangeLog for ffhevc 4.7.0 and ffx264 4.4.0

* Remove dependency on MPlayer and use ffplay instead for crop previews
* Updated the man page

microchip8
13th May 2026, 09:59
ChangeLog for ffhevc 4.7.1

* Add support for E-AC-3 7.1 encoding. Requires latest FFmpeg from git
* Set lookahead-slices to 2 for the built-in script preset
* Revert to using dafault of 0 for cbqpoffs/crqpoffs for SDR content

microchip8
14th May 2026, 14:32
ChangeLog for ffx264 4.4.1

* Add support for 8 channel E-AC-3 audio encoding. Requires latest FFmpeg from git

microchip8
14th May 2026, 17:18
ChangeLog for ffhevc 4.7.2

* Fix a small issue in the AC-3/E-AC-3 channel checking code

microchip8
19th June 2026, 18:36
ChangeLog for ffhevc 4.7.3

* Auto-disabled HDR options if the script detects the input content to be SDR

microchip8
27th July 2026, 17:11
ChangeLog for ffhevc 4.7.4 and ffx264 4.4.2

* Increase rc-lookahead for the built-in script preset to 240

microchip8
10th August 2026, 09:25
ChangeLog for ffhevc 4.7.5

* Enable Selective MCSTF and cu-lossless for the built-in script preset. Requires x265 v4.3 or latest from git
* Add support for the AC-3 fixed point encoder
* Add support for disabling DRC (Dynamic Range Compression) for the AC-3/E-AC-3 audio codecs

ChangeLog for ffx264 4.4.3

* Add support for the AC-3 fixed point encoder
* Add support for disabling DRC (Dynamic Range Compression) for the AC-3/E-AC-3 audio codecs

microchip8
13th August 2026, 11:53
ChangeLog for ffhevc 4.7.6

* Remove MCSTF from the built-in script preset. It's not yet ready for prime time use

microchip8
16th August 2026, 10:23
ChangeLog for ffhevc 4.7.7 and ffx264 4.4.4

* Disabling of (E)AC3 DRC is only possible when converting to the same or another codec. If doing stream copy, warn and disable the option in case input is (E)AC3

microchip8
17th August 2026, 11:58
ChangeLog for ffhevc 4.7.8

* Internal script preset tuning

microchip8
18th August 2026, 15:47
ChangeLog for ffhevc 4.7.9

* psy-rd and psy-rdoq tuning for the built-in script preset
* Lowered aq-strength to 0.9 for the built-in script preset

microchip8
20th August 2026, 13:55
ChangeLog for ffhevc 4.7.10

* For the built-in script preset, it appears psy-rd and psy-rdoq are a bit too strong, which may cause slight ringing around objects in a clean picture. Lower both to 2.5 and 3.0 respectively