-
Notifications
You must be signed in to change notification settings - Fork 183
Legal ramifications of using proprietary_codecs
#174
Comments
I heavily recommend consulting a lawyer for any legal questions you have - nobody will be able to provide proper legal advice that holds water. However, keep in mind that in Electron, ffmpeg is statically linked (#69). |
@felixrieseberg Could you briefly explain what |
This comment seems to state the opposite:
|
@paulcbetts I'm querying as to exactly how thats possible, all my other research into this seems to indicate that flag does build FFMPEG with those codecs. MP3 support ends up in electron somehow, I'm just trying to find out how? |
@MarshallOfSound It probably uses the codecs built into the OS if they're available |
We can't answer the question, we are not lawyers. However since all possible legal problems are from ffmpeg, I think we can make Electron dynamically linked to it, so if you are concerned about the legal problems, you can just remove it or replace it with a custom build that you believe to be license-safe. |
To build libchromiumcontent we are using the same configuration of ffmpeg as Chrome, which is:
According to Chromium's documentation this results, at the time of this writing, in the following formats being supported:
As @zcbenz said, we can't give legal advice on what including these codecs or support for other formats means for your intended use, you'll have to consult your own legal experts to give you the most relevant information. We hope that gives you enough information to start that conversation though 😀 |
Alongside the media patent issues you should also consider that, with these flags enabled, libchromiumcontent uses the x264 library. x264 is only free under the GNU GPL, otherwise a commercial license is needed. |
Looks like I might well be wrong about the use of x264, I don't see |
@zcbenz would it be possible to get some pointers how you build official releases of Electron so that it becomes possible for consumers to revert the ffmpeg change and build our own flavor without it? |
@bpasero You can find how official releases are built in However it is bit tricky on how to build Electron with a custom build of libchromiumcontent, you need to modify cd /path/to/libchromiumcontent
./script/bootstrap
./script/update
./script/build
./script/create-dist And then make Electron bootstrap with your custom build of libchromiumcontent: # Identify the commit of libchromiumcontent Electron is expecting, see electron/script/lib/config.py:11
LIBCHROMIUMCONTENT_COMMIT='451ea93cc3090f7000f8f0daa4cb84e90ad6c842'
cd /path/to/libchromiumcontent
# Use either win|linux|osx to reference the platform
mkdir -p osx/x64/$LIBCHROMIUMCONTENT_COMMIT
mv libchromiumcontent* osx/x64/$LIBCHROMIUMCONTENT_COMMIT
cd /path/to/electron
# Build with custom libchromiumcontent
./script/bootstrap.py -v -u file:///path/to/libchromiumcontent
./script/build.py -c R
./script/create-dist.py |
We should probably document that stuff somewhere - I'll try to put together a little mini-doc. |
@zcbenz I am trying to follow those build instructions you posted but am stuck with this error during the
Any ideas? |
@MarshallOfSound It is probably because you are not using the correct OS X SDK. The prebuilt binaries are built with Xcode 6.4 and OS X 10.10 SDK. |
This is what I'm going to do:
So for people care about patent issues, they can just download the prebuilt binaries of Electron, and then replace its ffmpeg library with the patent safe one. |
@zcbnez for my understanding: would this mean we would be able to build or download Electron binaries without any dependencies on ffmpeg? (Removing the licensing concerns.) What's the implication thereof - would you lose the ability to play back h.264 content? Any timelines on this please? |
I'm also interested in the solution proposed here to remove some concerns regarding patents for various codecs supported by FFmpeg. Our product isn't displaying any video or audio content so avoiding that whole area would be valuable for our commercial product. |
@zcbenz is the proposed solution to avoid patent concerns likely to be available in the next release of Electron? |
The default prebuilt binaries of Electron will still include the possible proprietary codecs, but it will be very easy to replace the ffmpeg library with one that removes all proprietary codecs, which will also be provided by us. It is hard to say whether the solution would be in next release, but I will put my focus on it. |
@zcbenz: There's a bunch of interest from our legal team, too - we also don't really need any codecs and would rather avoid any concern. If there's anything I/we can do to help, let me know! |
To @xstof comment, @zcbenz Would the version of Electron without FFmpeg binaries and proprietary codecs be capable of picking up OS distributed codecs for playback - or does this essentially break all video decoding support for H.264 and AAC in an Electron application without distributing a custom version of FFMPEG library with licensed codecs. |
@johndeu It is possible by replacing the backend of Chromium's media system with OS's codecs, and it would be huge work, only Chromium team may have the resources to do this but I'm sure they are not interested. |
@zcbenz are you building all Electron releases for all platforms from one machine? Or do you need to have the matching platform for the target release? |
@bpasero We have 3 machines for building Electron, they are Windows, Linux and OS X. |
@zcbenz The chromiumcontent.gypi still has these lines:
Does this mean that by default proprietary codecs are still included into ffmpeg.dll? |
@IlyaBiryukov The codecs shipped with ffmpeg is decided by |
What is the current state of FFmpeg in Electron now? |
I was wondering how the atom / electron team handle the legal issues regarding
proprietary_codecs
in chromium.https://github.com/atom/libchromiumcontent/pull/69/files#diff-2544685f4860e4633fd5747ed88ec2caR6
As far as I am aware this flag tells chromium to build
ffmpeg
with support for things likeH.264
andMP3
codecs. According to ffpmeg's own website the usage of this flag is a grey area at best and against patent laws at worst.If a company decides to use electron to make a marketable product surely this flag being on by default leaves them open to potential legal issues due to codec licensing.
Can someone please confirm the legality around this flag in
libchromiumcontent
.The text was updated successfully, but these errors were encountered: