Open source and self hostable/private file converter
599 points
8 days ago
| 26 comments
| vert.sh
| HN
xiaoyu2006
8 days ago
[-]
It's ffmpeg all the way down. I can't imagine what the internet would be if there weren't such a marvelous piece of software.
reply
starkparker
7 days ago
[-]
I get to be one of the lucky few to learn today that ffmpeg was ported (well, transpiled) to WASM. This is more specifically built on that port: https://github.com/ffmpegwasm/ffmpeg.wasm

That project has an interactive playground that essentially describes and demonstrates how it works: https://ffmpegwasm.netlify.app/playground

This also means that despite being a locally hosted ffmpeg frontend, it's still slower than native ffmpeg and bound to WASM limits like file size (still a generous 2GB for images and audio, but not as viable for big video conversions).

Still weird that this project doesn't seem to acknowledge that anywhere.

reply
TheSmiddy
7 days ago
[-]
they may have updated the website since the numerous comments here but the about section acknowledges all the libraries they use

Libraries

A big thanks to FFmpeg (audio, video), libvips (images) and Pandoc (documents) for maintaining such excellent libraries for so many years. VERT relies on them to provide you with your conversions.

reply
xnx
7 days ago
[-]
Looks like that was added in the last day from what I can tell. Glad to see it, but still weird that they aren't links.

https://github.com/VERT-sh/VERT/commit/8f8ea34483cab76e27204...

reply
igtztorrero
7 days ago
[-]
That's a whole true, creator Mr Fabrice Bellard, a 1000x developer, also create Qemu, another essential gem of software.
reply
darknavi
7 days ago
[-]
It really is crazy how true the 1000x statement is.

We use QuickJS (the JavaScript runtime he authored) in Minecraft (Bedrock) where even more developers use it to mod Minecraft. It's a huge pyramid of developers!

Checking out Bellard's website is a great high level list of works: https://bellard.org/

reply
LoganDark
7 days ago
[-]
i would hope that one day bedrock edition will support macos just like education edition does (which runs on the exact same engine), but i fear that microsoft might have bought mojang expressly to prevent that from happening
reply
6yyyyyy
7 days ago
[-]
You have your timeline confused. When Microsoft bought Mojang, the only version of Minecraft on PC was Java Edition. It wasn't under the next year that they released the Windows 10 Edition (which is what became Bedrock on PC).
reply
LoganDark
5 days ago
[-]
I don't think that was a confusion of mine? Microsoft may well have bought Mojang to develop Windows 10 Edition and then once Bedrock Edition became sooo cross-platform they just. Happened to miss macOS. By total mistake. (A port even exists as part of Education Edition and they're not selling it as part of Bedrock Edition.)
reply
darknavi
6 days ago
[-]
Hopefully one day! It does seem like a hole in our line up.
reply
pestaa
7 days ago
[-]
WHAT!? Unbelievable productivity. I'm in awe (and a renewed impostor syndrome).
reply
VTimofeenko
7 days ago
[-]
That's kinda like being into sports (maybe even professionally) and comparing oneself to an Olympic champion. It's great to be inspired by them, but it's very important not to be discouraged by what they achieved. We are all standing on the shoulders of giants.
reply
cortesoft
7 days ago
[-]
Seems strange to me to feel imposter syndrome for not matching up to an elite talent… did you feel prior to this that you were the best in the world at programming, and now realize you aren’t? Is everyone who isn’t the very top of the top an imposter?
reply
npodbielski
7 days ago
[-]
Maybe he is smart and could do it but he is just very lazy and prefers to lie in bad playing games. That would cause him to feel that way when he realises that he could do more ;)
reply
satvikpendem
7 days ago
[-]
People use that term casually, don't read too much into the implications.
reply
stavros
7 days ago
[-]
And TinyC, and the Bellard formula for calculating pi.
reply
mschuster91
7 days ago
[-]
... and a fully working SDR implementation of the LTE phone standard.

The dude can wrap his head around literally anything. Him and Torvalds are truly exceptionally capable people.

reply
miki123211
7 days ago
[-]
Okay, here's a crazy idea.

The things he built are:

ffmpeg, which basically implements a bunch of specs for codecs

Qemu, which basically implement a bunch of specs for CPUs

TinyC / QuickJS, which basically implement a bunch of specs, mainly those for C and JS.

That LTE thing, which, surprise surprise, implements a bunch of specs.

He seems to be a God of turning specs into working code, not necessarily a GOd of programming in general.

reply
mschuster91
7 days ago
[-]
Yup, but you need to involve yourself deep into quite the diverse range of programming, computer science, math and physics questions to be able to even read the specs, much less implement them. Codecs involve highly arcane math, an emulator not only needs to take care about the CPU but a whole bunch of side chips and associated timings, compilers are an entire field of academic study, and to work with LTE or anything RF in general you need a solid background in RF hardware electrical engineering, RF propagation, antenna theory and god knows what else, just to be able to have a "testbed" that works with your test device but doesn't shut off service to everyone in a few hundred meters around you.

This kind of mental flexibility is what I really admire.

reply
angra_mainyu
6 days ago
[-]
It's just the average thing you learn going through EE or CompE, plus a knack for turning specs to code.

Don't get me wrong, I find him to be an elite dev, but more for the incredible ability to hold a spec in his head in sufficient detail - and do that multiple times.

reply
matheusmoreira
7 days ago
[-]
https://www.bellard.org/

Reading that list of projects is quite humbling. I've always wanted to make stuff like that.

reply
thatcat
6 days ago
[-]
Never heard of him, thanks for pointing this out.
reply
hypercube33
7 days ago
[-]
It just needs pandoc to do document conversions and we are golden
reply
ukuina
7 days ago
[-]
pandoc-wasm?
reply
sergiotapia
7 days ago
[-]
It is one of the wonders of the world. Such a gift that we get to use it for free, from end users like us to large corporations like Netflix.
reply
metadat
7 days ago
[-]
Actually, ffmpeg exists thanks to the legendary Fabrice Bellard. He's the rarest kind of programmer, stunningly capable and on a totally different wavelength of existence in terms of breadth of achievements. He made ffmpeg, incepted QEMU, and is a mobile / cellular communications guru.

https://en.wikipedia.org/wiki/Fabrice_Bellard

reply
freeamz
7 days ago
[-]
Kinda remind me of this:

https://newbeelearn.com/tools/videoeditor/

and this one also outputs ffmpeg command as well.

reply
leptons
7 days ago
[-]
I could tell from the list of file formats that it had to be a front-end for ffmpeg. Kind of disappointed, since I can already do that easily enough. What I was hoping for was a converter for 3D model formats, which is a real pain sometimes.
reply
haswell
8 days ago
[-]
With the recent findings [0] that some of the “free file converter” websites in the wild were actually injecting malware into the results as the first stage of various attacks, I’ve wanted to stand something like this up on a server for my family.

This looks like exactly what I’ve been looking for.

- [0] https://www.fbi.gov/contact-us/field-offices/denver/news/fbi...

reply
thi2
7 days ago
[-]
I'll hijack this to plug Stirling PDF[0], I have it running on a Raspberry Pi with docker compose and from time to time it's incredible helpfull to edit PDFs without sending them to a third party.

- [0] https://github.com/Stirling-Tools/Stirling-PDF

reply
Alifatisk
7 days ago
[-]
Wow, this is scary, I was about to ask which some of these websites are, but I found this link that lists some of them. https://www.helpnetsecurity.com/2025/03/18/fbi-free-file-con...
reply
oceanhaiyang
6 days ago
[-]
Wow, the FBI has some great tips to protect yourself from scams including:

> Take a breath, slow down and think.

