It would still cost a lot though.
That's dumb. Like saying a car isn't a replacement for a horse because it can't jump over hedges. Most people do not care about the obscure formats at all.
> I’m sure people will flock to that just for the excuse of saying they are using a rust library.
Well, for not having to worry about trivial security bugs, yes I suspect they would flock to it! Especially for server side video processing.
A car is not a replacement for a horse, it's a replacement for what was the most common use case of the horse, getting from A->B in a developed environment. There are still (limited) applications where a horse is the best or only transportation option.
A pocket knife is not a replacement for a multitool, even if the multitool blade gets used more than any other feature. People use multitools because they want something that can solve multiple problems with a single tool. The greatest feature and the reason people reach for ffmpeg is that it's extremely versatile. If you get rid of that versatility, it's not a replacement for ffmpeg.
You however don't seem to understand _why_ backwards compatibility is important, and i would absolutely hate to interface with whatever mess of a software you write.
I agree, but do you see "drop-in" anywhere in my comments?
> You however don't seem to understand _why_ backwards compatibility is important
I completely understand why backwards compatibility is important. But something doesn't have to be backwards compatible to be a "replacement".
I have replaced C++ with Rust in my hobby projects.
Yes it does. Especially when it's the size of projects like ffmpeg. Just because you replaced c++ with rust in your tiny hobby projects doesn't mean you have the experience, nor the qualifications to say what it entails what it takes to do it at this scale.
You come across as extremely unexperienced.
1. It is desirable for replacements to be drop-in replacements. But it isn't a strict requirement. It is possible to replace something with something else even if it requires some work to do that replacement.
Cars did replace horses for transport. That is fact. They were not a drop-in replacement. Roads had to be built. People had to learn to drive.
The fact that they were not a drop-in replacement for horses does not mean that they were not a replacement. That's simply not what the word "replacement" means in English.
2. You seem to be confusing the size of ffmpeg itself, with the difficulty of replacing it. That's not how programs work. The thing that matters is the size of the interface of the program, which isn't the same as the size of the program itself.
For example if you are using ffmpeg on a web server to compress or convert videos to a standard format, you might be running a single ffmpeg command, and replacing it with some other system would literally be a matter of changing the command. It doesn't matter that ffmpeg itself is a huge program.
I hope that helps you understand a bit better. Good luck learning about computers - keep at it and you will get there eventually!
Might as well tell people to rewrite WebKit or Linux in Rust. There are projects that aim at building browsers or kernels in Rust, but the man-millennia of effort put into the existing projects means catching up is no small feat.
Even the coreutils rewrite has taken like a decade and isn't done. And that is a small and well-defined goal by comparison.
What exactly does a complete rewrite of FFmpeg achieve given the absolutely monstrous complexity involved?
I’m not saying it’s needed, just that ffmpeg is the kind of thing that could be rewritten gradually if there was interest and a lot of dedicated talent.
i see some generic posts about how ffmpeg is written in C and Assembly and will not be re-written in C++, but nothing about Rust.
Not sure rust is the answer or what else could be done, but we shouldn't pretend it isn't an issue.
Besides that, there's always a bunch of "this should be rewritten completely in <hot new language>" as if it's trivial to rewrite software like this from scratch but nobody ever steps up and does it, I wonder why that is?
;-)