About Plex Pro Week
For our inaugural Plex Pro Week we will be featuring passionate server owners from the Plex community and experts inside Plex. From transcoding to downloads to enhanced dashboard control, you’ll learn how to take your personal media experience to the next level with Plex Pass.
The Secret’s in the Sauce
Plex Pro: Ridley Combs, Plex Senior Software Engineer
A proud Chicago native, Ridley’s been working on Plex Media Server for over 7 years and has been a user for over a decade. She enjoys a variety of video games, music, and TV (including plenty of anime). As an engineer, she always enjoys tackling the interesting challenges involved in getting Plex to work efficiently for users across a broad variety of devices and use-cases.
How long have you been a Plex user?
It’s been over 10 years now!
As a user and builder, what do you like most about Plex?
I’ve really always loved the core functionality: I can have my own media library, with full control over it, and watch or listen to anything in it on any of my devices whenever I want.
How did you come to work at Plex?
It’s a pretty wild story! I’d already been a user for a few years, but I’d run into some performance issues on some of my media, and quality issues on other items. The components of Plex that those issues existed in are open-source, so I decided to try my hand at fixing them myself! Once I’d managed to make some improvements, Elan (our CTO and co-founder) got in touch, and I came on board as a contractor. It wasn’t until a few months later that I became a full-time employee, though: I was 17 and still in high school at the time (unbeknownst to them!), so that had to wait until I’d graduated!
What’s your favorite Plex Pass feature?
I’ve gotten a lot of use out of the Downloads (née Sync) feature ever since its introduction. Being able to keep my entire music library at high quality on my phone (while also being able to stream it to any other device I want) is a big data saver when off wifi, and I always make a habit of downloading some TV episodes whenever I’m going to be flying; my own library’s selection always beats the airline’s in-flight options!
Why would you encourage a user to upgrade to Plex Pass?
I talk to Plex Pass subscribers all the time, and it’s always interesting to see how varied their reasons for subscribing are. Personally, I usually recommend it to people who are often on the go and can make use of the Downloads feature, and to people with servers that might not have the CPU oomph they’d need to do all the transcodes they want to, but do have a GPU that can make up for it with hardware transcoding!
Do you have any specific examples where user feedback (someone with Plex Pass) has directly impacted the development of a feature?
The users in our Beta channel give us lots of great feedback on both new feature development and improvements to existing ones. The most common thing we run into is bug reports: all our Plex Pass beta users together have far, far larger collections of media than we could ever hope to gather on our own, so often they’ll send us files that are a little bit out of the ordinary in a way that our code wasn’t expecting, which is a big help.
We also sometimes hear from people who have machines configured in ways that we wouldn’t have expected, or whose network equipment works differently from anything any of us have. A while ago a number of users reported a problem with a new server version, and I ultimately tracked down a bug in the firmware on the router they were all using! Even when something turns out to be caused by an issue in other equipment, we’re often able to develop a workaround, and that’s what happened in this case: now the latest versions of Plex Media Server will work just fine, even on networks with that particular buggy router.
Some of the most interesting cases we run into are ones where it turns out that people were making use of a feature in a way that we hadn’t expected, and a change meant to improve something else breaks that case for them! We never want that kind of thing to happen, but when it does, it’s always really helpful to be able to get in touch with the affected users and talk through exactly how they’d been using the app, so we can make sure we handle their use-case going forward. Sometimes it turns out that they’d been doing something we hadn’t expected as a workaround for a seemingly-unrelated bug or missing feature, and we end up being able to build something new that handles their case even better than before!
Speaking of building things, what feature(s) have you developed/improved/ideated?
I’ve been pretty deeply involved in the media server and transcoder for a long time now, and a lot of what I work on ends up being behind-the-scenes infrastructural stuff, but I’ve contributed to plenty of user-facing features as well! Here are just a few:
- Back when I first started at Plex, one of the earliest things I worked on was a big improvement to the quality of our subtitle rendering. Now, more complex subtitle characteristics work the way the author intended, with custom fonts being loaded from the source file and colors of onscreen text matching the video precisely.
- I built out a large portion of our Live TV and DVR engine’s media handling, which allows multiple clients to watch the same live stream concurrently and seek within it, all while it’s being recorded in the background.
- I’ve been deeply involved in the architecture in the server responsible for handling hardware transcoding. It’s a lot of work getting the transcoding functionality to have rock-solid reliability, even across all the many devices and platforms we support, but it’s worth it to let users make the most of whichever supported hardware they have!
- I developed the backend we use to keep devices playing back in sync in our Watch Together feature! This is built on top of the wonderful open-source Syncplay project, but we needed some additional features to support connecting from clients with limited network protocol capabilities (like web browsers), all while maintaining the high standards of security our users expect.
- I built Plex’s support for HDR-to-SDR tone mapping, which allows HDR media to be played back on devices that don’t support it natively, or while transcoding to a different format or lower bitrate. The open-source FFmpeg project already had support for doing this in OpenCL (which we use on Intel GPUs) that we were able to use with just a few tweaks to improve performance and output consistency, but I needed to implement it for NVIDIA CUDA and for CPU transcoding! I’ve been super happy with the user response to that work; it’s turned out to perform even better than I’d expected, and our Plex Pass subscribers seem to be super pleased with it!
- If you speak a language other than English, you might have noticed that the Search feature is working even better lately! This is because of some work I did on the tokenizer and collator, which allows for smarter handling of case, diacritics, punctuation, languages that don’t use spaces to separate their words, and more.
- If you ever need to perform manual diagnostic queries on your database, I’ve got just the thing: a copy of the sqlite shell, built right into your copy of Plex Media Server! The “Plex SQLite” tool is customized with all the same extensions that the server uses internally, so it’s able to interact with our specialized features that we use to keep the server’s performance up to scratch. You never want to have to manually recover from a corrupted hard drive sector, but if misfortune ever strikes, you’ll be glad to have the tools you need to get things back up and running!
If you’re curious about some of the fun behind-the-scenes stuff I’ve worked on, here are a few examples:
- I’ve done a fair bit of work improving the performance of the server, allowing it to handle more requests in less time while using less energy.
- I’ve made all sorts of little tweaks to our network stack to get data to users just a little bit quicker. A tenth of a second might not sound like much, but improvements on that scale can really make a difference in how it feels to use an app, especially when several of them add up to shave off more of the time between you and your media!
- A few months ago, we switched the server over to using a new method for generating the TLS certificates used for secure connections, which means that process is now more robust and provides stronger privacy guarantees.
- I developed some custom binary-startup code to allow the server to be even more portable than ever: now, no matter what userspace distribution you use, Plex Media Server can run on any Linux machine with a supported CPU arch and a remotely modern kernel!
I can’t take all the credit for any of these projects, though! Many of these features are team efforts from day 1, and even the projects that I build mainly on my own still benefit from review from my fellow engineers on the server team, testing by our Test Engineering team, internal feedback from everyone testing our internal alphas, and user feedback from those on the Plex Pass beta channel once we release.
Any fun hints about things in the works?
I’ve always got a lot of ideas floating around for how to improve all sorts of parts of the server, but if you keep your eyes peeled, you might see some functionality make its way onto additional platforms soon!