reply
ryandrake
7 days ago
[-]
Honestly, I'm not sure why you need a web interface on top of ffmpeg. It just seems to be an easy avenue for malware.
reply
haswell
7 days ago
[-]
My 70+ non technical parents are not going to have much success with ffmpeg.
reply
genewitch
7 days ago
[-]
While I have 68 fewer parents, minimum, than you, I also have technical issues with ffmpeg and I pitched a transcoding setup to a F50 company - so I've used it.
reply
pbmahol
4 days ago
[-]
What technical issues?
reply
oceanhaiyang
6 days ago
[-]
So you have plus > x > parents?
reply
immibis
7 days ago
[-]
Nerds don't. Normal people do. Normal people also won't download and self-host some open source software just to convert one file...
reply
maccard
7 days ago
[-]
Nerd here. I somewhat regularly need to use ffmpeh to convert between formats and re encode (we get 16 tracks of 16 bit wav audio out of a mixer, and I re encode them to send them to someone else who does a rough mix, about once a month).

I still use ChatGPT for the command lines regularly like - “ want to combine these two tracks into a single stereo track with A on left, and B on right” which is super helpful for putting stuff in an SPD.

reply
phito
7 days ago
[-]
Phone
reply
metadat
8 days ago
[-]
It's cool the source code really is open and available:

https://github.com/VERT-sh/VERT

AGPL licensed, which seems perfect for this kind of product:

The AGPL (Affero General Public License) is a type of free software license developed by the Free Software Foundation. It is similar to the GPL (General Public License) but with one key difference:

Network Use Clause: If you modify AGPL-licensed software and use it over a network (like a web app or API), you must also release your source code to the users who interact with it.

In other words, with GPL, you have to share your code only when you distribute the software. With AGPL, you have to share your code even if users are just accessing it over the internet (like using a SaaS product). AGPL was created to close the "SaaS loophole" in the GPL.

Further reading: https://opensource.stackexchange.com/questions/7578/what-are...

reply
SteveNuts
7 days ago
[-]
Does writing a library that does an RPC to AGPL licensed software count? Even if you don’t modify the AGPL code in any way?
reply
stavros
7 days ago
[-]
As I understand the license, it doesn't apply to clients, just the service itself.
reply
xnx
7 days ago
[-]
Would be even cooler if the website gave credit to what it is built on.
reply
jangxx
7 days ago
[-]
It does though? I you click on the (i) button, there's a "Libraries" section.
reply
api
8 days ago
[-]
Why do such things need to be hosted at all?

I've got a few file converter apps on my laptop. They're faster and better and you don't need to stream the data off somewhere just to process and stream back, which is silly.

reply
liotier
8 days ago
[-]
A relevant audience are the corporate computing inmates, who cannot install anything locally... They are happy to find utilities wrapped behind some web front.
reply
graemep
7 days ago
[-]
There are already lots of online convertors. This is FOSS and a bit more trustworthy but very few people in corporate environments will care about that
reply
api
8 days ago
[-]
Ahh good point.

An often missed driver for the cloud-ification of everything is that it offers a way to escape corporate IT. Sending a 20mb file 2000 miles away to do something trivial to it and send it back is easier than getting permission to install an app.

reply
maccard
7 days ago
[-]
It really is. At a previous job, the approval process for a tool involved a questionnaire that rivalled a census, and a wait time of 4-6 weeks for approval. I literally never had any software refused via this process - most people just didn’t bother filling it in.
reply
PeterStuer
7 days ago
[-]
It doesn't send the file though.
reply
Trufa
7 days ago
[-]
What a silly take.

> Why do such things need to be hosted at all?

because: corporate computing inmates, who cannot install anything locally

Basically, denying or not seeing the practicality factor of web hosted solutions is either trying to be edgy or worryingly myopic.

reply
liotier
7 days ago
[-]
> Basically, denying or not seeing the practicality factor of web hosted solutions is either trying to be edgy or worryingly myopic

Are you unsatisfied with the myriad of Imagemagick, FFMPEG, sox or Ghostscript GUI front-ends ? What does a web deployment offer ? Even not taking privacy concerns in consideration, the local solution if better - I guess a one-off conversion might wish to eschew local installation, but such bread-and-butter operations are rarely one-off.

Or should we consider the market for a zip/7zip/rar/tar.gz file compression web front-end ?

