Tools to transcode, inspect and convert videos.
Tuesday, May 26, 2020
detect-crop
to show preview commands compatible with newer versions of mpv
.Wednesday, May 15, 2019
transcode-video
with the --copy-audio-name
option when the input audio track name does not exist. Via #279.Saturday, March 30, 2019
transcode-video
which could prevent the proper detection of certain input audio formats, normally allowed for pass-through, from being copied unchanged to the output. This could also cause the --keep-ac3-stereo
option from behaving correctly when used together with the --ac3-encoder eac3
option and argument. Thanks to @khaosx for finding the problem!Saturday, March 9, 2019
transcode-video
from Dolby Pro Logic II format to regular stereo. This matches the behavior of the presets in HandBrake since version 1.2.0. The old behavior is still available in transcode-video
via the --mixdown dpl2
option and argument. Via #262.HandBrakeCLI
to the console or the .log
file in transcode-video
and from ffmpeg
to the console in convert-video
. Thanks to @joshstaiger for the persistent detective work and the patch! Via #189 and #264.--fallback-crop
option and its new minimal
argument in the "Cropping" section of the "README" document. Thanks to @JMoVS for the reminder! Via #266.--help
output of transcode-video
to clarify that the --ac3-bitrate
and --pass-ac3-bitrate
options only affect surround audio and surround pass-through bitrates.transcode-video
when applying the --ac3-encoder eac3
option and argument. Previously this was always 768 Kbps for stereo and 384 Kbps for mono, with stereo being higher than the default bitrate for surround audio output in the same format.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, February 24, 2019
--audio-format
and --keep-ac3-stereo
options to transcode-video
. Thanks to @samhutchins for the idea and design! Via #254.
--audio-format
option, you can now specify whether AC-3 or AAC is used when surround or stereo output tracks are created.--audio-format surround=aac
to your command line. However, you may want to pair that with --audio-width main=surround
to avoid two AAC tracks of the same input being created.--keep-ac3-stereo
option as a kinder, gentler form of the --prefer-ac3
option.--prefer-ac3
option in transcode-video
and remove its description from the --help
output. Also via #254.
--audio-width all=surround --audio-format all=ac3
to your command line.--audio-width all=surround --keep-ac3-stereo
instead since you'll get higher quality and slightly smaller output, albeit with some AAC tracks in your output when stereo audio in non-AC-3 format still needs to be transcoded.minimal
argument to the --fallback-crop
option in transcode-video
which determines the smallest possible crop values, when using the--crop detect
option and argument, by combining results from both HandBrakeCLI
and ffmpeg
. Thanks to @dkoenig01 for the idea! Via #255..log
files in query-handbrake-log
as workaround for HandBrakeCLI
spewing linkage failure warnings on certain Linux platforms. Via #257.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, February 10, 2019
--avbr
ratecontrol option to transcode-video
(via #248) which:
VBV underflow
warnings at the beginning of a transcode, but nothing like the sustained deluge possible with my special, or default, ratecontrol system.x264
and x264_10bit
encoders. Sorry, but the settings necessary to implement AVBR are not available with the x265
family of encoders.--raw
ratecontrol testing option to transcode-video
which implements, by default, an unconstrained ABR system, easily modified with --handbrake-option
and/or --encoder-option
.--mixdown
option to transcode-video
which sets the mixdown format for all AAC audio tracks, either Dolby Pro Logic II (the default) or stereo. Thanks to @samhutchins for the idea and the patch! Via #245.detect-crop
on Linux for certain inputs by forcing the text output from ffmpeg
into UTF-8 binary format to ensure the correct parsing of that data during crop detection. Via #247.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 15, 2018
--encoder
option to transcode-video
so --encoder x265
will work the same as the much longer and harder to type --handbrake-option encoder=x265
.--simple
ratecontrol option to transcode-video
(via #211) which:
VBV underflow
warnings because it's only constrained by the target bitrate and not also a minimum quality.transcode-video
to not pass the target video bitrate to hardware-based encoders when a CRF value is also specified, e.g. via something like --handbrake-option quality=20
. Currently, this is only applicable to encoders such as nvenc_h264
, nvenc_h265
, vce_h264
and vce_h265
.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.
Tuesday, December 4, 2018
transcode-video
to pass the target video bitrate to hardware-based encoders available in HandBrake for Windows and Linux as well as HandBrake nightly builds for macOS:
HandBrakeCLI --help
from one of those builds to find out if your platform has any of these video encoders available._h264
" (for H.264) or "_h265
" (for HEVC).--handbrake-option encoder=vt_h264
is all that's needed to enable hardware-based H.264 transcoding. Use vt_h265
for HEVC.qsv_h264
or qsv_h265
. Other encoders might be available as well in nightly builds.HandBrakeCLI
may fail or it may just fallback to a software-based encoder. Check your console output while transcoding to be certain.x264
and x265
encoders while still delivering reasonable quality. Of course, your mileage (and perception) may vary.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, December 2, 2018
transcode-video
creating MP3 instead of AAC audio in MKV output on Windows. This was caused by a previous optimization not passing a named AAC audio encoder to HandBrakeCLI
, i.e. ca_aac
or av_aac
. Apparently the default is different on Windows. Go figure. Thanks, @samhutchins! Via #235.transcode-video
for HandBrake nightly builds not setting the mixdown of multichannel audio track inputs to Dolby Pro Logic II format at 160 Kbps when the output is AAC stereo. Apparently the new default for that type of input is 5.1 channels at 384 Kbps, which wouldn't play on most Roku or Apple TV devices without re-transcoding or non-standard software. Again, go figure.transcode-video
and convert-video
for HandBrake nightly builds not copying mono or stereo audio track inputs which are already in AAC format.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, November 9, 2018
transcode-video
to create "sparse" .log
files by removing overwritten progress information, often making those files an order of magnitude (i.e. 10x
) smaller. Via #213.transcode-video
which used mkvpropedit
or mp4track
in a post-transcoding step to sanitize audio titles containing commas, with much simpler code leveraging a comma escaping mechanism only available in HandBrakeCLI
version 1.0.0 or later.transcode-video
where the level was not set when using the x264_10bit
encoder.x265_16bit
encoder in transcode-video
. This might have been available last year in some development builds of HandBrakeCLI
, but it's definitely not in any release.