Releases: lisamelton/video_transcoding
0.25.0
Saturday, March 9, 2019
- Change the default mixdown for stereo audio output tracks in
transcode-videofrom 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-videovia the--mixdown dpl2option 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
HandBrakeCLIto the console or the.logfile intranscode-videoand fromffmpegto 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-cropoption and its newminimalargument in the "Cropping" section of the "README" document. Thanks to @JMoVS for the reminder! Via #266. - Modify the
--helpoutput oftranscode-videoto clarify that the--ac3-bitrateand--pass-ac3-bitrateoptions 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-videowhen applying the--ac3-encoder eac3option 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-formatand--keep-ac3-stereooptions totranscode-video. Thanks to @samhutchins for the idea and design! Via #254.- With the
--audio-formatoption, 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=aacto your command line. However, you may want to pair that with--audio-width main=surroundto avoid two AAC tracks of the same input being created. - Think of the
--keep-ac3-stereooption as a kinder, gentler form of the--prefer-ac3option. - 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-ac3option intranscode-videoand remove its description from the--helpoutput. 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=ac3to your command line. - However, you might want to add
--audio-width all=surround --keep-ac3-stereoinstead 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
minimalargument to the--fallback-cropoption intranscode-videowhich determines the smallest possible crop values, when using the--crop detectoption and argument, by combining results from bothHandBrakeCLIandffmpeg. Thanks to @dkoenig01 for the idea! Via #255. - Relax validation criteria for HandBrake-generated
.logfiles inquery-handbrake-logas workaround forHandBrakeCLIspewing 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
--avbrratecontrol 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 underflowwarnings at the beginning of a transcode, but nothing like the sustained deluge possible with my special, or default, ratecontrol system. - Works only with the
x264andx264_10bitencoders. Sorry, but the settings necessary to implement AVBR are not available with thex265family of encoders.
- Add my new AVBR ratecontrol system to the "Explanation" section of the "README" document.
- Add an undocumented
--rawratecontrol testing option totranscode-videowhich implements, by default, an unconstrained ABR system, easily modified with--handbrake-optionand/or--encoder-option. - Add a
--mixdownoption totranscode-videowhich 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-cropon Linux for certain inputs by forcing the text output fromffmpeginto 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
--encoderoption totranscode-videoso--encoder x265will work the same as the much longer and harder to type--handbrake-option encoder=x265. - Add a
--simpleratecontrol option totranscode-video(via #211) which:- Works like my special, or default, ratecontrol system but won't emit those annoying
VBV underflowwarnings 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-videoto 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_h264andvce_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-videoto 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 --helpfrom 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_h264is all that's needed to enable hardware-based H.264 transcoding. Usevt_h265for HEVC. - On Windows and Linux, use
qsv_h264orqsv_h265. Other encoders might be available as well in nightly builds. - WARNING: If you request an encoder that is not available,
HandBrakeCLImay 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
x264andx265encoders 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-videocreating 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_aacorav_aac. Apparently the default is different on Windows. Go figure. Thanks, @samhutchins! Via #235. - Add a workaround in
transcode-videofor 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-videoandconvert-videofor 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-videoto create "sparse".logfiles by removing overwritten progress information, often making those files an order of magnitude (i.e.10x) smaller. Via #213. - Replace code in
transcode-videowhich usedmkvpropeditormp4trackin a post-transcoding step to sanitize audio titles containing commas, with much simpler code leveraging a comma escaping mechanism only available inHandBrakeCLIversion 1.0.0 or later. - Fix bug in
transcode-videowhere the level was not set when using thex264_10bitencoder. - Remove support the non-existent
x265_16bitencoder intranscode-video. This might have been available last year in some development builds ofHandBrakeCLI, but it's definitely not in any release.
0.20.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, October 21, 2018
- Modify
transcode-videoto no longer validate--filteroption arguments against a fixed list of names. This will prevent annoying failures whenever the HandBrake team adds a new filter.
0.20.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.
Monday, June 18, 2018
- Now require
HandBrakeCLIversion 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-videoso that the options--rate=30and--pfrare no longer passed toHandBrakeCLIfor most non-DVD videos. This means that the peak frame rate will no longer be limited to30FPS, allowing camera-generated videos to retain their original frame rates. However, the old behavior can be restored for those videos by adding--limit-rate 30to yourtranscode-videocommand line. - Modify
transcode-videoto no longer pass--encoder-preset=mediumtoHandBrakeCLIsince that's the default behavior anyway. However, adding--preset mediumto yourtranscode-videocommand line still does so. - Modify
transcode-videoto no longer pass a named audio encoder toHandBrakeCLIin order to select AAC, i.e.ca_aacorav_aac, since AAC is the default audio format anyway. However, adding the--aac-encoderoption to yourtranscode-videocommand line still allows an explicit choice. - Modify
transcode-videoto substitute "analyse" for the x264 option called "partitions" when invoked with the--quickor--veryquickoptions. This is done to better match the archaic internal name used by HandBrake. It has no effect on actual transcoding behavior. - Add
-nas a shortcut alias for the--dry-runoption intranscode-video. This is the same shortcut alias used inrsyncandmake. - 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
--abroption. - 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
--helpoutput ofquery-handbrake-log. Thanks, @chrisridd! Via #205.
0.19.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, January 27, 2018
- Add support for Dolby Digital Plus audio format, aka Enhanced AC-3, to
transcode-videoandconvert-videowith a new--ac3-encoderoption for each tool. Also, extend the--ac3-bitrateand--pass-ac3-bitrateoptions intranscode-videoto 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-videodue to a limitation inHandBrakeCLI. This means that adding both--mp4and--ac3-encoder eac3to your command line will fail with the error "incompatible encoder 'eac3' for muxer 'av_mp4'." - Oddly enough,
ffmpegdoesn't have this limitation so you'll be able to useconvert-video --ac3-encoder eac3to convert your MKV files into MP4 format without any problems. Go figure.
- WARNING: Dolby Digital Plus output is currently NOT COMPATIBLE with the MP4 file format when using
- Remove "Can you add support for Enhanced AC-3 audio?" from the "FAQ" section of the "README" document, for obvious reasons. :)
- Add
--reverse-double-orderoption totranscode-videoto reverse order of double-width audio output tracks. Thanks, @samhutchins! Via #184. - Fix a bug in
convert-videowhere 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 offfmpeg. - Append
.inspectto all Hash objects used asConsole.debugarguments. 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
--helpoutput oftranscode-video. - Remove the deprecated
--cvbrand--vbroptions intranscode-videoand--playeroption indetect-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.