I keep being impressed by this project. Has served me so well over the years, and the depth of the technologies is so exciting. Assembling ffmpeg command line arguments is a meditative exercise, with
almost arbitrarily deep research allowed.
Yeah, I think a more workable "interface" to the complexities of FFmpeg would be some sort of terminal "shell" application that allows the user to easily tab-complete their command and visually separate out the command's various parts (i.e., input opts and output opts on separate parts of screen; each track in the container tabbed out and line-returned from the last track; etc.)
Also some users may benefit from a program that can identify what the particulars are about the input file(s) to help them make better commands. Or even ask them first what kind of result they want and work backwards from there. If the user knows they want multiple PNGs and then the input file is an MPEG-4 container with an x265 video bytestream, it's pretty clear what the user may want to do. But unless you're quite initiated, today's FFmpeg still really makes the average user work for it.
> Yeah, I think a more workable "interface" to the complexities of FFmpeg would be some sort of terminal "shell" application [...]
I was thinking something similar, but hadn't thought about tab completion - interesting idea! I was picturing something with a nano-like interface. Run the
program from your terminal, get a simple set of menus you can navigate with a keyboard, tick off boxes for options, etc., then have an auto-updating command example output in a bottom "pane" showing you in real time what the cli args would be for what you specified.
In C* land I think they use ncurses to build those, if memory serves, but I probably wouldn't write it in C myself just since I'm not very well versed in it. Probably Go or Rust...
Anyway, good idea. If I hack on this I may see about implementing something like that, some day!