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.
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.
https://github.com/VERT-sh/VERT/commit/8f8ea34483cab76e27204...
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/
The dude can wrap his head around literally anything. Him and Torvalds are truly exceptionally capable people.
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.
This kind of mental flexibility is what I really admire.
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.
Reading that list of projects is quite humbling. I've always wanted to make stuff like that.
https://newbeelearn.com/tools/videoeditor/
and this one also outputs ffmpeg command as well.
This looks like exactly what I’ve been looking for.
- [0] https://www.fbi.gov/contact-us/field-offices/denver/news/fbi...
> Take a breath, slow down and think.
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.
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...
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!
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.
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.
> 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.
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 ?
My most powerful machine tends to be the home server, and some of my laptops are terrible.
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.
Anything I missed, that explains this?
"The vertd project is a server wrapper for FFmpeg [...]"
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.
- 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
> 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
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.
Images, videos, documents, etc.
https://trac.ffmpeg.org/ticket/6521
https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/a0821345eb31...
https://github.com/kleisauke/wasm-vips/issues/3
It does support AVIF and JXL. Hopefully Apple will abandon HEIC hehe.
mogrify -format jpg -quality 90 "$INPUT_FILE"
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.
> 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
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!
For this specific license, be extra-sure that you understand the license before deploying.
Or: what am I missing here, why is this on the front page?
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.
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"
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.