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

时间:2018-12-28 19:52:47

标签: ffmpeg electron

用于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

2 个答案:

答案 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的粗略版本:

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