I am making some software that will need to play back mp4 videos (a small part of the application). The software has a mechanism built in so that I can unlock features after payment . The mechanism works in house and contacts no servers, the user simply puts in a key that is generated server side on a website after they put in their unique code.

My question is how can I hide my protection method (so people can’t make their own key gens) whilst still being “open source” and complying with the free FFMPEG licence?

  • 3
    Since FFMPEG is available under the LGPL (i.e., your copyleft source-sharing obligation only extends to direct modifications to FFMPEG itself, not to any application that uses FFMPEG as a library), your title question and final question are quite different. The simplest answer to your final question is: don't release the source code for your application, beyond FFMPEG itself. If you want to release your source, or you are using a GPL library and therefore must, then we must address your title question. – apsillers Dec 28 '17 at 0:30

You can't. As the code is open source, all I need to do is to replace the implementation of isRegistered() in the code with return true;. No need for key gens or anything like that, just remove the check entirely.

You can try to obfuscate the code, but that will only allow me down a bit, not stop me. And because the code is open source, I can distribute my modified version I've I've done that.

Fundamentally, you just can't do what you're trying to do with open source software. Either find another library to use, or cough up the licensing fee.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.