Video Transcoding Versions Save

Tools to transcode, inspect and convert videos.

0.20.1

5 years ago

This version was originally tagged and released on the date below. These notes were added on GitHub much later so the creation date won't match.

Sunday, October 21, 2018

  • Modify transcode-video to no longer validate --filter option arguments against a fixed list of names. This will prevent annoying failures whenever the HandBrake team adds a new filter.

0.20.0

5 years ago

This version was originally tagged and released on the date below. These notes were added on GitHub much later so the creation date won't match.

Monday, June 18, 2018

  • Now require HandBrakeCLI version 1.0.0 or later. Not only does this change make for easier testing, but it allows removal of many capability-detection hacks needed to support older versions. My thanks again to all the users who provided positive feedback about this online!
  • Relax frame rate control in transcode-video so that the options --rate=30 and --pfr are no longer passed to HandBrakeCLI for most non-DVD videos. This means that the peak frame rate will no longer be limited to 30 FPS, allowing camera-generated videos to retain their original frame rates. However, the old behavior can be restored for those videos by adding --limit-rate 30 to your transcode-video command line.
  • Modify transcode-video to no longer pass --encoder-preset=medium to HandBrakeCLI since that's the default behavior anyway. However, adding --preset medium to your transcode-video command line still does so.
  • Modify transcode-video to no longer pass a named audio encoder to HandBrakeCLI in order to select AAC, i.e. ca_aac or av_aac, since AAC is the default audio format anyway. However, adding the --aac-encoder option to your transcode-video command line still allows an explicit choice.
  • Modify transcode-video to substitute "analyse" for the x264 option called "partitions" when invoked with the --quick or --veryquick options. This is done to better match the archaic internal name used by HandBrake. It has no effect on actual transcoding behavior.
  • Add -n as a shortcut alias for the --dry-run option in transcode-video. This is the same shortcut alias used in rsync and make.
  • Expand the "Explanation" section of the "README" document to describe both the special, or default, ratecontrol system and the average bitrate (ABR) ratecontrol system, enabled via the --abr option.
  • Add clarification to the "README" document that stereo AAC tracks can also include surround audio information in matrix-encoded Dolby Pro Logic II format.
  • Fix spelling of "suppress" in the --help output of query-handbrake-log. Thanks, @chrisridd! Via #205.

0.19.0

5 years ago

This version was originally tagged and released on the date below. These notes were added on GitHub much later so the creation date won't match.

Saturday, January 27, 2018

  • Add support for Dolby Digital Plus audio format, aka Enhanced AC-3, to transcode-video and convert-video with a new --ac3-encoder option for each tool. Also, extend the --ac3-bitrate and --pass-ac3-bitrate options in transcode-video to support higher bitrates, 768 and 1536 Kbps, available to Enhanced AC-3. Via #26.
    • WARNING: Dolby Digital Plus output is currently NOT COMPATIBLE with the MP4 file format when using transcode-video due to a limitation in HandBrakeCLI. This means that adding both --mp4 and --ac3-encoder eac3 to your command line will fail with the error "incompatible encoder 'eac3' for muxer 'av_mp4'."
    • Oddly enough, ffmpeg doesn't have this limitation so you'll be able to use convert-video --ac3-encoder eac3 to convert your MKV files into MP4 format without any problems. Go figure.
  • Remove "Can you add support for Enhanced AC-3 audio?" from the "FAQ" section of the "README" document, for obvious reasons. :)
  • Add --reverse-double-order option to transcode-video to reverse order of double-width audio output tracks. Thanks, @samhutchins! Via #184.
  • Fix a bug in convert-video where the number of audio channels was wrong when tracks had to be transcoded. This was most noticeable for AAC output and appears due to a change in the behavior of ffmpeg.
  • Append .inspect to all Hash objects used as Console.debug arguments. Apparently a change in the way Ruby works was preventing these objects from being printed, although I'm unsure about the specific version of Ruby in which this occurred.
  • Remove superfluous quotes in the --help output of transcode-video.
  • Remove the deprecated --cvbr and --vbr options in transcode-video and --player option in detect-crop.
  • Revise my usage in the "FAQ" section of the "README" document since I no longer choose the default settings with transcode-video.
  • Re-order a few misplaced lines in the "History" section of the "README" document.
  • Update all copyright notices to the year 2018.

0.18.0

5 years ago

This version was originally tagged and released on the date below. These notes were added on GitHub much later so the creation date won't match.

Saturday, December 2, 2017

  • Improve the average bitrate (ABR) ratecontrol system provided by the --abr option in transcode-video. Via #179.
    • Implement it with a maximum bitrate constraint to raise its overal quality level and guarantee that it will not generate any VBV underflow warnings like the default ratecontrol system.
    • Signal Hypothetical Reference Decoder (HRD) information, meaning that the VBV maximum bitrate value is added as metadata to the output video, something you should not do when using the default ratecontrol system.
    • Move it from the "Advanced" to the "Quality" section in the --help output and describe its quality output as "different" rather than "lower" compared to the default ratecontrol system.
    • Also remove the no-longer valid characterization of ABR in the "Explanation" section of the "README" document.
  • Deprecate the poorly named --cvbr and --vbr options in transcode-video and remove them from the --help output.
    • The ratecontrol system implemented by the --cvbr option was always experimental. After much testing, it was found to be noticeably lower in quality compared to the default and to the new ABR implementation.
    • The ratecontrol system implemented by the --vbr option was only ever intended for comparison testing. And probably used only by myself.
  • Modify transcode-video to no longer re-calculate vbv-bufsize based on any user input value for vbv-maxrate. Instead, always calculate both vbv-maxrate and vbv-bufsize based on the target video bitrate.
  • Deprecate the --player option in detect-crop and remove it from the --help output.
  • Fix failure of subtitle detection for HandBrake nightly builds. Language detection for subtitles in disc image directory input and individual closed caption tracks may still be wrong but will not be fixed at this time. Via #172.
  • Mention Nick Wronski's nifty batch-processing wrapper for transcode-video in the the "README" document. Thanks, @JMoVS! Via #180.

