预置的Windows电子二进制文件包括文件ffmpeg.dll。如何确定实际编译的基础ffmpeg库的哪个版本来生成此dll?我需要这些信息,以了解已知的漏洞(CVE,等等)可能是在一个给定版本的电子通过ffmpeg。
据我所知,在下载依赖项(我使用的是https://github.com/electron/nightlies/releases/ )时,ffmpeg dll本身就是从electron-prebuilt-compile中提取的。但是我没有弄清楚那个二进制的来源是什么。我认为它可能来自党/联谊会/,但我不清楚该回购与原始的ffmpeg回购的关系(例如,从ffmpeg回购到铬第三方回购的修复合并的频率,等等)。
我试着按照cody的建议搜索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发布于 2019-06-12 18:12:55
我花了几天时间来研究这个问题,基于这段时间,这就是我想出来的。
电子版本指定了他们正在使用的铬的版本,并且Chromium有一个FFMPEG的分叉,它从源代码中构建FFMPEG来生成用于Windows的电子版本的ffmpeg.dll文件。我从电子版本中跟踪了FFMPEG的粗略版本,步骤如下:
v5.0.3)DEPS文件,并复制chromium_versionDEPS文件,并搜索src/third_party/ffmpeg41268576ad9a8b760287101f4f58d0ef468798af)RELEASE文件以获得FFMPEG版本(较小的版本,末尾为.git,例如4.1.git)ffmpeg.dll没有版本的原因似乎是因为它是由Chromium从源代码中构建的。
发布于 2018-12-28 20:12:40
使用strings搜索它,它是GNU binutils的一部分,也可以作为Sysinternals效用在Windows上使用。
它似乎只是遵循模式FFmpeg version x.x,如下面所示,我在其中搜索作为4.1 共享版本构建 for 共享版本构建的一部分的avcodec.dll:
$ strings avcodec-58.dll | grep 'FFmpeg version'
FFmpeg version 4.1https://stackoverflow.com/questions/53963672
复制相似问题