Background

Many years ago, we basically cut the cord and decided to put our complete movie collection online locally so that we can watch what we want to watch, whenever we want to without having to wade through commercials, etc.  We spent a lot of time looking at the various options and ultimately decided on a process of digitizing the movies we had and putting them on a server so that we didn't have to wade through our DVD/Blu-Ray collection in order to find what we wanted to watch or even wade through the long menus on some of the Blu-Rays.

System Configuration

We currently use a Plex server running on a Q-Nap TVS-872XT NAS box with 25TB of storage (six 4TB Seagate ST4000VN008 Ironwolf Drives and two 970 EVO Plus NVMe M.2 SSD 500GB) raided to provide 18TB of effective storage.   We connect to it using a Roku Ultra running the Plex app.  We can also watch content locally on any PC in the house or on the Roku enabled TVs in the Office, Kitchen and Garage.

Process Overview

This assumes that you have already set up the Plex server and have directories allocated on it to put content into.  With that in mind, the process of encoding content involves three basic steps

  1. Ripping the content off the DVD to remove any copy protection associated with it. 
  2. Encoding the content so that it is in a form that is more playable on the devices to watch it on.
  3. Organizing the content on the server so that it can be readily found.  This also includes the process of cleaning up the metadata/images.

The software that we use for this are

A little note on MakeMKV as an alternative that we didn't pickMakeMKV does a great job of making what is essentially a complete copy of the DVD/Blu-Ray along with all of the menus.  Essentially, the result that you get is a digital copy of the Disc along with all the menus and navigation associated with it.  However it also means that you must navigate through the menus in order to play your content.  But, there is some content (stills, etc) and options for other languages that you don't get through the encoding process below.  Ultimately it is a tradeoff decision that you need to make - full menus that look like the DVD with extra steps before you see the movie or quick jump to the movie with extra steps to get to the extra content.  It is also worth noting that the MakeMKV approach means you can just effectively rip everything and not have to do any additional organizing that we do below.

Ripping

This is the easiest part, put the DVD/Blu-Ray into the drive and then from the handbrake menu select Rip Video Disc to Harddisk..., pick a destination and let it rip..  There are quite a few guides on the web including a simple one on dvd-guides.com.  It helps to have a good Blu-Ray and we spent quite a bit of time researching the options.  Ultimately we settled on the ASUS BW-16D1X-U because it doesn't appear to have the anti-ripping technology built into it which slows down the drive when you are attempting get the data off the disc.  Typically a DVD will take about 10-15 minutes to process and a Blu-Ray could go anywhere from 10 minute up to an hour depending on how full it is.  While this may seem a long time, it isn't the longest time sync in the process.  Typically we have a stack of Discs to process and just put one in whenever the previous one finishes.   

It is useful however when you put the Disc in to take a moment to see what is on it.  We use this opportunity when the Disc plays to run through the menus to decide if there is anything else to encode besides the main movie (or TV shows).  When playing with VLC, as you go through the menus and play them, look at the length of the content and write down that along with the name of the section.  For example Who Framed Roger Rabbit had a bunch of shorts and behind the scenes videos that were worth capturing.  You don't have to watch through them all, just record the name and the time and skip to the end so that you can get back to the menu and do the next one.  We have found that by putting them into a temporary document/spreadsheet with the full text of the names, it is much easier when it comes to the encoding step.  Also pay attention to wait until going through the menus and recording the times for what you want to keep before starting the actual ripping process, otherwise it will be extremely slow for both operations.

Encoding

Once a DVD/Blu-Ray has been ripped, the nest step of the process is to turn the pieces into something that can be played.  The first step is to rename the folder so that it matches the actual content.  For a movie, hop on over to themoviedb.org and search for the movie.  Once you get to the movie (such as my example Who Framed Roger Rabbit (1988)), select the full name of the movie including the year and the parenthesis, copy it and rename the ripped Disc folder to that.  For a TV show go to thetvdb.com and find your series.  For example Star Trek: Picard.  Again you want to copy the full name and rename the ripped Disc folder to it.  Windows is pretty forgiving and will throw away the illegal characters such as the colon.  You will end up using this name in other places, so having the ripped Disc folder named correctly means you don't have to go look it up again.

With the folder renamed, fire up HandBrake and drag the folder onto the application.  It will spend some time scanning the content, but once it is done it will have a dropdown list of all the titles on the Disc that can be encoded.  Before you start however, there are some settings you need to set on Handbrake.  

  1. General Preset - You want to pick a set of defaults the corresponds to how you plan to view the media and where.  We use Fast 1080p30 which gives pretty good quality at a reasonable encoding rate. Most DVDs end up being about 1-1.5Gig  and Blu-Rays are in the 4-8Gig range with some hitting 16Gig.  You can sacrifice quality and pick a lower one or spend more disk space picking a HQ or Super HQ version.
  2. Audio Tab - Pick a codec and a bitrate.  We use AAC 160 Stereo, but you may have to make a different decision based on the device you play it on.  Some devices are finicky about playing AC3 or MP3 encoded content (or even AAC) so it is worth doing a test encode of a small file and making sure it plays well on your system first.
  3. Subtitles - Occasionally a movie will have something in a foreign language that it normally puts subtitles on.  You want to account for this by going to the Subtitles tab, adding a track, select Foreign Audio Scan with Forced Only and Burn in selected.  Otherwise you end up watching A Good Day to Die Hard (2013) and realizing that without understanding Russian you are missing quite a bit from the movie.

Naming Assets

