电子中捆绑了什么版本的ffmpeg?

  • 本文关键字:版本 ffmpeg ffmpeg electron
  • 更新时间 :
  • 英文 :


Windows的预构建电子二进制文件包括文件ffmpeg.dll。 如何确定实际编译的基础 ffmpeg 库的哪个版本以生成此 dll? 我需要这些信息来了解通过ffmpeg的给定版本的电子中可能存在哪些已知漏洞(CVE等)。

据我了解,ffmpeg dll 本身是在我下载依赖项时从 https://github.com/electron/nightlies/releases/中获取的(我使用的是electron-prebuilt-compile)。 但我不清楚该二进制文件的来源是什么。我认为它可能来自 https://chromium.googlesource.com/chromium/third_party/ffmpeg/但后来我不清楚该存储库与原始 ffmpeg 存储库的关系(例如,修复程序从 ffmpeg 存储库合并到铬第三方存储库的频率等)

我尝试按照科迪的建议搜索 dll 的内容,但没有运气:

$ strings ffmpeg.dll  | grep -i ffmp
FFmpeg video codec #1
Huffyuv FFmpeg variant
Not yet implemented in FFmpeg, patches welcome
C:projectslibchromiumcontentsrcout-x64static_libraryffmpeg.dll.pdb
ffmpeg.dll

$ strings ffmpeg.dll  | grep -i version
H.263 / H.263-1996, H.263+ / H.263-1998 / H.263 version 2
MPEG-4 part 2 Microsoft variant version 1
MPEG-4 part 2 Microsoft variant version 2
MPEG-4 part 2 Microsoft variant version 3
H.263+ / H.263-1998 / H.263 version 2
On2 VP6 (Flash version)
On2 VP6 (Flash version, with alpha channel)
old standard qpel (autodetected per FOURCC/version)
direct-qpel-blocksize bug (autodetected per FOURCC/version)
edge padding bug (autodetected per FOURCC/version)
strictly conform to a older more strict version of the spec or reference software
minor_version
premiere_version
quicktime_version
Assume this x264 version if no x264 version found in any SEI

我自己花了几天时间研究这个问题,基于这段时间,这就是我想出的。

Electron版本指定了他们正在使用的Chromium版本,Chromium有一个FFMPEG分支,它从源代码构建以生成ffmpeg.dll文件,该文件转到Windows的Electron构建。 我通过以下步骤从Electron的一个版本中追踪了FFMPEG的粗略版本:

  • 转到 https://github.com/electron/electron 并找到所需的版本标记(例如v5.0.3)
  • 查看DEPS文件,并复制chromium_version
  • 转到 https://chromium.googlesource.com/chromium/src.git/+/refs/tags/[chromium_version](例如 https://chromium.googlesource.com/chromium/src.git/+/refs/tags/76.0.3809.22)
  • 查看DEPS文件,并搜索src/third_party/ffmpeg
  • 复制下一行末尾的 Git 提交哈希(例如41268576ad9a8b760287101f4f58d0ef468798af)
  • 转到 https://chromium.googlesource.com/chromium/third_party/ffmpeg/+/[ffmpeg_commit](例如 https://chromium.googlesource.com/chromium/third_party/ffmpeg/+/41268576ad9a8b760287101f4f58d0ef468798af)
  • 查看RELEASE文件以获取FFMPEG版本(次要版本,末尾有.git,例如4.1.git)
  • 要获得(可能)更好的版本到补丁级别,请将提交日期与最接近时间戳匹配的 https://ffmpeg.zeranoe.com/builds/win32/static/进行比较

似乎ffmpeg.dll没有版本的原因是因为它是由 Chromium 从源代码构建的。

使用strings搜索它,它是 GNUbinutils的一部分,或在 Windows 上作为 Sysinternals 实用程序提供。

它似乎只是遵循模式FFmpeg version x.x,如下所示,我在其中搜索作为 Windows 4.1 共享发布版本一部分的avcodec.dll

$ strings avcodec-58.dll | grep 'FFmpeg version'
FFmpeg version 4.1

相关内容

最新更新