Other tools to transcode videos.
Hi, I'm Lisa Melton. I created this project to transcode my collection of Blu-ray Discs and DVDs into a smaller, more portable format while remaining high enough quality to be mistaken for the originals.
Unlike my older Video Transcoding project, the other-transcode.rb
tool in this package automatically selects a platform-specific hardware video encoder rather than relying on a slower software encoder.
Using an encoder built into a CPU or video card means that even Blu-ray Disc-sized media can be transcoded 5 to 10 times faster than its original playback speed, depending on which hardware is available.
But even at those speeds, quality is never compromised because the other-transcode.rb
tool also selects the best ratecontrol system available within those encoders and properly configures that system. This is what sets it apart from other tools using hardware encoders.
Because other-transcode.rb
leverages FFmpeg, many hardware platforms are supported including:
And many features are supported including:
- High quality 10-bit HEVC encoding on recent generations of Nvidia and Intel hardware
- 8-bit HEVC encoding on other hardware platforms
- Hardware-based video decoding for improved performance
- Fallback to software video encoding when appropriate hardware is not available
- Optional automatic and reliable video cropping
- Adding audio and subtitle tracks by language or title
- Dolby Digital Plus (Enhanced AC-3) audio encoding
- Burning image-based subtitles into video output to ease player compatibility
Additional documentation for this project is available in the wiki.
Warning
Older versions of this project were packaged via RubyGems and installed via the gem
command. If you had it installed that way, it's a good idea to uninstall that version via this command: gem uninstall other_video_transcoding
Warning
Avoid installing within virtual machines such as the Windows Subsystem for Linux since access to hardware video encoders may not be allowed, severely impacting performance.
The other-transcode.rb
tool works on Windows, Linux and macOS. It's a standalone Ruby script which must be installed and updated manually. You can retrieve it via the command line by cloning the entire repository like this:
git clone https://github.com/lisamelton/other_video_transcoding.git
Or download it directly from the GitHub website here:
https://github.com/lisamelton/other_video_transcoding
On Linux and macOS, make sure other-transcode.rb
is executable by setting its permissions like this:
chmod +x other-transcode.rb
And then move or copy other-transcode.rb
to a directory listed in your $env:PATH
environment variable on Windows or $PATH
environment variable on Linux and macOS.
Because it's written in Ruby, other-transcode.rb
requires that language's runtime and interpreter. See "Installing Ruby" if you don't have it on your platform.
Additional software is required for other-transcode.rb
to function properly, specifically these command line programs:
ffprobe
ffmpeg
mkvpropedit
Optional crop previewing also requires the mpv
command line program.
See "Download FFmpeg," "MKVToolNix Downloads" and "mpv Installation" to find versions for your platform.
Additional documentation for installing these programs on Windows is available in the wiki.
Docker containers for Linux, including installation instructions, are available here:
https://git.skj.dev/container/other-transcode
On macOS, all of these programs can be easily installed via Homebrew, an optional package manager:
brew install ffmpeg
brew install mkvtoolnix
brew install mpv
The ffprobe
program is included within the ffmpeg
package and the mkvpropedit
program is included within the mkvtoolnix
package.
Warning
Recent changes to Nvidia drivers, versions 555.85 and later, have a bug (or feature?) which ignores target bitrates for HEVC output so that only constant quality values are honored. H.264 output is not affected. Until this is fixed, always add the --nvenc-cq
option to your command line when using the Nvidia HEVC encoder. Otherwise the encoder will ignore the default bitrate and do something undefined.
The other-transcode.rb
tool has over 50 command line options. Use --help
to list the options available along with brief instructions on their usage:
other-transcode.rb --help
More options are available with:
other-transcode.rb --help more
And the full set of options is available with:
other-transcode.rb --help full
The other-transcode.rb
tool automatically determines target video bitrate, main audio track configuration, etc. without any command line options, so using it can be as simple as this on Windows:
other-transcode.rb C:\Rips\Movie.mkv
Or this on Linux and macOS:
other-transcode.rb /Rips/Movie.mkv
On completion that command creates its output in the current working directory:
Movie.mkv
Use the --hevc
option to create HEVC video:
other-transcode.rb --hevc C:\Rips\Movie.mkv
High quality 10-bit HEVC is automatically selected when using the Nvidia and Intel encoders.
Use the --eac3
option to create Dolby Digital Plus audio:
other-transcode.rb --eac3 C:\Rips\Movie.mkv
Please report bugs or ask questions by creating a new issue on GitHub. I always try to respond quickly but sometimes it may take as long as 24 hours.
This project would not be possible without my collaborators on the Video Transcoding Slack who spend countless hours reviewing, testing, documenting and supporting this software.
Other Video Transcoding is copyright Lisa Melton and available under a MIT license.