用于Windows的预构建电子二进制文件包含文件ffmpeg.dll
。我如何确定实际编译底层ffmpeg库的哪个版本来生成该dll?我需要这些信息来了解通过ffmpeg在给定版本的电子中可能存在哪些已知漏洞(CVE等)。
据我了解,当我下载依赖项时(我正在使用electron-prebuilt-compile
),ffmpeg dll本身取自https://github.com/electron/nightlies/releases/。但是我不清楚该二进制文件的来源是什么。我认为可能来自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:\projects\libchromiumcontent\src\out-x64\static_library\ffmpeg.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
答案 0 :(得分:1)
使用strings
搜索它,它是GNU binutils
的一部分,或者在Windows上以Sysinternals utility的形式提供。
看起来它只是遵循模式FFmpeg version x.x
,如下所示,在其中搜索Windows的4.1 shared release build的一部分avcodec.dll
:
$ strings avcodec-58.dll | grep 'FFmpeg version'
FFmpeg version 4.1
答案 1 :(得分:1)
我花了几天的时间自己解决这个问题,根据这段时间,我想到了这一点。
Electron版本指定了他们正在使用的Chromium版本,而Chromium具有FFMPEG的一个分支,可从源代码构建它来生成ffmpeg.dll
文件,该文件将转到Windows的Electron构建。我通过以下步骤从电子版本中找到了FFMPEG的粗略版本:
v5.0.3
)DEPS
文件,然后复制chromium_version
DEPS
文件,并搜索src/third_party/ffmpeg
41268576ad9a8b760287101f4f58d0ef468798af
)RELEASE
文件以获取FFMPEG版本(次要版本,结尾为.git
,例如4.1.git
)似乎ffmpeg.dll
没有版本的原因是因为它是由Chromium从源代码构建的。