Tools to transcode, inspect and convert videos.
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
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.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
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!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.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.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.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.-n
as a shortcut alias for the --dry-run
option in transcode-video
. This is the same shortcut alias used in rsync
and make
.--abr
option.--help
output of query-handbrake-log
. Thanks, @chrisridd! Via #205.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
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.
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'
."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.--reverse-double-order
option to transcode-video
to reverse order of double-width audio output tracks. Thanks, @samhutchins! Via #184.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
..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.--help
output of transcode-video
.--cvbr
and --vbr
options in transcode-video
and --player
option in detect-crop
.transcode-video
.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
--abr
option in transcode-video
. Via #179.
VBV underflow
warnings like the default ratecontrol system.--help
output and describe its quality output as "different" rather than "lower" compared to the default ratecontrol system.--cvbr
and --vbr
options in transcode-video
and remove them from the --help
output.
--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.--vbr
option was only ever intended for comparison testing. And probably used only by myself.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.--player
option in detect-crop
and remove it from the --help
output.transcode-video
in the the "README" document. Thanks, @JMoVS! Via #180.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
mp4track
into UTF-8 binary format to ensure correct parsing of that data. Thanks, @DavidNielsen! Via #152.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
:
--force-rate
option failed to force a constant frame rate. This bug made it behave essentially the same at the --limit-rate
option.HandBrakeCLI
versions 1.0 and later worked like a constant frame rate most of the time.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.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.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.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.transcode-video
to no longer set the x264 encoder level if a frame rate has been requested higher than 30
FPS. Via #141.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
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
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.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
mplayer
, via #120 and #123:
detect-crop
and transcode-video
to use ffmpeg
for crop detection instead of mplayer
.detect-crop
to use mpv
, a free cross-platform media player, for optional crop preview instead of mplayer
.--player
option to detect-crop
so mplayer
can still be used for crop preview commands. Warning: this feature will be deprecated soon.mplayer
and list mpv
as an optional package.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
--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.--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.--no-constrain
option from detect-crop
and the --no-constrain-crop
option from transcode-video
.convert-video
to allow HEVC format video along with H.264.transcode-video
" section to correct out-of-date performance data about the --quick
option.