Enabling Closed Captioning

After sharing out my movie to a friend who is hearing impaired, I decided to look into how I would go about making sure that my movies would be accessible to her.

Closed captioning for movies is supported by embedding the subtitles in the movie files themselves, or through the use of external files.

My first thought was to attempt to embed the files as provided by the DVDs or Blu-Ray discs.  As it turns out, this approach is a bit fraught with peril as I’ve found that getting Handbrake to do the right thing was a bit hit or miss, but you can find some good instructions online.  I’ve occasionally ended up with permanently turned on closed captioning for specific movies, or just ending up with foreign subtitles rather than English closed captioning.  Not to mention that this approach would require re-ripping all existing media files which were not ripped with them enabled.

The easier approach is through the use of an external file.  These closed captioning files can be found online on a number of websites like OpenSubtitles or Subscene.  Even better, the operation can be automated by various Plex plugins.  I use Sub-Zero which is itself a fork of Subliminal.  Installation of the plugin itself is probably best left for another post.

One item to note regarding using these plugins for downloading subtitles is that it will require the Plex server to have write access to your content directories.  Typically Plex only requires read-only access, so you may not already have this set up.  This can be done by simply adding the plex user to the group which owns the content directory and ensuring that group write permissions are set.

Ripping Blu-Ray

Blu-Ray discs require a different approach for ripping than DVDs do for a few reasons.  Mainly in that you need to have Blu-Ray reader in your computer and the size of the content is going to be a lot larger.  While you can expect a DVD rip to weigh in at 5GB or so prior to recompressing, Bluray discs are typically closer to 30GB.  Additionally the encryption used to protect the content is different and there isn’t a way to decrypt it in Handbrake itself.

My software of choice for ripping Blu-Ray is MakeMKV.  MakeMKV is commercial software with some open source components.  The Windows and Mac downloads are available with a 30 day trial, but it costs $50 for a perpetual license after that.  The Linux version is still currently considered beta, and during the beta you’re allowed to continue with the trial as long as you keep installing the updated versions.  Your $50 license if you purchase one can be used on any of the platforms, including the Linux version.

MakeMKV simply copies the movie to disk and works for DVD or Blu-Ray.  Due to this, you’ll need to have enough space to hold the whole movie (again, 30+GB).  Once it is decrypted and written to disk, you can then use Handbrake or any other transcoding software to recompress it to a smaller size.  The final size will depend on the codec you choose and the resolution to encode it for, but my Blu-Ray rips often end up a few Gigabytes.  You can also just choose to put the raw rip on your server if you want to put a lot of disk space aside for the media.


Ripping DVDs

My tool of choice for my DVD ripping needs is Handbrake.  It is an Open Source tool which supports Windows, Mac OS X or Linux.  It is highly configurable, but also has a great set of defaults for various codecs and container formats.

On the ripping side, it natively supports ripping unencrypted DVDs and supports ripping encrypted DVDs if your system has a DVD decryption library built in.  On Mac OS X, that support is built into the operating system itself.  On Windows and Linux, you need to install a copy of libdvdcss to handle the DVD decryption for you.

For instructions on installing libdvdcss on Windows for Handbrake to you, you can find instructions with links to the library.  On Linux the instructions will vary a bit based upon the distribution.  I typically use Ubuntu but you can also find instructions for Fedora and other other common distros.

Once properly installed, ripping is fairly easy.  Simply launch the program, select “Open Source”, and select your DVD drive:



Handbrake 3.PNG

After a brief delay as the disc is scanned, one of the tracks on the disc will be selected by default, and a filename is generated.  Assuming the filename, Title/Track and the preset you want are all selected, simply click “Start Encode” to begin ripping.  You’ll be notified once the ripping is complete.  The time required for this to finish will depend on the size of the movie, speed of your DVD-ROM drive and the processing power required/available for the encoding part.

Some DVDs may contain multiple Titles/Tracks.  This is especially common when ripping DVDs of TV shows where you’ll see multiple episodes per disc, or for ripping multi-packs of movies which may have multiple movies on the disc.  To rip multiple tracks, just select each track individually, name the destination files, and click “Add to Queue”.  You can queue up as many rips as you need to.

Handbrake can also be used to re-encode existing video files on your drive if desired.  This is especially helpful when doing Blu-ray rips.  While Handbrake cannot rip Blu-ray discs, it can re-encode Blu-ray data files once they are ripped from the disc by another program.

Set Top Box Features

Over the years, I’ve used a number of different set top boxes for viewing media.  So far I’ve yet to find the perfect option.  Mainly because in addition to our home Plex server, we also use a number of additional online streaming services for watching shows, and the support of those services varies quite a bit from device to device.

