Veracious Network More than just a game, it's a community!

Video Transcoding from VOB Files for Plex

While testing out a new Plex install, (article talking about that coming soon), I ran into some difficulties with various ripped content I had, notably that it is far less accepting on various video formats.

Ripped VOB Files (Mutliple VOBs)

For whatever reason, younger me ripped some DVDs as raw VOB files which worked well for VLC but not so much with Plex, which prefers single files for a single movie.

First option I tried was to use Handbrake to convert each VOB into a separate video file which worked, but then I had 4 video files and Plex only saw the first as the movie source. Merging them together can be achieved with ffmpeg, but that loses extra subtitles, audio tracks, and meta information. I prefer my archived files to contain the same information with as close to the original fidelity as possible, so this option was less than ideal.

Better solution was to use VOBMerge 2.52 with Proton to merge the various chapters into a single VOB. This utility can merge serveral '.VOB' files into a single large file, which Handbrake can read, while preserving all the same properties and extra information from the original files.

Screenshot of VOBMerge

Despite being a Windows-only utility, it worked just fine with Wine/Proton and is a standalone executable. If the original link goes down, this free software is mirrored here.

Transcoding while Preserving Data

Now that I have a single large VOB containing all the content from the DVD, Handbrake was able to use that as the source file and export a fully encompassed MKV container, with all the requested meta information.

Since I like fully tagged files, I will also populate the various meta tags from movie information from TVDB.

Screenshot of Handbrake transcoding utility

With a single large VOB file, all the additional embedded content is preserved, though needs selected in the Handbrake UI. Do this by clicking 'Add All' under Audio and Subtitles tabs, then enter the appropriate labels for each.

Handbrake editing interface for embedded 5.1 audio tracks

Handbrake defaults to 2.0 channel audio, so for preserving 5.1 audio, the 'Mix' needs set on the appropriate channel(s).

Handbrake editing interface for additional languages

Some DVDs may not label their audio channels or subtitles, (that or Handbrake just didn't read them or my original ripping missed something). This was a try and check method of playing the video and selecting the different subtitles / channels to see what they did. On this particular DVD, channel 3 was Spanish, (determined by just listening to it), so I was able to set the label for the destination file.

VLC interface playing a video with correct subtitle embeds and multiple languages

Since I took a couple extra minutes to set these labels, players such as VLC are able to see them and provide meaningful options when playing them back.

Why Matroska?

I personally prefer MKV because it is just a container and can contain all these subtitles, separate audio channels, and other documents all within a singular file, (much like a TAR or ZIP file).

Unsupported Encoding - Transcode!

For codecs not supported by Plex, ffmpeg can transcode to a supported format.

bash ffmpeg -i source_file.avi -movflags use_metadata_tags dest_file.mp4

This command will usually do the trick to encode to an MP4 with h.264 codec. Since the source AVIs and files generally don't have embedded channels, a simple transcode is sufficient. If any metatags are included, the -movflags use_metadata_tags flag will preserve those.

Links and References

[MKV]: Matroska Multimedia Container [VOB]: Video OBject *[VLC]: VideoLAN Media Player