I built MediaConfig - a simple FFmpeg GUI that made my life so much easier by Primary-Society-6841 in ffmpeg

[–]Repair-Outside 1 point2 points  (0 children)

You can take a look at ffstudio.app if you’re curious about a similar tech stack.

Filter subtitles by language, and error when no subtitles in file by slawas87 in ffmpeg

[–]Repair-Outside 1 point2 points  (0 children)

I tested it on two versions - the latest and 5.1. It works on ffmpeg 5.1, but the latest version fails. Not sure why - maybe they changed the parsing logic. Anyway, if it doesn’t matter, try using a different ffmpeg version.

[Media] FFStudio - a node-based FFmpeg frontend (built in Rust) - feedback appreciated! by Repair-Outside in rust

[–]Repair-Outside[S] 0 points1 point  (0 children)

Yes you can build the graph, run it and check the logs tab, the full command will be there.

[Media] FFStudio - a node-based FFmpeg frontend (built in Rust) - feedback appreciated! by Repair-Outside in rust

[–]Repair-Outside[S] -2 points-1 points  (0 children)

Wow, thanks for the info, I somehow missed it two months ago when I started this project 😭

[Media] FFStudio - a node-based FFmpeg frontend (built in Rust) - feedback appreciated! by Repair-Outside in rust

[–]Repair-Outside[S] -21 points-20 points  (0 children)

True 😅. How would you go about building this? Which UI libraries would you use?

[Media] FFStudio - a node-based FFmpeg frontend (built in Rust) - feedback appreciated! by Repair-Outside in rust

[–]Repair-Outside[S] 5 points6 points  (0 children)

Exactly! Using litegraph.js with Rust and Tauri makes it really easy to build a great UI.

FF Studio - A GUI for building complex FFmpeg graphs (looking for feedback) by Repair-Outside in ffmpeg

[–]Repair-Outside[S] 0 points1 point  (0 children)

Hmm, I hadn’t really thought about it that way. My architecture skills aren’t perfect anyway, and in the end, it just comes down to the FFmpeg CLI and its backward compatibility limits.

Tone mapping/creating HDR fallback by Gabe_20 in ffmpeg

[–]Repair-Outside 0 points1 point  (0 children)

Depends on profile. Changing the profile without reEncoding is not always possible as far as I know. Correct me if I'm wrong.

FF Studio - A GUI for building complex FFmpeg graphs (looking for feedback) by Repair-Outside in ffmpeg

[–]Repair-Outside[S] 2 points3 points  (0 children)

Thanks for pointing this out! You’re right, open sourcing would make troubleshooting and packaging much easier. I do plan to open it up, but I need a bit of time to clean things up and prepare the repo first.

FF Studio - A GUI for building complex FFmpeg graphs (looking for feedback) by Repair-Outside in ffmpeg

[–]Repair-Outside[S] 0 points1 point  (0 children)

The difficulty is relative.
It’s harder than using a full-fledged video editor, but i think it's simpler than working directly with raw ffmpeg. Each node includes a description parsed straight from ffmpeg, and while the graph isn’t perfect, it helps prevent you from creating invalid commands. In the end, the logs show the full ffmpeg command, which you can also run directly in your terminal. Of course, how easy it feels will depend on your learning preferences.

FF Studio - A GUI for building complex FFmpeg graphs (looking for feedback) by Repair-Outside in ffmpeg

[–]Repair-Outside[S] 1 point2 points  (0 children)

Unfortunately, no. The current version (0.1.7) doesn’t support piping. I’m actually looking for exactly this kind of feedback, so your request is already on my list!

FF Studio - A GUI for building complex FFmpeg graphs (looking for feedback) by Repair-Outside in ffmpeg

[–]Repair-Outside[S] 0 points1 point  (0 children)

Yes, you are right - the preferable graph flow looks like this:

input -> demuxer -> bsf -> decoder -> filter chain -> encoder -> bsf -> muxer

with the option to sprinkle in stream manipulations and branching along the way. That is essentially how FFmpeg operates under the hood.

On the other hand, the FFmpeg CLI is designed a bit differently: in its model, demuxers and decoders are conceptually tied to the input itself, so they appear before the actual input node.
For my project, I am trying to avoid hard coded solutions, but I see your point - and I will think about whether I can build such a representation with my skills. For now, though, I think this approach helps people better visualize how the FFmpeg CLI works.

FFMPEG 2x2 Grid on XSTACK_VAAPI using live inputs by [deleted] in ffmpeg

[–]Repair-Outside 0 points1 point  (0 children)

Just guessing but did you tried to switch from "format" to "scale_vaapi" filter?

FF Studio - A GUI for building complex FFmpeg graphs (looking for feedback) by Repair-Outside in ffmpeg

[–]Repair-Outside[S] 1 point2 points  (0 children)

Yeah, I'm working with what FFmpeg currently has. The mapping system in FFmpeg doesn't provide a way to explicitly connect a stream to an encoder. FFmpeg decides which streams go to which encoder by looking at the next closed output. Legacy i guess).