Before you pick things to encode, it is important to know that the names that assets are encoded at really matter to make the Plex app happy.  Basically, there are 5 types of assets to consider and each has different naming conventions.

  1. Main Movie - Clearly the most common case.  For this you want to name the asset the same as you renamed the ripped Disc folder to match what was on thetvdb.com.  There is one extra situation to consider here.  If you are also encoding any special content from the Disc in addition to the main movie, you will want to put the movie into a subdirectory named the same.  So using the example Who Framed Roger Rabbit (1988), you should create a folder called Who Framed Roger Rabbit (1988) and then store the encoded movie in that directory as example Who Framed Roger Rabbit (1988).m4v. Technically you could encode all movies this way and Plex would be perfectly happy, but it means an extra directory and we have found that less than 10% of the time we wanted that extra content.
  2. Movie extras - Extra content such as behind the scenes, interviews, deleted scenes and even shorts that are included on the Disc.  Plex has a very good article on the naming conventions for the assets but basically you need to put them in the same directory with the main movie, but put a suffix on the name such as -short or -behindthescenes as appropriate for the type.  Don't worry too much about getting it exactly right, this is something that you can fix by renaming after the encoding has been done.
  3. TV Series Episodes - These are the most common things that you are pulling off the Disc.  Most of the time they happen to be in the same order as the series, but it doesn't hurt to have recorded the length of each episode when you first put the Disc in.  When you encode them, they need to be named seriesname SxxEnn.m4v where seriesname is the name of the series you found on thetvdb.comxx is the two digit (zero prefixed if needed) number of the season and nn is which episode number it is.  Everything will go into a folder that is named the same as the Series name (yes it gets reused a lot).  The individual episodes will go into a subdirectory named Season xx where xx is the two digit (zero prefixed if needed) number of the season.  By doing it this way in the start, it will be much easier when you run TV Rename later.  For example, Season 1 of Quantum Leap would look like:
  4. TV Series specials found on thetvdb.com.  Occasionally a Disc will include some special content that happens to match one of the specials.  When you encode it, it should be put in a directory called Specials under the folder for the series and named seriesname S00Enn.m4v where seriesname is the name of the series you found on thetvdb.com and nn is number assigned to the special on thetvdb.com.  If you name it like this, Plex server will automatically be able to associate the metadata with it when you import it.
  5. TV Series extras not found on thetvdb.com.  More frequently a Disc will include lots of extras that didn't make into the category of special content on thetvdb.com.  In this case you need to come up with a naming convention that doesn't interfere with the real specials and won't be given the wrong metadata accidentally.  We decided to use a naming convention of seriesname S00Exdnn - description.m4v where seriesname is the name of the series you found on thetvdb.comx is the number of the season (no 0 prefix) and is which disk the content was found on and nn is any unique number for the content (just start at 01 and go up by 1 for each one you find) and description is enough of a description so you can identify it when importing it into the Plex app.

 Encoding Workflow

With the name in mind, you just need to go through the process of finding which title you want to encode (matching against the lengths recorded when you first put the Disc in) and give it the appropriate name.  Once you are happy, click on either Start Encode or Add to Queue depending on whether HandBrake is already processing one or not.  You can queue up as many as you want as HandBrake will automatically go to the next item in the queue when it finishes one. This process is definitely the most time consuming, but you can multi-task between Ripping content and encoding content.  Typically we feed the next Disc into the reader when it has finished and then load up all of the titles to encode in HandBrake.

The one thing that you have to watch out for is managing disk space on the machine.  A typical Blu-Ray could consume anywhere from 4 up to 50 Gig after being ripped while a DVD is only a couple of Gig.  Combine that with the output from the Encoding process and you can see where it is possible to run out of disk space.  You also want to do everything on a local disk and not a network drive because the encoding process seems to want to do some seeks.  In our experience it was significantly faster to encode locally and then copy to the server when the encoding is done.  As a result when we were in the mode of encoding dozens of Discs, we would be carefully watching for when the HandBrake queue showed it had processed everything from a Disc and then delete it from the machine.  Likewise when we have encoded everything from a disc and did the proper organization steps below we would move it to the final place on the server.  RedFox AnyDVD is pretty good about handling out of disk situations, but what you really don't want to have HandBrake spend a couple of hours encoding something and run out of disk space with minutes to go.

Organizing

If everything has been named as above, the last step is pretty simple.  For Movies, you can just copy the file or the Directory (if you have extra assets) to the final directory on the Plex server.  We have organized the files on the server into directories of Movies, Kids, TV Shows, and Bad Movies.  Well, actually the last was an afterthought... There's been more than one movie we encoded and after watching a small amount realized that it wasn't for us, so we just move into a directory that keeps it around without having it show up on what we would watch.  For TV Series, there is an extra step that you need to do to make your life good.  Run TV Rename, Click Add to add the Tv Series you encoded, do a full scan (picking the directory where you placed it) and then scroll to the bottom where it should have a bunch of your files selected so that you can let it rename them to have the full description next to the episode information.   Once you have gotten them renamed, copy/move the entire directory to the final directory on the Plex server.

Once the assets are on the Plex server, you can fire up the Plex web app which should show you the newly added Movies/TV Shows. Hover over the card for each and click on the pencil in the lower left corner to bring up the edit dialog for the asset.  Click on the poster and you can change the image that it shows for it.  We often find that the default one it picks isn't to our liking and generally have to change it.  Of course you could skip this step and live with the defaults.

The one place where you will have to do some extra organization is for any of the TV Series extras.  For these, you need to navigate into the TV show and then in the specials folder.  Each of them will have an episode number which corresponds to xdnn value in the seriesname S00Exdnn - description.m4v name which you assigned earlier.  For these you will want to click on the pencil and at least set the title (which would be the description portion you put on the name.