Aaand it's minimally working, so: https://ffmpeg.app is now live!

Use FFmpeg recipes without fiddling with the command line!

Consider this an early beta. There's still a ton missing:

- Ability to tweak the command line (i.e. hand editing, or selectors)
- Proper mobile styles
- About, disclaimers, etc
- Many more command recipes
- Better accessibility
- "Bug fixes and performance improvements"

But, it's doing the thing!

#ffmpeg #video

FFmpeg.app

A website where you can search for and perform video and audio conversions, right on your browser.

@zeh nice work! i've thought about some kind of playground/"REPL" for ffmpeg but have few ideas how it would actually work

@wader My hope is that this becomes a bit like that. I've always wanted something of the sort, hence this project.

It's just a start, but once there's more recipes, some selection, editing commands, previews, that sort of stuff, it can be that.

@zeh me too! i've experiment with using ffmpeg in jupyter notebook https://fosstodon.org/@wader/110231082376932569 but would be great with something that could play video, maybe "link" output(s) to next command, understand the cli syntax and filter graph syntax... dreaming on here :)
Mattias Wadman (@[email protected])

Attached: 1 image Why didn't I start using #jupyter bash kernel earlier? #ffmpeg #jq #fq

Fosstodon
@zeh i did try to build a graph based web UI for the CLI some years ago (no wasm, ffmpeg running on server) but it got very messy and complex and i lost motivation. found an old screenshot of it :)

@wader Wow, this is amazing.

I do think FFmpeg commands would work well as a graph - I sorta assume that's how it is, internally. Would be an interesting exercise.

@zeh yeap the ffmpeg CLI sort of turns the args into a avfilter graph but there is lots of non-trivial glue to handle decoding and encoding which i guess it hard to express as a graph. i remember working on the graph UI that it got hard to visualize and detect non-supported things for example
@wader @zeh I did something similar a year ago https://www.youtube.com/watch?v=tg7KN13-zlc but lost interest too. For a highlevel tool there were too many side-effects (requiring still lots of expertise from the user).
So much non-trivial glue like you said.
These days I just use https://ffmpeg.lav.io or https://github.com/richardpl/lavfi-preview (which also suffer from the same issues)
shellmix WiP

YouTube

@lvk @zeh wow that looks cool! so it was something even more generic for building shell pipelines with "plugins" for ffmpeg etc? how was the interaction with ffmpeg done, using the cli binary?

remember spending quite a lot of time to somehow map errors from ffmpeg to show up in the graph to explain why things don't work but never really felt stable or useful enough

@wader @zeh

So back then I've basically built a ffmpeg-scanner (it would parse the output of 'ffmpeg -filters' iirc) and generate node-definitions from that.
In theory all was awesome, in practice some sort of meta-nodes would've been better (which would generate snippets of ffmpeg-filtergraph which deal with all the edgecases like format-conversion, same-resolution restrictions etc).

@lvk @zeh that sounds familiar https://github.com/wader/ffcat/blob/master/internal/goffmpeg/features/features.go 😬 (it's the go package i used for the backend... here used for another project)
ffcat/internal/goffmpeg/features/features.go at master · wader/ffcat

Preview media files in the shell. Contribute to wader/ffcat development by creating an account on GitHub.

GitHub

@wader It's not super graph-y, but the way I'm building the command-line definitions, I hope it'll be easy to turn stuff on and off, and select from templates, so one can build some mini-programs-ish things that can take a bunch of options and output a video/audio based on a common task.

Not very obvious now, but once there's optional stuff, predefined selections, etc, should make more sense: https://github.com/zeh/ffmpeg.app/blob/c491a3b7c419f98d915cfadcb910979025ca87b1/src/utils/commands/commands.json

ffmpeg.app/src/utils/commands/commands.json at c491a3b7c419f98d915cfadcb910979025ca87b1 · zeh/ffmpeg.app

A visual web interface to FFmpeg. Contribute to zeh/ffmpeg.app development by creating an account on GitHub.

GitHub
@zeh aha your thinking show the command line but for example codec could be a select box etc? yeap that would be nice to make it easer to explore options
@wader Yeah. The command lines would still be very specific recipes (I am trying to avoid forcing people to "think" too much - otherwise we're just back to a command line; I want the tool to be useful for non-experts) but to give them options to tweak what they have, if they want to.
@zeh Yes I think that makes sense, probably just confusing to show or use graph terminology for most users. One think i've thought about is if it would be possible to visualize the relation between input/output/map/format/codec somehow