reply
palmy
8 days ago
[-]
The reality is also that not everyone isn't technical enough to deal with `ffmpeg` directly. At some point I basically hosted hacked-together website which simply used `ffmpeg` under the hood so that my dad, who's not as technically literate, could easily convert his files. Now I don't have to do this anymore because I can just host a vert.sh instance:)
reply
doubled112
8 days ago
[-]
This isn't true for me.

My most powerful machine tends to be the home server, and some of my laptops are terrible.

reply
XorNot
7 days ago
[-]
I run a selection of things like this on my home network for my wife to use. It's handy to have their just be tools living on the network to use, particularly if you're setting up a new machine or using a work laptop off the guest network or the like.
reply
barbs
7 days ago
[-]
The conversion for this one happens all client-side - no streaming data to a server required.

If you're happy using your existing apps, you probably wouldn't see much use in this. But I can definitely see how the UI/UX would appeal to a lot of people.

reply
imoreno
7 days ago
[-]
Probably harder to monetize traffic and upsell subscription extras. I agree, if it's all done on the client anyway, it should just be a local app.
reply
dr_kiszonka
7 days ago
[-]
It is wonderful and useful and all that BUT the auto opt-in analytics information should be on the main page.

I appreciate you are using Plausible (good) and it is perfectly understandable and justifiable that you want to know how vert is used, but why hide it at the bottom of the settings screen? It just makes me trust you less. Yes, I could audit the source code for other surprises. That is not the point.

Please treat my comment as a suggestion / feedback. Otherwise, congratulations on an enormously useful and easy to use project!

reply
AnyTimeTraveler
7 days ago
[-]
My common sense tells me: "If you aren't paying for the product, you are the product." Am I the only one who finds it a bit weird, that they are hosting a the video conversion part of server with graphics cards etc. for free? I see no way to support that long term, unless they are doing something more than the data gathering with Plausible that they have on their page.

Anything I missed, that explains this?

reply
handwarmers
7 days ago
[-]
It's a great UI to ffmpeg - I wish they gave it some credit on their landing page.
reply
franciscop
7 days ago
[-]
At least they do in the Settings:

"The vertd project is a server wrapper for FFmpeg [...]"

reply
mubou
7 days ago
[-]
I wish it were more common for open source licenses to have an attribution clause, like Apache does with its (optional) NOTICE files. When you put years of effort into a work, you deserve credit for it.

Edit: Actually, using a library via a package manager would likely be considered "linking" and not a Derivative Work, so I don't think even Apache's clause would apply in many cases.

reply
xnx
8 days ago
[-]
Is Vert like a simplified version of https://ffmpeg-web.netlify.app/ ?
reply
xiaoyu2006
8 days ago
[-]
I think yes.
reply
maxloh
7 days ago
[-]
Nope. They process videos in a server instead.

> Video uploads to a server for processing by default, learn how to set it up locally here.

The server is open source too: https://github.com/VERT-sh/vertd

reply
bhaney
7 days ago
[-]
As far as I can tell, this uses:

- libvips (wasm): for image conversion

- ffmpeg (wasm): for audio conversion

- ffmpeg (remote, via vertd): for video conversion, with an option for the hoster to use wasm ffmpeg instead with some limitations (performance, maximum file size, etc)

And from browsing the github, missing formats are usually caused by difficulties linking the libraries that handle those formats into the wasm libvps/ffmpeg

reply
cbondurant
7 days ago
[-]
This is definitely going in my bookmarks.

Though I think as long as video conversion requires uploading to a jobserver, you're probably better off just invoking ffmpeg directly. Would suffer a lot from upload and download times on files that large. Though I wouldn't be surprised if problems like that become minimal if/when the video conversions can also run pure out of WASM as well.

reply
pruneau
8 days ago
[-]
Another one : ConvertX https://github.com/C4illin/ConvertX

Images, videos, documents, etc.

