Ripping DVDs, BluRays, and UHD disks can be done with the excellent MakeMKV software, which produces a perfect MKV of the media, albeit a very large file. Don Melton’s excellent transcoding scripts can be used to transcode and convert the MKV file into a more efficient file size, with several options such as burning subtitles directly into the movie file itself. The video file can also be transcoded into an Apple-friendly MP4 file format.
To install the transcoding scripts, follow the instructions.
brew install ruby
sudo gem install video_transcoding
gem update video_transcoding
brew install handbrake
brew install ffmpeg
brew install mkvtoolnix
brew install mp4v2
brew install mpv
Compressing the file
transcode-video <your-ripped-video-file.mkv>
Optional steps
I also prefer to add in a few additional options. So, let’s say I had a file batman.mkv
. I would run that file through Don’s tools as such:
transcode-video --mp4 --burn-subtitle scan batman.mkv
The two options:
--mp4
indicates that I want the resulting output to be a MP4
file, rather than another MKV
. This tends to play better with Apple devices.
--burn-subtitle scan
In some movies, foreign-language content spoken on-screen will be displayed in English by forcing the subtitles to show during that time, even if subtitles haven’t been turned on by the user.
--burn-subtitle scan
indicates to Don’s tools that they should attempt to scan for any forced subtitles, and then burn them into the video, so they’re part of image shown on-screen. As Don writes in his instructions:
By default, the transcode-video tool automatically burns any forced subtitle track it detects into the output video track. “Burning” means that the subtitle becomes part of the video itself and isn’t retained as a separate track. A “forced” subtitle track is detected by a special flag on that track in the input.
You can also use a special “scan” mode […] to find any embedded forced subtitle track that’s in the same language as the main audio track.
Be aware that using this special “scan” mode does not always work. Sometimes it won’t find any track or, worse, it will find the wrong track. And you won’t know whether it worked until the transcoding is complete.