0.17.4

5 years ago

This version was originally tagged and released on the date below. These notes were added on GitHub much later so the creation date won't match.

Sunday, September 10, 2017

  • Force text output from mp4track into UTF-8 binary format to ensure correct parsing of that data. Thanks, @DavidNielsen! Via #152.

0.17.3

5 years ago

This version was originally tagged and released on the date below. These notes were added on GitHub much later so the creation date won't match.

Sunday, May 14, 2017

  • HandBrakeCLI versions 1.0 and later changed the default frame rate mode from "constant" to "peak-limited" when a rate is specified. This new behavior in HandBrakeCLI requires two significant changes in transcode-video:
    • Fix a bug where the --force-rate option failed to force a constant frame rate. This bug made it behave essentially the same at the --limit-rate option.
    • Fix a bug where a constant frame rate was not forced for inputs containing MPEG-2 video. This bug affected the transcoding of all DVDs but very few Blu-ray Discs. The good news is that this bug probably didn't cause visual problems since the new default peak-limited implementation in HandBrakeCLI versions 1.0 and later worked like a constant frame rate most of the time.
  • Modify convert-video to use binary file mode when reading and writing console and log output from ffmpeg. This eliminates redundant information and "console spew" on Windows by suppressing the EOL <-> CRLF conversion. Thanks, @samhutchins! Via #147.
  • Also modify transcode-video and convert-video to use binary file mode when processing console I/O from mkvpropedit and mp4track to eliminate that same "console spew" on Windows.
  • Modify detect-crop to escape preview commands for cmd.exe and PowerShell on Windows in a manner that's still compatible with Bourne and Z shells. Also mention in the "Using detect-crop" section of the "README" document that path names within the sample commands are not escaped properly when using cmd.exe or PowerShell on Windows and that bash.exe can be used as a workaround. Via #146.
  • Modify transcode-video to accept x264_10bit, x265_10bit, x265_12bit and x265_16bit as supported encoders while also adjusting the encoder profile for these variants. Via #143.
  • Modify transcode-video to no longer set the x264 encoder level if a frame rate has been requested higher than 30 FPS. Via #141.

0.17.2

5 years ago

This version was originally tagged and released on the date below. These notes were added on GitHub much later so the creation date won't match.

Monday, April 3, 2017

  • Fix failure of version detection for recent HandBrake nightly builds. Thanks, @kvanh! Via #139.
  • Modify detect-crop to escape preview commands for Z shells. Thanks, @jjathman! Via #138.

0.17.1

5 years ago

This version was originally tagged and released on the date below. These notes were added on GitHub much later so the creation date won't match.

Wednesday, February 22, 2017

  • Modify transcode-video to use binary file mode when reading and writing console and log output from HandBrakeCLI. This eliminates redundant information and "console spew" on Windows by suppressing the EOL <-> CRLF conversion. Thanks, @samhutchins! Via #130.

0.17.0

5 years ago

This version was originally tagged and released on the date below. These notes were added on GitHub much later so the creation date won't match.

Thursday, February 16, 2017

  • Remove all dependencies on mplayer, via #120 and #123:
    • Modify detect-crop and transcode-video to use ffmpeg for crop detection instead of mplayer.
    • Modify detect-crop to use mpv, a free cross-platform media player, for optional crop preview instead of mplayer.
    • Add a --player option to detect-crop so mplayer can still be used for crop preview commands. Warning: this feature will be deprecated soon.
  • Update the "README" document to:
    • Remove any mention of mplayer and list mpv as an optional package.
    • Fix typo in version 0.16.0 release information. Thanks, @samhutchins!

0.16.0

5 years ago

This version was originally tagged and released on the date below. These notes were added on GitHub much later so the creation date won't match.

Friday, January 20, 2017

  • Add a --cvbr option to transcode-video. This is essentially the same as the experimental option of the same name which was removed on February 25, 2016, but now it doesn't have a bitrate argument. It enables a simple constrained variable bitrate (CVBR) ratecontrol system, less constrained than the default, producing a more predictable output size while avoiding VBV underflow warnings. Use it with --target big for the best results.
  • Modify the --abr option in transcode-video to no longer use a bitrate argument. Instead, it relies on the --target option to control bitrate, just like the default ratecontrol system and the new --cvbr option. So, passing a bitrate argument is now an error. But you should consider using --cvbr instead of --abr anyway since the former is almost always higher quality.
  • Remove the deprecated --no-constrain option from detect-crop and the --no-constrain-crop option from transcode-video.
  • Modify convert-video to allow HEVC format video along with H.264.
  • Update the "README" document to:
    • Revise and simplify the Windows installation instructions to point users at the fine work by @samhutchins and @JMoVS on documenting their two methods. Via #115.
    • Revise the "Using transcode-video" section to correct out-of-date performance data about the --quick option.
    • Revise the H.265 answer in the "FAQ" section with up-to-date information about the x265 video encoder. Via #118.