gpt4 book ai didi

ffmpeg - 基于 Electron 框架 (libffmpeg) 发布应用程序的法律问题

转载 作者:行者123 更新时间:2023-12-04 11:39:33 43 4
gpt4 key购买 nike

我们正在 electron v 12.0.7 上构建和部署基于桌面的应用程序。它将是一个(免费)商业软件,部署给全局约 2-3M 用户。
最近我们的法律团队询问了与 Chrome 捆绑的专有编解码器,我认为确认这一点的最佳方法是联系这里。
所以,这里有一些我需要帮助的具体事情:

  • 我们是否使用专有编解码器运送 Chrome ?如果是,那么在与 electron v 12.0.7 捆绑的 Chromium 中默认提供的潜在有争议的编解码器是什么?
  • 有没有关于 Electron 团队如何构建 Chrome (带有什么标志)的文档?
  • 默认的 libffmpeg.dylib/dll 是否与 Electron 构建 ffmpeg 捆绑在一起,支持 H.264 和 MP3 编解码器之类的东西?
  • 我注意到每个 Electron 版本都有可用的 libffmpeg 二进制文件,例如https://github.com/electron/electron/releases/download/v12.0.7/ffmpeg-v12.0.7-darwin-arm64.zip .这个二进制文件的目的是什么?

  • 任何帮助,将不胜感激。

    最佳答案

    好的,花了一段时间才彻底了解了那里的所有信息。
    我从 https://github.com/electron/libchromiumcontent/issues/174#issuecomment-184187254 开始最后在 Electron 的不和谐服务器上与 Electron 团队的多个人交谈。我在这里整理我的发现,以便为某人节省一些时间。
    这是我发现的。任何更正/编辑都非常受欢迎,因此此处提供的信息是正确的。

  • 我们是否使用专有编解码器运送 Chrome ?
    如果是,那么在与 electron v 12.0.7 捆绑的 Chromium 中默认提供的潜在有争议的编解码器是什么?

  • .至少在 OSX 上, libffmpeg.dylib 默认情况下,electron 包含用于 AAC 和 H264 的导出符号(用于专有解码器)。 因此,它们仍处于非免版税软件领域。 如果您打算将您的应用程序商业化(使用默认 Electron + libffmpeg.dylib),我认为这里需要法律建议
    例如可以使用以下命令查看从 dylib 导出的解码器列表:
    nm -gU /Applications/{your-app-name}.app/Contents/Frameworks/Electron\ Framework.framework/Versions/A/Libraries/libffmpeg.dylib | grep 'decoder'
    我编写了一个简单的 python 脚本来查看任何基于 Electron 的应用程序,并打印 libffmpeg 中可用的解码器列表(捆绑在基于 Electron 的应用程序中)。
    我的脚本的示例输出:(我的应用程序是使用 Electron v 12.0.7 构建的)

    Decoders available/exported from libffmpeg.dylib: ['aac', 'aac-latm','flac', 'h264', 'libopus', 'mp3', 'pcm-alaw', 'pcm-f32le','pcm-mulaw', 'pcm-s16be', 'pcm-s16le', 'pcm-s24be', 'pcm-s24le','pcm-s32le', 'pcm-u8', 'theora', 'vorbis', 'vp3', 'vp8']


    所以我们肯定有 瑞声 h264 解码器(非免版税软件)默认使用我们基于 Electron 的应用程序。据我所知,这些可能会导致可能的专利侵权问题。
    2. 有没有关于 Electron 团队如何构建 Chromium 的文档(带有哪些标志)?
    除了 https://github.com/electron/electron/blob/58c58c46c4e03c996983a0c71163e1a5efed12fa/build/args/all.gn,我找不到任何确凿的文件。提示默认情况下,专有编解码器在 Electron 的构建中设置为 true
    3. 默认的 libffmpeg.dylib/dll 是否与 Electron 构建 ffmpeg 捆绑在一起,支持 H.264 和 MP3 编解码器之类的东西?
    看起来确实是这样(基于上述)
    4. 我注意到每个 Electron 版本都有可用的 libffmpeg 二进制文件,例如https://github.com/electron/electron/releases/download/v12.0.7/ffmpeg-v12.0.7-darwin-arm64.zip .这个二进制文件的目的是什么?
    如果您关心发布免版税二进制文件而不处理专利问题,那么这可能是您应该使用的(除非您选择通过自己调整 gn args 来构建整个 Electron )。
    对这些 ffmpeg.dylib 的快速检查表明不存在 AAC 和 H264 解码器(或者至少它没有为它们导出符号)。所以它让我相信这些自定义版本的 dylib 是由 Electron 团队构建的,牢记这一点。使用相同的脚本,这是 libffmpeg 的自定义版本中可用的解码器列表的输出

    Decoders available/exported from libffmpeg.dylib: ['flac', 'libopus','mp3', 'pcm-alaw', 'pcm-f32le', 'pcm-mulaw', 'pcm-s16be', 'pcm-s16le','pcm-s24be', 'pcm-s24le', 'pcm-s32le', 'pcm-u8', 'theora', 'vorbis','vp3', 'vp8']


    所以这就是 dylib 两个版本的区别(左边一个是从 Electron 站点下载的,右边一个是 Electron 默认自带的)
    enter image description here
    看来这个问题已经被确定了,我们有一个 Electron 打包器插件,可以为您完成所有繁重的工作: https://github.com/MarshallOfSound/electron-packager-plugin-non-proprietary-codecs-ffmpeg
    由于我们不使用 Electron 打包器(但 Electron 生成器),我不得不求助于将替换 libffmpeg 的逻辑放入 afterPackHook
    : https://www.electron.build/configuration/configuration#afterpack
    要记住的重要步骤是:这种替换需要在我们对整个应用程序进行代码签名之前完成(否则它会破坏代码签名的完整性)。
    希望它可以帮助其他人解决同样的问题。
    干杯!

    关于ffmpeg - 基于 Electron 框架 (libffmpeg) 发布应用程序的法律问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67799370/

    43 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com