Releases: lisamelton/video_transcoding
0.25.3
0.25.2
0.25.1
Saturday, March 30, 2019
- Fix a heinous multi-part bug in
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!
0.25.0
Saturday, March 9, 2019
- Change the default mixdown for stereo audio output tracks in
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 intranscode-video
via the--mixdown dpl2
option and argument. Via #262. - Remove previous addition to the "README" document explaining that stereo tracks can also include surround audio information in matrix-encoded Dolby Pro Logic II format since that's no longer the default behavior, nor is it recommended (which makes me sad).
- In order to avoid a crash on the Windows Subsystem for Linux platform, buffer characters that seem to be part of a multibyte UTF-8 sequence when copying output from
HandBrakeCLI
to the console or the.log
file intranscode-video
and fromffmpeg
to the console inconvert-video
. Thanks to @joshstaiger for the persistent detective work and the patch! Via #189 and #264. - As a convenience to those not using batch scripts, echo the output file name at the completion of transcoding. Thanks to @JayJay1974 for the idea! Via #260.
- Explain the
--fallback-crop
option and its newminimal
argument in the "Cropping" section of the "README" document. Thanks to @JMoVS for the reminder! Via #266. - Modify the
--help
output oftranscode-video
to clarify that the--ac3-bitrate
and--pass-ac3-bitrate
options only affect surround audio and surround pass-through bitrates. - Lower the bitrate of stereo and mono Dolby Digital Plus output to sensible levels in
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. - Add a "CHANGELOG.md" document to the project and replace the content of the "History" section of the "README" document with pointers to the GitHub releases page and that new "CHANGELOG.md" document.
0.24.0
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
- Add
--audio-format
and--keep-ac3-stereo
options totranscode-video
. Thanks to @samhutchins for the idea and design! Via #254.- With the
--audio-format
option, you can now specify whether AC-3 or AAC is used when surround or stereo output tracks are created. - This allows multichannel 5.1 AAC audio output by adding
--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. - Think of the
--keep-ac3-stereo
option as a kinder, gentler form of the--prefer-ac3
option. - It copies rather than transcodes AC-3 stereo or mono audio tracks even when the current stereo format is AAC, but it doesn't affect surround tracks.
- With the
- Deprecate the
--prefer-ac3
option intranscode-video
and remove its description from the--help
output. Also via #254.- The option still works for now, but using it issues a warning message.
- You can get the exact same functionality by adding
--audio-width all=surround --audio-format all=ac3
to your command line. - However, you might want to add
--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.
- Add a
minimal
argument to the--fallback-crop
option intranscode-video
which determines the smallest possible crop values, when using the--crop detect
option and argument, by combining results from bothHandBrakeCLI
andffmpeg
. Thanks to @dkoenig01 for the idea! Via #255. - Relax validation criteria for HandBrake-generated
.log
files inquery-handbrake-log
as workaround forHandBrakeCLI
spewing linkage failure warnings on certain Linux platforms. Via #257.
0.23.0
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
- Add a
--avbr
ratecontrol option totranscode-video
(via #248) which:- Implements an average variable bitrate (AVBR) ratecontrol system focused on maintaining quality at the risk of final bitrates being as much as 10-15% higher or lower than the target.
- May emit a few
VBV underflow
warnings at the beginning of a transcode, but nothing like the sustained deluge possible with my special, or default, ratecontrol system. - Works only with the
x264
andx264_10bit
encoders. Sorry, but the settings necessary to implement AVBR are not available with thex265
family of encoders.
- Add my new AVBR ratecontrol system to the "Explanation" section of the "README" document.
- Add an undocumented
--raw
ratecontrol testing option totranscode-video
which implements, by default, an unconstrained ABR system, easily modified with--handbrake-option
and/or--encoder-option
. - Add a
--mixdown
option totranscode-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. - Fix failure in
detect-crop
on Linux for certain inputs by forcing the text output fromffmpeg
into UTF-8 binary format to ensure the correct parsing of that data during crop detection. Via #247. - List all hardware-based video encoders within the related answer in the "FAQ" section of the "README" document. Thanks to @vr8hub for the idea! Via #251.
- Update all copyright notices to the year 2019.
0.22.0
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
- Add an
--encoder
option totranscode-video
so--encoder x265
will work the same as the much longer and harder to type--handbrake-option encoder=x265
. - Add a
--simple
ratecontrol option totranscode-video
(via #211) which:- Works like my special, or default, ratecontrol system but won't emit those annoying
VBV underflow
warnings because it's only constrained by the target bitrate and not also a minimum quality. - Signals Hypothetical Reference Decoder (HRD) information in metadata like my average bitrate (ABR) ratecontrol system.
- Produces output similar in appearance to that from hardware-based encoders but is less prone to color banding.
- Works like my special, or default, ratecontrol system but won't emit those annoying
- Modify
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 asnvenc_h264
,nvenc_h265
,vce_h264
andvce_h265
. - Revise both the H.265 video and hardware-based video transcoding answers in the "FAQ" section of the "README" document.
- Update and simplify the "Explanation" section of the "README" document.
0.21.2
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
- Modify
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:- Check the output of
HandBrakeCLI --help
from one of those builds to find out if your platform has any of these video encoders available. - The names of these encoders all end with "
_h264
" (for H.264) or "_h265
" (for HEVC). - On macOS, adding
--handbrake-option encoder=vt_h264
is all that's needed to enable hardware-based H.264 transcoding. Usevt_h265
for HEVC. - On Windows and Linux, use
qsv_h264
orqsv_h265
. Other encoders might be available as well in nightly builds. - WARNING: If you request an encoder that is not available,
HandBrakeCLI
may fail or it may just fallback to a software-based encoder. Check your console output while transcoding to be certain. - These hardware-based encoders are far faster than the software-based
x264
andx265
encoders while still delivering reasonable quality. Of course, your mileage (and perception) may vary.
- Check the output of
0.21.1
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
- Fix a bug in
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 toHandBrakeCLI
, i.e.ca_aac
orav_aac
. Apparently the default is different on Windows. Go figure. Thanks, @samhutchins! Via #235. - Add a workaround in
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. - Add a workaround in
transcode-video
andconvert-video
for HandBrake nightly builds not copying mono or stereo audio track inputs which are already in AAC format.
0.21.0
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
- Modify
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. - Replace code in
transcode-video
which usedmkvpropedit
ormp4track
in a post-transcoding step to sanitize audio titles containing commas, with much simpler code leveraging a comma escaping mechanism only available inHandBrakeCLI
version 1.0.0 or later. - Fix bug in
transcode-video
where the level was not set when using thex264_10bit
encoder. - Remove support the non-existent
x265_16bit
encoder intranscode-video
. This might have been available last year in some development builds ofHandBrakeCLI
, but it's definitely not in any release.