Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
In Praise of FFmpeg (drewdevault.com)
108 points by ddevault on Oct 12, 2022 | hide | past | favorite | 32 comments


FFmpeg is great software. It is unbelievably flexible and has a ton of functionality out of the box. It has a bit of a steep learning curve, but the user manual is quite comprehensive.

I have used it for transcoding video/audio to HLS and it has worked very well.


Ffmpeg is indeed incredible. It was the workhorse behind Remote Potato, a previous project of mine that allowed remote control and streaming of Windows Media Center TV recordings to smartphones, back in the day when that kind of thing was a novel.


> The book is now closed on multimedia: ffmpeg is the solution to almost all of your problems.

Isn't gstreamer very much used within this area too?


ffmpeg is much better than gstreamer. gstreamer only has a foothold where glib also has foothold, which says a lot.


I used FFmpeg to create a stretched in place sample recorder for music and it is so very fast.


Totally their choice of course, and sorry for my luck, but it's LGPL.


LGPL plays no small role in its success. The only reason to be against it is if you wish to appropriate it for yourself.


lol it doesn't work this way. one person can't take it away from everyone else if it's, say, MIT-licensed.

person A taking code private causes exactly zero harm to person B.

this is why I say that viral licenses restrict freedom of users; they do not guarantee freedom to users.

The GPL actively prevents users from taking certain actions -- actions which do not and can not take anything at all from any other user of that code.


> they do not guarantee freedom to users.

FSF GPL Licenses are the only open source licenses that protect the freedom of the creator and the users (the end user who actually uses the software as a product).

Most permissive licenses only seek to protect coder / author attribution. Programmers who use such license for their code don't mind if you use it in open or closed source project as long as they are credited for creating the code used.

But the goal behind FSF GPL is to ensure both author attribution and more importantly that the source code is always available to the user. So from a user perspective, FSF GPL license guarantees more freedom to a user because using a GPL license software means the user will always have access to the source code. And so they will always have the freedom to modify it.

As a programmer, GPL gives you the right to use or modify the GPL licensed code as you want. You have to share the modifications (make your source code open and available) only if you decide to distribute your application to others. That means if I buy the application from you, GPL says I as a user must also get the complete source code of the application (if I so desire).


> But the goal behind FSF GPL is to ensure both author attribution and more importantly that the source code is always available to the user.

if I close some MIT-licensed code, and make changes, how exactly is that denying attribution or taking code away from anyone?

the code I started with is there for anyone else, untouched by me or my closed variant. if the license requires attribution, I will attribute, no problem. how does anything one person does privately with open code change anything about that code elsewhere? exactly how, please?


If you then distribute that modified software, users don't have the freedom to modify it in turn since your source code would be unavailable.


exactly, I wrote it and I may not want to give that away.

GPL prevents me from keeping licensing rights over my own changes. the GPL forces me to give up copyright over my own code before it is even written.

"freedom" my white ass. that's a jail.


The GPL doesn't force you to give anything away if you've just modified the code for personal use. You only need to provide source code if you're distributing your modified software.

You're free to avoid using GPL code if you disagree with the philosophy but it is undeniable that GPL greatly improves software (for users, not corporations) like linux and ffmepg.


> The GPL doesn't force you to give anything away if you've just modified the code for personal use. You only need to provide source code if you're distributing your modified software.

I'm not free to keep my changes, though, and if I don't have those rights, it is because I've given them away at the behest of the GPL. My changes are GPL even if I never distribute them. I'm prevented from licensing that code how I choose. GPL takes my effort and forces me to either never do anything with it or to give it away to everyone.

I will never work on code that is licensed under any GPL variant. I will not donate my time to expand the functionality of that code or to fix any problem for software which supports a license that removes freedoms from the people who maintain it.

The GPL is viral and parasitic and I will not contribute to that.

Maybe I would have freely given my code away if it was MIT licensed. Maybe I would keep it for myself. Maybe I would turn it into a commercial product.

My point is that THE CHOICE IS MINE if I work on code that is MIT licensed.

The choice is what matters to me, and the GPL forces me to give up that choice. I can't agree to that.


> I'm not free to keep my changes ... I'm prevented from licensing that code how I choose.

You seem to believe that your rights trumps everyone else's. You are ignoring that it is not just your code.

If somebody has released the source code under the GPL license, they are the original copyright holder(s) giving you permission to reuse the code under certain conditions (as outlined in the GPL license). They choose the GPL license because they believe GPL protects their rights, and the open source philosophy best, as the GPL license ensures that the code they created will always be open source when changed and distributed by other coders.

Instead of complaining about other people's choice of license (GPL or MIT), think instead of how you would like your open source code to be used by others and what license you would choose to achieve those goals. You are free to do whatever you want with your original code and thus can license it however you want. But once you start reusing other people's code, their rights and beliefs also matter. If you don't subscribe to their belief, then obviously you have no choice but to not use their code.


> once you start reusing other people's code, their rights and beliefs also matter. If you don't subscribe to their belief, then obviously you have no choice but to not use their code.

The only way I know for sure about their rights and beliefs is via the requirements in the license. If they want me to comply with further ideals, codify those in the license. I am not obligated to believe that the code is in use by aliens from planet Xobnar, as an extreme example.

If I comply with the license, the requirements are met, and I am free to use the code.


> The only way I know for sure about their rights and beliefs is via the requirements in the license.

Yes, and so you have to comply with the license or not use their code. If you distribute some code with some conditions for its reuse described in a license, would you like it if I called your conditions / license "stupid", ignore it and still use your code as I see fit (which would be illegal)? Obviously no.


Person A taking a code base private that solves 95% of their problem and refusing to release fixes-and-features upstream hurts the entire community.


how? exactly how?

that person would not have even made the changes to GPL code.

I won't work on ANYTHING GPL or AGPL because I don't want to be forced into doing anything.

so how does that hurt the community? you're claiming ownership over code I haven't even written, now?


> how so?

Three words: Embrace, Extend, Extinguish.


no, that's a straw man. you're making up events that are not part of this and acting as if they necessarily occur. they do not.


> you're making up events that are not part of this

Part of what?

You've asked how does person not contributing changes upstream hurt the community. I gave an example of a real-world scenario which has happened with permissive software many times. How is it a strawman?


Its not GPL thou. LGPL is very different in how 'viral' it is, which is the general issue that people have with GPL (validly, imo)


What makes LGPL unsuitable for you? Is LGPL not a permissive license?


It is a copyleft license, but the copyleft is weaker compared to the GPL.


No company of any significance would ever use it, for licensing issues. Now that is totally the choice of ffmpeg, and they are more that free to chose it. They may believe in the "all software should be free mantra", and again, that is totally fine. But it does significantly limit it's use, which again they may not care about.


FFmpeg is a part of Chromium and Chrome. That's it for "company of any significance would ever use it" statement.

https://chromium.googlesource.com/chromium/third_party/ffmpe...

Also: All the giant companies used ffmpeg (2020) https://twitter.com/ID_AA_Carmack/status/1258531455220609025


Chromium is open source. Sorry, let me be more clear, no closed-source company of any significance is going to use LGPL.


I've certainly worked at companies which used LGPL software without any concern at all. Arguably, they weren't "significant" but they did examine the license and what it meant and felt it posed no risk.


Blender uses FFmpeg, and it's one of the most successful FOSS projects ever!


blender is open source.


LGPL doesn't require your software to be open source. You shouldn't have licensing issues with it.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: