researching and re-encoding VC-1 blu-rays

I started looking this week at my Blu-rays that have VC-1 for video. I mentioned it on Twitter earlier this week, because my devices (Sony TV, and Nvidia Shield) don’t have native hardware playback support for it. In other words, the poor little under-powered device has to do all the hard work, and what ends up happening is it completely stutters out and makes it unwatchable.

Up until this point, I’d held a death grip on the principle that I’d *never* re-encode any of my Blu-rays, ever, for any reason whatsoever, because it simply didn’t need to be done. A simple copy of it from the disc, and away we go. But, my library of VC-1 Blu-rays has been growing, and when I tried playing one I just bought this week, I decided to see what the story was. It turns out that my little library of these anomalies was actually growing, and I needed to decide what to do — re-encode them, or just go without watching them at all. Booooooooooooooooooooo.

Here’s my list of discs using it:

As far as the format war goes, Sony was pushing Blu-ray (and helped develop it), and Microsoft was backing HD DVD (Interesting history note: I actually bought a PS3 way back in the day so I could see what Blu-ray was all about, and if it was worth the hype. My first purchase was Sleeping Beauty, and man, it is gorgeous. Being filmed on 70mm probably helped as well. Now that I think about it, I totally forgot that I had it on VHS in widescreen — an unheard of precedent back in the day). It made sense that each one would work on their respective consoles, but the Xbox needed add-on hardware to playback HD DVD.

I had a sneaking suspicion that some of those Blu-rays were ones where the video was VC-1 for both HD DVD and Blu-ray, and the studios saved time and money by just using the same codec for both. I poked around and indeed, eight of the above do do just that (Adventures of Robin Hood, Batman Begins, Forbidden Planet, Galapagos, TMNT, both Harry Potters, and Willy Wonka). Another interesting note, it looks like the Harry Potter series used VC-1 for all their releases except for the last two, the Deathly Hallows two-parter where they switched to AVC.

This is the weird part, though, looking at the VC-1 encodes, the file sizes on these files are very small, comparatively, to everything else I have. The smallest AVC feature film I have is Kung-Fu Panda, which weighs in at 16 GB. The largest VC-1 feature film though is Chamber of Secrets, which is 24 GB. I’m not comparing run-times here against the films, just using the concept of since a Blu-ray disc can hold a massive amount of data, it’s easy to make an extremely high quality encode, and they’re not using that space. The smallest VC-1 I have is TMNT, which weighs in at 10 GB! That’s only 2 GB more than a dual-layer DVD. Now that seems really odd.

It is possible that the compression on VC-1 is really, really good. I don’t have access to an encoder so I couldn’t run any tests against it and other codecs. I remain skeptical that that’s the case, though. However, I can’t criticize the visual quality of the TMNT movie — it is very high, and I have no complaints. Maybe the codec does pretty well on CGI / animation. Who knows. I’d need someone with experience to weigh in.

TMNT Blu-ray (2007)

So, what to do with my VC-1 Blu-rays that I can’t play back comfortably. This leaves me with the conundrum of having to re-encode some of them which I’m not happy with at all, because the quality is so high to begin with, and I really don’t want to risk losing quality, even if a little bit. I am a purist, after all. Someone has to be, and I take on the role willingly. That and I’m stubborn. It’s fun.

I wanted to find the best way to re-encode these and lot lose any quality. I’d just finished up doing lots of research into getting my DVD encodes at near-lossless quality, which ended up being about 12 CRF with x264 for most everything. For good measure, and because it helps my (literally diagnosed) OCD, I decided to bump it up to 10.

Up until now I haven’t done any encoding of them. In my tools I just use bluray_copy to get the M2TS file and the chapters, and then re-mux it using mkvmerge with the selected audio and subtitle tracks. An example:

$ bluray_info '/dev/sr0' --playlist '0' --xchap > '8.583.2564.19088.BDTMN.txt'
$ bluray_copy '/dev/sr0' --playlist '0' -o - > '8.583.2564.19088.BDTMN.m2ts'
$ mkvmerge -o '8.583.2564.19088.BDTMN.mkv' --video-tracks '0' --audio-tracks '2,1' --subtitle-tracks '6' --chapters '8.583.2564.19088.BDTMN.txt' --default-language 'eng' '8.583.2564.19088.BDTMN.m2ts'

HandBrake’s scan output of the audio tracks doesn’t match the same indexing as bluray_info, so instead of parsing hb’s output to find the right one, instead I’m is just straight copying all the English audio tracks. On Blu-rays, it’s normal to have the same language with different audio codecs, the difference usually being the number of channels. So maybe DTS-HD Master Audio with 7.1, then Dolby Digital 5.1, and so on.

For example, here’s the audio track listing on the movie for TMNT. It’s got Dolby Digital first, probably 5.1, then Dolby Digital TrueHD, most likely 7.1, then a Dolby Digital stereo track.

$ bluray_info -a
Disc title: '', Volume name: '26128881___TMNT__', Main title: 001, AACS: yes, BD-J: no, BD+: no
Title: 001, Playlist: 0000, Length: 01:26:51.03, Chapters: 022, Video streams: 01, Audio streams: 05, Subtitles: 04, Angles: 01, Filesize: 13007 MBs
Audio: 01, Language: eng, Codec: ac3, Format: multi_chan, Rate: 48
Audio: 02, Language: eng, Codec: truhd, Format: multi_chan, Rate: 48
Audio: 03, Language: fra, Codec: ac3, Format: multi_chan, Rate: 48
Audio: 04, Language: spa, Codec: ac3, Format: multi_chan, Rate: 48
Audio: 05, Language: eng, Codec: ac3, Format: stereo, Rate: 48

So all together, here’s what a HandBrake rip command would look like from a Blu-ray, grabbing all the English tracks as well as the first subtitle track and of course the chapter markers as well:

HandBrakeCLI --title '1' --encoder 'x264' --quality '10' --encoder-preset 'medium' --audio-lang-list 'eng' --aencoder 'copy' --subtitle '1' '--markers' '--all-audio' --input '/dev/sr0' --output '8.583.2564.19088.BDTMN.mkv'

For TMNT, the final encode of the Blu-ray looked pretty good.

When the evil Shredder attacks! Spoiler: he’s not in this film.

You really don’t need as high a CRF as I’m using, I’ve found that depending on the source, for me they visually look lossless between 12 to 16. In my case, I’m also targeting long-term archival for these encodes. Not that it doesn’t make me want to go back and play with them again, though.

I’ve only got the one encoded right now, I’ll see how the rest of them go. I’m pretty excited to get some smooth playback though on these awesome movies. 🙂

Leave a Reply