Converting files from one format to another is something most of us have had to do at some point. And while there are great file converters out there, having to hunt for a different one on every platform can get annoying, and web-based converters could expose your data to other people.

This is where the magic of self-hosting shines once again, thanks to a tool called ConvertX. ConvertX is a fully self-hosted file converter that can handle all kinds of files easily and convert them all directly on your server, with no need to send data off to another computer. Frankly, it's the perfect way to convert your files from any device at any time.

Convert all kinds of files

A big library of supported formats

Right off the bat, ConvertX can convert pretty much all the kinds of files you would expect. It supports video files, images and photos, audio files, and documents, so if there's anything you're having trouble opening on your device, Vert can help you handle it. Almost any file format you can think of is supported, and it's largely thanks to the wide range of open-source libraries that it relies on.

ConvertX is powered by a few open-source libraries, including FFmpeg for handling video and audio, libvips for images, and Pandoc for documents. These are popular and well-maintained libraries that should help ensure every major file format will be supported well into the future.

I threw ConvertX a fairly hard ball by uploading a 1.7GB video in the .mov format and converted it to .mkv. Both the upload and the conversion process took some time (keep in mind, my NAS doesn't have a discrete GPU or anything), but I did get my .mkv file in return, and a much smaller one at that, at just over 300MB. When deploying ConvertX on your NAS or PC, you can set an FFmpeg preset to always use when converting videos to balance out quality and speed, but I left mine set to the default. I couldn't figure out what the default quality setting is, but while I did notice a slight degradation in quality of the converted video, it didn't significantly affect my ability to enjoy it. Either way, you can change the preset to fit your preferences.

Cross-device conversions

Stop hunting for apps on each device

It's always frustrating to receive a file that isn't natively supported on the device you're playing it on, and even more so if a given file works on one of your devices but not another. And then converting that file is a hassle all on its own, because you have to find different file converters on different platforms. ConvertX fixes all this by being available on all your devices, since it's basically a web service hosted on your own server.

I tried converting files both on my Mac Mini and on my phone (a Fairphone 5), and in both cases, it worked completely fine. The file is uploaded to your personal server and converted there, and then you can download it back to your client device. There's no need to install one app on your PC and another one on your phone. It's a consistent experience everywhere.

Because ConvertX also saves a history of your converted files, you can start a conversion on one device and download the converted file on another, which also makes this an easy way to send files between devices while ensuring they work everywhere. Files are only stored on the server temporarily, and you can also set the time limit for converted files to be saved. The default is 24 hours.

👁 An iPhone on an angle on a table with a menu pop-up showing that an image has been converted to a PDF.
How to convert a picture to a PDF on iPhone

There are times when you want to convert a picture, like a screenshot of a form, to a PDF. It's easy to do right from your iPhone.

A secure solution

Private on every level

Another reason why ConvertX is a great solution for your file conversion needs is the security of it all. By default, ConvertX can't be accessed without an HTTPS connection, which helps eliminate man-in-the-middle attacks that could otherwise capture your data. You'll need to set up a reverse proxy and use an SSL certificate to make sure you can access the platform securely. You can disable this if you want, but more security is better if you ask me.

If you want, you can also configure ConvertX to allow multiple user accounts, so everyone who converts files on your server can keep their history separate and you can't access each other's files. This can be done with optional flags, which I didn't enable since I don't need it, but it's a nice extra step to keeping your files safe from prying eyes.

Plus, the fact that this all happens on your server without any data being sent to another server makes things more private by default. You never know what happens with your data when using online file converters, so this should give you some extra piece of mind.

👁 Screenshot of Windows 11 showing the HEIF Image Extensions app on the Microsoft Store
How to convert HEIC to JPEG on Windows 11

HEIC is a relatively new file format for images and many programs don't fully support it. Here's how to convert it to a JPEG file on Windows 11.

It could be a bit easier to use

Choosing formats and quality settings

While I acknowledged that you can set a preset for converting files when deploying ConvertX, I do think it would be great if you could also do it per file through the web UI itself. There isn't much transparency about what quality you're going to get unless you set the argument beforehand when deploying the app, which I think is unfortunate.

I also think the app would benefit from highlighting more popular formats when beginning a conversion, rather than just present all the formats in one giant list as it is now. Sure, a relatively knowledgeable user should know what to go for, but not everyone will. If options like .mp4 and .mkv were in a highlighted section at the top, that would make it a bit easier to get to grips with the whole thing. Especially because both audio and video files show exactly the same options for converting, so it's hard to know what's what.

These are minor complaints in the grand scheme of things, but there is room for even more improvement here.

I'm never using an online converter again

I don't need to convert files as frequently as I used to, but now that I've tried self-hosting ConvertX, I think it's safe to say I don't plan on touching another online converter ever again. Being able to do this on my own server just makes all the sense in the world, and I'm excited to rely less on third-parties for this kind of thing. If you haven't yet, I highly recommend setting up ConvertX and playing around with it to see how it works for you. You can check out the source code and more information below.