reply
remram
7 days ago
[-]
Tried a video, got "invalid digit found in string". I will stick with ffmpeg on termux I guess.
reply
brontosaurusrex
7 days ago
[-]
Is there a version of this that would support my custom presets for AVC/HEVC mp4 encoding with video filters like deinterlace/resize and similar (and/or audio filters like ebu R128)? (p.s. Also my usual input type is cinefrom/mov, which this one is not happy with for some reason)
reply
eniac111
7 days ago
[-]
Really nice! I had this idea since years. A simple open source tool that may replace the random websites for file conversions in small and middle companies. The traffic from the search engine results may be redirected to an internsl tool with a proxy for example.
reply
androng
7 days ago
[-]
please add HEIC: the default file format from iPhones
reply
natebc
7 days ago
[-]
This is just ffmpeg powered and it looks like some support was added fairly recently.

https://trac.ffmpeg.org/ticket/6521

https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/a0821345eb31...

reply
jcupitt
7 days ago
[-]
The wasm build of libvips (the image processing library this thing uses) does not include HEIC because of the various patent issues:

https://github.com/kleisauke/wasm-vips/issues/3

It does support AVIF and JXL. Hopefully Apple will abandon HEIC hehe.

reply
nodesocket
7 days ago
[-]
Agree adding HEIC support to vert.sh would be awesome. You can convert HEIF to JPG though using the ImageMagick mogrify command.

    mogrify -format jpg -quality 90 "$INPUT_FILE"
reply
mfkp
7 days ago
[-]
Yes, this is my most common web conversion. HEIC to JPG
reply
bilater
7 days ago
[-]
I did something similar using ffmpeg WASM in the browser. But it does have limits sadly. You can't really do heavy tasks. https://vididoo.vercel.app/
reply
chentastic
7 days ago
[-]
What's the limiting factor though? limited VM memory in the browser?
reply
maxloh
7 days ago
[-]
Maybe we could compile ffmpeg to WebAssembly and handle video conversion offline too?
reply
starkparker
7 days ago
[-]
That's exactly what this does: https://github.com/VERT-sh/VERT/blob/2c8cb1922cf611489022645...

    import { FFmpeg } from "@ffmpeg/ffmpeg";
`@ffmpeg/ffmpeg` is https://ffmpegwasm.netlify.app.

If you finessed that `supportedFormats` array to add video formats, this would probably just work.

reply
maxloh
7 days ago
[-]
That isn't what they stated in their website.

> Video uploads to a server for processing by default, learn how to set it up locally here.

The server code is open source too: https://github.com/VERT-sh/vertd

reply
michaelsalim
7 days ago
[-]
If you follow the link on the sentence you quoted, the reason why is explained there
reply
Alifatisk
7 days ago
[-]
reply
gunalx
8 days ago
[-]
Looks neat. Would love something like this with optional yt-dlp support as well.
reply
snvzz
7 days ago
[-]
>Affero GPL

For this specific license, be extra-sure that you understand the license before deploying.

