Via https://mastodon.gamedev.place/@zeh/110851781460641259
Use FFmpeg recipes without fiddling with the command line!
FFmpeg.app is a web-based front end to FFmpeg, the free and open-source application and libraries for processing of video and audio files. Its purpose is to serve as an easy front-end to this powerful tool, so anybody can discover and use it with no setup (or command-line access) necessary.
This is quite exciting because I wouldn’t have to install anything to use this at various facilities I might be working at. Although I tried to test it out with the most common things I might use FFMPEG for.
First up I tried to “replace” audio with something else, there was no replace function. Then I thought, “cut”-ting without encoding (although usually I want to cut a section out and replace it which won’t work here) is something I also do to save time since most professional apps won’t do it. Sadly there was no recognition of the word “cut”. I also thought I’d try “remove”-ing something, which admittedly is basically the same as either cutting or replacing since I’d basically be removing audio to replace it with something else or removing a section of video without needing to reencode which is the same idea as cutting, just a different keyword, but again that didn’t work. Another thing I often use FFMPEG for is encoding “pro res” on windows machines and there appears to be no recognition of “ProRes” either. Another thing I sometimes do that I thought could be a good test is “remux”-ing. This is a bit of an edge case admittedly, but I just wanted to find something in my usual list of needs that this might do, there appears to be no mux, remux, or multiplex keywords recognised either. Also commonly when I’m remuxing, I’m also mixing down 5.1 to stereo and sadly I couldn’t find any “mixdown” or “mix” keywords recognised either. I did find the “normalise” command though, so that’s good.
I don’t mean to shit all over this because I think it’s a great idea. When I use FFMPEG it’s a frustrating and finicky command line experience and front ends inevitably have to limit what it can do in the interests of simplifying its use. I often end up carrying around strings of commands in text files because it’s too hard to remember the exact syntax for the things I often need to do and I love that this has the option of generating those commands for you based on plain English keyword requests which is handy if you have FFMPEG installed locally. Although that’s another thing that I wonder about with this, if you’re having to install FFMPEG to use the command line output from your app, then at that point you’ve already had to cross a threshold of inconvenience where this is only marginally helpful at this point and while I see you can upload the input media, FFMPEG is primarily for dealing with video and the time it would take to upload anything other than a short and already compressed file would make this rather prohibitively impractical.
Most likely my usage of FFMPEG is eclectic so I hope this helps out people with less unusual needs, but for me at least, I only really use FFMPEG for unusual situations because I specifically want to do something that professional apps don’t do or because the need is simple enough that I don’t want to open an editing app. The main thing I’m doing with FFMPEG is making minor changes to a video that has a mistake of some kind but I don’t want to waste time reencoding. That’s a common thread amongst all my failed tests. They’re all about a hypothetical scenario where I have a huge file that I’ve discovered has a small mistake in it that I want to patch quickly without a reencode, or needs a second version with a different audio configuration but the video is fine, or where I want to reversion it to work on stereo equipment but again leave the video unchanged. I can do all of that one way or another but where FFMPEG comes to the rescue is allowing me to do it without touching an editing app and avoiding reencoding wherever possible.
If I just had something very bog standard to do like convert something to h264 I might use FFMPEG to do it for convenience sake but then if I’m having to upload it first then wait for transcoding and then wait to download the output it’ll become more hassle then just using a pro app I might have access to, not downloading FFMPEG in conjunction with a GUI.
Oh that’s cool! Is there a site for youtube-dl as well?
Yeh this concept would be great for Youtube-dl because that’s something that’s necessarily involving video that’s web based to begin with.
You could use parabolic from GNOME but it’s a local app.
deleted by creator
Seems so. Checked the sources and there’s no upload/download. And testing it I can confirm the network tab in the dev tools is silent. Everything work local side. Probably with some additional work this could be converted to a PWA (Progressive Web App) and work completely offline.
deleted by creator
I use Axiom UI for Windows for Ffmpeg
One issue I found is that it gives a command for “Convert audio file to mp3”, but shouldn’t it just be any valid file? I threw an mp4 and a mkv in there and both worked without issue
Not like a major issue but it’s more specific than it has to be.
Pretty cool, thanks for posting. This will be really useful
Honestly, I generally just ask ChatGPT with very good results.
I was thinking that it’d be good if you could combine chat GPT with this web app prompt but I don’t know much about how it works and I thought you’d have to do something to tailor it to this use. Does just plain old chat GPT accessed via the public website already know the correct commands for FFMPEG and is capable of translating written English requests in to the appropriate set of commands? That’s fantastic if so.
It does, I did it just this morning with the prompt:
“Give me a Linux command to convert a directory of .wav files to .flac files”
Gave me the result:
for file in *.wav; do ffmpeg -i “$file” -c:a flac “${file%.wav}.flac”; done
Yes, you can ask it and see. Sometimes it misses, but it’s generally easily fixable, sometimes you can even ask it to fix it.
It not only gives you the command with a handy “copy” button, but also explains why it chose each argument.