Some of the functionality I care about is a Plex client (obviously), Netflix, Amazon video streaming, Hulu and the ability to cast video from my computer in some manner (Google Cast or Airplay).  The ability to watch live or pre-recorded TV is also a plus.

Device Plex Netflix Amazon Hulu Google Cast Airplay Live TV DVR
TiVo Yes Yes Yes Yes No No Yes Yes
Roku  Yes Yes  Yes Yes No No No  No
Chromecast  Yes (1)  Yes (1)  No Yes (1) Yes No  No  No
Android TV Yes  Yes  No (2)  Yes  Yes No (3)  Yes (4)  No
Roku  Yes  Yes  Yes  Yes  No  No  No  No
Amazon Fire TV/Stick  Yes  Yes  Yes  Yes  No (3)  No (3)  No  No
  1. Indirectly supported through Google Cast.
  2. Supported on a small subset of Android TV devices, like Sony TVs with Android TV built in.
  3. Possibly supported unofficially through third party apps.
  4. Supported via independent HD Homerun device if available.

One item worth noting about the DVR functionality of these platforms.  There is current a beta version of the Plex server software which implements a DVR using network enabled TV Tuners like the HD Homerun.  Once it makes its way into the stable releases, some amount of DVR functionality will be available on all Plex client platforms.

My Movie Collection Odessey

Since I was a kid, I’ve always been a bit of a gaming and media junkie, often spending time on the computer, video game systems or watching movies.

In my adulthood I slowly started to accumulate a movie collection.  The bigger it got, the more of a pain it was to select and choose a movie that I wanted to watch.  Solutions were attempted and eventually discarded.  DVD cases in a rack made way for DVD books with just the discs in them.  That went away when I got my first 200 DVD changer.

The DVD changer was an interesting solution since it supported up to 200 movies (less than I had at the time) and could automatically scan the DVD to determine what they were.  Unfortunately this functionality worked by checking the disc to see the embedded name.  Some DVDs came up with name embedded.  Others were named, but the names were difficult or even impossible to decipher.

To deal with missing names, you were able to plug in a keyboard to the changer and manually enter names into it.  This had a few flaws:

  • You needed to know the name of the movie before you could add it, which doesn’t make bulk adding of discs easy.
  • Discs with embedded names did not allow you to override them.  So you may have ugly names like LORD_OF_THE_RINGS or you could have less obvious names like LOTRROFTK.
  • You’re not supposed to move the DVD player with discs in it.

The last problem resulted in the changer being discarded after we moved.  I just couldn’t go through the effort to re-enter in all the disc information a second time.  It lingered a few months with discs just being added as needed, but for the most part it was just using up space.

From there I started looking into ripping DVDs (converting them to MPEG4 files) in order to play them on computers.  I had one of the early iPods with a small color screen.  If I copied a movie to it via my computer, I could watch on a tiny screen.  My goal was to hook some sort of computer up to the TV in order to be able to play them.  This was before I had an HDTV, so the quality of the image when a computer was attached was… poor.

Next came the Apple TV in 2007, which allowed me to effectively stream the movie from my Mac using iTunes.  We were making progress, but weren’t there yet.  Next came the Logitech Revue, which was one of the first Google TV devices.  There were apps for the Google TV which allowed simplistic streaming from a home server using UPnP/DLNA.  It worked reasonably well, but the UI consisted of just folders and files, must like a file browser.

Finally I discovered Plex.  Plex is a free home media server which may be installed on Linux, Mac or Windows.  It does automatic discovery of your media files and uses online databases to determine what the movie likely is.  From there, it is able to populate a local database of all the movie titles, genres, actors, posters and more.  You can browse and view your collection within a web browser on a computer, play the movies on any compatible UPnP/DLNA client (with the normal DLNA style browser), or get access to full metadata and more by using a dedicated Plex client.  Plex clients are available for your home computer, Android, iPhone, Roku, TiVo, Playstation, Xbox, and more are coming all the time.  Your Plex server can also be accessed remotely over the Internet and you can choose to share one or more of your libraries with other Plex users if you desire.

While the program itself is free, there is a pay service called Plex Pass.  Having a Plex Pass gives you access to new features earlier than free users, and gives you access to some advanced features.  These advanced features include the ability to sync movies onto your mobile devices and access to new clients before they’re generally available, which is useful when you get the latest gaming console.

New features are available all the time, including one currently Beta only feature allowing for DVR functionality if you have a network enabled TV tuner.

These days I have 600 movies on my Plex server, episodes of 35 TV shows, and quite a lot of music (yeah, it does music too).  It’s definitely worth checking out if you want to have access to your movie library remotely.