reply
dahousecat
7 days ago
[-]
I would love this tool if it supported converting font files.
reply
albert_e
7 days ago
[-]
Webp supported yay!
reply
bikamonki
7 days ago
[-]
Is there a Vert for html to PDF?
reply
maxerickson
7 days ago
[-]
reply
mubou
7 days ago
[-]
Another good option is to actually just use puppeteer (headless chrome)
reply
dippi0
7 days ago
[-]
If you need to perform one-off conversions interactively (like you'd do with Vert), I would suggest you to just print the page to PDF with any Chromium-based browser.

If you need to automate the conversion on a small scale, either Puppeteer or Playwright are excellent choices and are easy to self-host on any home server or VPS with enough resources to run a browser.

If you need to scale the automation or rely on it for business purposes, I'd suggest you to have a look at hosted services, there are plenty of them.

Shameless plug: I run https://yakpdf.com/, a hosted Puppeteer-based service. If you want to give it a spin, there’s a free plan on RapidAPI (https://rapidapi.com/yakpdf-yakpdf/api/yakpdf). It’s used in production by many and is one of the most trusted solutions on RapidAPI.

Happy to help if you have any questions!

reply
Ametrin
7 days ago
[-]
I can recommend https://pdfbolt.com. It is unfortunately not self-hosted but built with privacy in mind. I'm the founder.
reply
koakuma-chan
7 days ago
[-]
Nice view transitions!
reply
cnych
8 days ago
[-]
ffmpeg is so great~
reply
nipperkinfeet
7 days ago
[-]
HEIC nonsense from Apple supported?
reply
virtualritz
8 days ago
[-]
How is this different from image/graphics magick, ffmpeg, oiiotool etc?

Or: what am I missing here, why is this on the front page?

reply
karamanolev
7 days ago
[-]
As far as I can tell, what you're missing is the massive ease-of-use and approachability, especially for non-technical users, of a web-based graphical "convert X to Y" interface vs. facing command line ffmpeg, which they probably haven't heard of.
reply
graemep
7 days ago
[-]
There are already GUIs for ffmeg and most image editing applications can save in multiple formats so its still not clear to me what this adds
reply
barbs
7 days ago
[-]
I feel this is easier than those solutions in a lot of cases - mainly because you don't need to install anything. Just open website, drag and drop a file, pick target format, done.
reply
graemep
7 days ago
[-]
Which is only true if you are not interested in the “self-hostable” part and you installing an app is a significant difficulty.

Once an app is installed locally it is more convenient to use - that is why it is so common for apps to replicate (or just wrap) websites.

If you are not interested in the self-hostable part there are lots of online converters.

reply
barbs
7 days ago
[-]
Right, but those online ones are also usually covered in ads, don't run locally, and run the risk of infecting the output with malware.
reply
titaphraz
7 days ago
[-]
It's not clear to me why that's a problem?
reply
FusionX
7 days ago
[-]
It's a web service that can be used on any device without installation. Think in terms of usability for old, non-technical folks.
reply
nonrandomstring
7 days ago
[-]
All of that. A couple more thoughts. As a project it brings together energy to a task/configuration: namely that of making sure all those disparate command-line tools or bits of lib code are brought together for the specific purpose of serving file translations from some spot in a transactional fashion. So that's some value.

Why on the front page? That question might also have a non-technical answer. What's going on in news and events? Who's been setting up file translators and then "Dude I have over 4,000 soundfiles, pictures, address-books..." ... "Whoah? Like. howdy manage that one?" ... "People just submitted it. Zuck fucks"

reply
bigstrat2003
7 days ago
[-]
Yeah I also cannot for the life of me understand why anyone would want a web site that converts files. Just install a desktop app to do the same (GUI or otherwise) and it will be more pleasant to use, and more performant. The Web is not a good application platform no matter how much people try to shoehorn it into being one.
reply
filmgirlcw
7 days ago
[-]
Ok, but imagine you’re in a situation where you don’t have the ability to install apps, or you’re temporarily on a platform you’re unfamiliar with and so you don’t know what GUI tools exist. This is why people wind up using web-based converters, which as another commenter noted, can be hijacked for malware.

A WASM solution might not be the most performant but it will be an option.

As for the web not being a good application platform, that ship sailed 20+ years ago and at this point, it’s hard to find any “native” apps that don’t share at least some similarities or core components as web apps, even if it’s just for UI. Although I personally would rather have a good native Mac app than a mediocre web app, I’d rather have a well-written web app than a mediocre Mac Catalyst app, and in many cases, than running an iOS app on the Mac. And I often prefer a web app or app built with web technologies to “native” apps built with GTK or Qt.

reply
hamburglar
7 days ago
[-]
People value not having to install anything, for various reasons.
reply
dmd
7 days ago
[-]
yeah you can already build such a system yourself quite trivially by getting an FTP account, mounting it locally with curlftpfs, and then using SVN or CVS on the mounted filesystem. From Windows or Mac, this FTP account could be accessed through built-in software.
reply
hamburglar
7 days ago
[-]
Underrated comment
reply
bee_rider
7 days ago
[-]
For some reason even technical and linux-savvy people, (I’ve seen this on zoom calls) will google up an image or video converter. I don’t get it either, but if this provides an alternative to those awful ad-infested sites I guess it is an improvement.
reply