Mark Loveless, aka Simple Nomad, is a researcher and hacker. He frequently speaks at security conferences around the globe, gets quoted in the press, and has a somewhat odd perspective on security in general.

Video Rendering on Linux

Video Rendering on Linux

Plague - video renderer and keeper of backups. A modest monolith.

Plague - video renderer and keeper of backups. A modest monolith.

Some of the more interesting things I get to do working in the Infosec industry include speaking about security issues at conferences. With the pandemic impacting in-person events and most conferences moving to a virtual-only setup, I got to record my own video for two of them. The first one was for BSidesDFW 2020 which took place last November, a talk on phones. I even blogged about it. The second one was quite recently - my talk for DEF CON Adversary Village - based upon a previous blog post.

Neither talk was short. The BSidesDFW talk clocked in at just over 49 minutes, and the Adversary Village talk came in just under 30 minutes. The BSidesDFW talk took 3 hours and 30 minutes to render, and even though the Adversary Village talk was shorter I used slightly better video settings, so it took six hours to render. Part of the problem was that I was using a laptop to do this. It wasn’t that the laptop is slow or anything, it is that I needed more horsepower. Well technically, I needed more cores - but you know what I mean.

The editing process itself wasn’t very fun either. Editing on a laptop screen is simply not ideal. As an experiment I tried rendering the Adversary Village talk on one of my servers, as it has a desktop version of Ubuntu on it instead of the server version (yes, there is a reason for running a server off of a desktop OS, but that’s another blog post). I hooked up a larger monitor (an old 24” Dell) to it and editing was pretty sweet, just a little slow at times, as again, not the fastest CPU. The attempt at rendering the same video was again six hours.

A Solution Is Needed

I figured that if I was going to do this regularly, and if I was going to step up on making videos for work (that’s one thing coming up in the next few weeks) as well as my own YouTube channel, I might as well get a new computer. I also wanted to do this on a somewhat tight budget, maybe $1100-1200 USD. After a lot of research including both YouTube and Google, I used a video on budget-building a video editing computer as a starting point (it had the same case and motherboard I’d picked out), and began equipment acquisition.

As usual, I try and get my machines to do double duty, and since this new machine was not going to be rendering videos constantly, I figured out the secondary purpose for it would be network backups. My old backup server - named “Plague” years before the current pandemic - had recently died and I was tired of manual backups. So Plague v2 will serve both needs.

So the plan was a video machine with a fast “OS” drive for editing and rendering, and a “Backup” drive for longer-term data storage. I didn’t plan on streaming on the local network from this machine, I needed a machine to handle backups of the other systems. Maybe “NAS” is might sound cooler, but “backup” was more accurate.

The Parts List

Here are the components I purchased (note these are affiliate links):

  • Case - NZXT H510. It has decent cable management, is all steel, and had good reviews.

  • Power Supply - EVGA 500W W1. It has non-modular cables, but all black so they look cool and the case hides the excess power cables anyway.

  • Motherboard - MSI B450-A PRO MAX. It will get the job done, I’ve had good luck with MSI in the past, and well within budget.

  • CPU - AMD Ryzen 5 3600 6-Core, 12-Thread. Not my first choice, I might have chosen something more powerful, but it was available. And the number of cores will get the job done.

  • Memory - Corsair Vengeance LPX 16GB DDR4. I got 2 for 32GB total, possibly overkill, but wtf why not.

  • OS drive - SAMSUNG 970 EVO SSD 500GB. Again not my first choice, I would have preferred 1TB, but it was available and should meet my needs.

  • Backup drive - Western Digital 6TB WD Purple. I’ve had good luck with WD drives, my 14TB WD holds video surveillance footage and is rock solid.

  • Keyboard - Havit Wired Keyboard. It was in the video build I watched, and the fact I can store program macros is a plus.

  • Mouse - PICTEK Gaming Mouse Wired. Again it looked cool in that video build, so why not.

With the pandemic a lot of PC gaming was happening with the stay-at-home crowd, so the choices on video cards was limited by what was in stock and what wasn’t sky high. Luckily a good friend of mine had an old Sapphire Vapor-X R9 280X video card he wasn’t using and never would, and he sent it to me (thanks, Kyle!), so I was able to set up a way to throw GPUs into the mix.

Assembly and Configuration

Assembly was painless, except for the dust guard on the back of the machine around all of motherboard’s ports. A couple of thin metal flap things got out of shape and look awful, but not so bad to remove the motherboard and try again. The hardest part about assembly was the wait for the CPU to arrive. I had everything thing else in a cabled up within a few days of ordering parts, and quickly added components as they arrived. Finally when I added the CPU I was able to power things up.

Hardware porn.

Hardware porn.

Loading up Ubuntu 21.04 and installing kdenlive went quickly. I decided I needed to test things straight away.

The Numbers

My test was the video rendering of the DEFCON Adversary Village APT talk. As stated earlier, this took 6 hours on non-optimized hardware. The first attempt took 1 hour and 50 minutes with standard settings, and when I turned on “experimental GPU processing” it clocked in at an impressive 47 minutes. Okay, I think I can live with an 87% decrease in rendering time!

I did run into an issue with heat. My server room is not ideal for high-powered CPU processing, and one of my attempts was in the evening hours when the server room’s dedicated air conditioning is normally turned off, and the heat inside of Plague shut down the system. Normal operations were okay, but video rendering caused a crash. I’ve order extra fans for Plague to help increase airflow, but in the meantime I will have to make sure the A/C is on during rendering. Most likely if this continues to be an issue I’ll end up with closed loop liquid cooling.

Conclusion

I’ve assembled a few systems before, but all of them were upgrades to older systems or Frankenstein jobs after component failures. Surprisingly this was my first “gather new parts and make a new one from scratch” build ever - except for the “new-to-me” older video card, again thanks Kyle!. One distinct advantage of using an older card? It worked flawlessly with included drivers in Ubuntu Linux, so getting some GPU support was easy.

I did enjoy it, it is substantially cheaper than I expected, and I had no idea I’d end up with as powerful of a machine as I did. Hopefully more frequent videos will be rendered as a result!

Daemon

Daemon

Change

Change