[HN Gopher] Open source and self hostable/private file converter
       ___________________________________________________________________
        
       Open source and self hostable/private file converter
        
       Author : sandybonks
       Score  : 401 points
       Date   : 2025-04-12 12:40 UTC (10 hours ago)
        
 (HTM) web link (vert.sh)
 (TXT) w3m dump (vert.sh)
        
       | gunalx wrote:
       | Looks neat. Would love something like this with optional yt-dlp
       | support as well.
        
       | xnx wrote:
       | Is Vert like a simplified version of https://ffmpeg-
       | web.netlify.app/ ?
        
         | xiaoyu2006 wrote:
         | I think yes.
        
           | maxloh wrote:
           | 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
        
       | api wrote:
       | 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.
        
         | liotier wrote:
         | A relevant audience are the corporate computing inmates, who
         | cannot install anything locally... They are happy to find
         | utilities wrapped behind some web front.
        
           | api wrote:
           | 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.
        
             | PeterStuer wrote:
             | It doesn't send the file though.
        
           | Trufa wrote:
           | 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.
        
           | graemep wrote:
           | 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
        
         | doubled112 wrote:
         | This isn't true for me.
         | 
         | My most powerful machine tends to be the home server, and some
         | of my laptops are terrible.
        
         | palmy wrote:
         | 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:)
        
         | XorNot wrote:
         | 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.
        
         | barbs wrote:
         | 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.
        
         | imoreno wrote:
         | 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.
        
       | virtualritz wrote:
       | How is this different from image/graphics magick, ffmpeg,
       | oiiotool etc?
       | 
       | Or: what am I missing here, why is this on the front page?
        
         | karamanolev wrote:
         | 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.
        
           | graemep wrote:
           | 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
        
             | titaphraz wrote:
             | It's not clear to me why that's a problem?
        
             | barbs wrote:
             | 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.
        
               | graemep wrote:
               | 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.
        
             | FusionX wrote:
             | It's a web service that can be used on any device without
             | installation. Think in terms of usability for old, non-
             | technical folks.
        
           | nonrandomstring wrote:
           | 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"
        
         | bee_rider wrote:
         | 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.
        
         | dmd wrote:
         | 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.
        
           | hamburglar wrote:
           | Underrated comment
        
         | bigstrat2003 wrote:
         | 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.
        
           | hamburglar wrote:
           | People value not having to install anything, for various
           | reasons.
        
           | filmgirlcw wrote:
           | 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.
        
       | xiaoyu2006 wrote:
       | 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.
        
         | hypercube33 wrote:
         | It just needs pandoc to do document conversions and we are
         | golden
        
           | ukuina wrote:
           | pandoc-wasm?
        
         | sergiotapia wrote:
         | 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.
        
           | metadat wrote:
           | 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
        
         | starkparker wrote:
         | 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.
        
         | igtztorrero wrote:
         | That's a whole true, creator Mr Fabrice Bellard, a 1000x
         | developer, also create Qemu, another essential gem of software.
        
           | pestaa wrote:
           | WHAT!? Unbelievable productivity. I'm in awe (and a renewed
           | impostor syndrome).
        
             | stavros wrote:
             | And TinyC, and the Bellard formula for calculating pi.
        
               | mschuster91 wrote:
               | ... 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.
        
             | VTimofeenko wrote:
             | 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.
        
             | cortesoft wrote:
             | 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?
        
               | satvikpendem wrote:
               | People use that term casually, don't read too much into
               | the implications.
        
           | darknavi wrote:
           | 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/
        
         | leptons wrote:
         | 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.
        
       | cnych wrote:
       | ffmpeg is so great~
        
       | pruneau wrote:
       | Another one : ConvertX https://github.com/C4illin/ConvertX
       | 
       | Images, videos, documents, etc.
        
       | haswell wrote:
       | 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...
        
         | thi2 wrote:
         | 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
        
         | Alifatisk wrote:
         | 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...
        
       | metadat wrote:
       | 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...
        
         | SteveNuts wrote:
         | 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?
        
           | stavros wrote:
           | As I understand the license, it doesn't apply to clients,
           | just the service itself.
        
         | xnx wrote:
         | Would be even cooler if the website gave credit to what it is
         | built on.
        
       | bikamonki wrote:
       | Is there a Vert for html to PDF?
        
         | maxerickson wrote:
         | Pandoc https://pandoc.org/
        
           | mubou wrote:
           | Another good option is to actually just use puppeteer
           | (headless chrome)
        
         | Ametrin wrote:
         | I can recommend https://pdfbolt.com. It is unfortunately not
         | self-hosted but built with privacy in mind. I'm the founder.
        
       | cbondurant wrote:
       | 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.
        
       | remram wrote:
       | Tried a video, got "invalid digit found in string". I will stick
       | with ffmpeg on termux I guess.
        
       | handwarmers wrote:
       | It's a great UI to ffmpeg - I wish they gave it some credit on
       | their landing page.
        
         | mubou wrote:
         | 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.
        
         | franciscop wrote:
         | At least they do in the Settings:
         | 
         | "The vertd project is a server wrapper for FFmpeg [...]"
        
       | maxloh wrote:
       | Maybe we could compile ffmpeg to WebAssembly and handle video
       | conversion offline too?
        
         | starkparker wrote:
         | 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.
        
           | maxloh wrote:
           | 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
        
             | michaelsalim wrote:
             | If you follow the link on the sentence you quoted, the
             | reason why is explained there
        
         | Alifatisk wrote:
         | Like this? https://github.com/ffmpegwasm/ffmpeg.wasm
        
       | brontosaurusrex wrote:
       | 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)
        
       | androng wrote:
       | please add HEIC: the default file format from iPhones
        
         | mfkp wrote:
         | Yes, this is my most common web conversion. HEIC to JPG
        
         | natebc wrote:
         | 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...
        
       | albert_e wrote:
       | Webp supported yay!
        
       | nipperkinfeet wrote:
       | HEIC nonsense from Apple supported?
        
       | bilater wrote:
       | 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/
        
         | chentastic wrote:
         | What's the limiting factor though? limited VM memory in the
         | browser?
        
       | dr_kiszonka wrote:
       | 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!
        
       | koakuma-chan wrote:
       | Nice view transitions!
        
       | dahousecat wrote:
       | I would love this tool if it supported converting font files.
        
       | bhaney wrote:
       | 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
        
       ___________________________________________________________________
       (page generated 2025-04-12 23:00 UTC)