what is FFmpeg?

2019-04-02 19:34发布

问题:

I am using the LINK to take frame from video ..but it says to create a commercial project that decodes H264 video, we have to make sure that we get a license from MPEG LA. Why should we get license?some tutorials say that we have to give complete source code to LGPL , if we integrate statically FFMPEG.what is mean by statically? what is the other option?can we submit our App to Appstore(for storing video streams in server) without getting license from LGPL?i am getting confused? any help please?

回答1:

There are multiple issues going on; the first is your legal right to use the FFMpeg code specifically. This code is governed by the license chosen by the FFMpeg developers, and they have portions with GPL and portions with LGPL embedded. If you compile with the GPL-licensed portions, then the entirety becomes GPL, and you must either distribute the source code for FFMpeg OR offer to make it available for three years. If you link your code against FFMpeg, then you must also provide your source code OR offer to make it available for three years.

If you disable the GPL portions, then you do not need to provide source code for your project, and you only need to provide FFMpeg source code if you modify the LGPL-portions of FFMpeg.

BUT, this is only to abide by the copyright on FFMpeg. You also must comply with the intellectual property of the algorithms inside FFMpeg. This means in the United States and most other countries you must license the underlying algorithms from the organizations that patented the algorithms. E.g., if you use FFMpeg to decode MPEG2 Layer 3 data, then you must license MP3 support from Fraunhofer or one of their licensees. They may or may not place restrictions on the source code that is legal to use their intellectual property.

There are probably dozens of patents on technology in FFMpeg across dozens of patent offices from countries around the world. Which is why a lot of companies buy their source (and licenses!) from a single source, to avoid the complication of licensing agreements in every country where you will have a user and a license holder has registered an intellectual property through the local patent office.



回答2:

MPEG LA is a company that holds patent pools for several video related technologies.

FFMPEG is an actual implementation of a lot of video related technologies, which a.o. is licensed under the LGPL.

If you want to use FFMPEG to work with H264, you have to deal with both the FFMPEG licenses and the MPEG LA-held patent. The FFMPEG license will require you to redistribute FFMPEG source, whereas using H264 in any form will require you to pay for a license from MPEG LA.



回答3:

  1. FFMpeg is an open-source library, more information about this here http://www.ffmpeg.org/
  2. If you want to include libraries into your iPhone projects static linking is the only allowed way of doing this. If you do not know the differences between static and dynamic linking, ask Google.
  3. LGPL is just a type of software license, not a legal entity. AFAIK a library published under GPL can only be used if the end product is also licensed under GPL and is open-source. LGPL code can be used in closed-source projects, too if one includes the licence text in the software.
  4. I am not a lawyer, but if you do not encode H.264 you do not have to pay any license fees at all to the MPEG LA.
  5. Yes, linking ffmpeg into your projects is "app store compatible".

EDIT

As Theo pointed out in the comments, point 2 is wrong. This would render FFmpeg incompatible with the iPhone as no dynamic linking is allowed.



回答4:

I am not a lawyer, but my interpretation of this is:

One of the intents of the LGPL is to allow the distribution of pre compiled binaries, but in such a way that substitutability is possible: LGPL preserves the right of the end user to swap a LGPL library for an equivalent library of their own choosing, by rebuilding the library from source or whatever.

This means the only way to be in compliance with LPGL licensed distributions is to release all your source code, OR, bundle the library as a stand alone dynamic library.

As iPhone software is required to use libraries statically linked, it doesn't seem possible to use LGPL libraries in AppStore Apps unless you also make your entire app source available - or enough of it such that users could re-link it with their own implementation of said library.



回答5:

it is like an command line any to any video/image converter that can be extended to support as many media codecs as there are , for an instance you upload an video in some format to your site , you can convert it to flv or mp4 or any format u wish to support and host it just like you tube doing ...

http://www.ffmpeg.org/ffmpeg-doc.html check this for all possible functionality