Program file

ffmpeg.dll: an Electron app's media library, or a planted copy?

ffmpeg.dll is the audio and video library of Chromium, shipped by Electron and NW.js programs such as Discord, Microsoft Teams, Spotify and Visual Studio Code in their own folders. A copy next to such a program is normal. The name was also used for a trojanized library in the 3CX supply chain attack, so a copy in an odd place or an outdated program needs checking.

Prefer to check it yourself? The manual checks follow.

Program library: safe inside a Chromium-based app's folder

An ffmpeg.dll next to the .exe of a program you installed, surrounded by other Chromium files such as libEGL.dll, libGLESv2.dll and .pak files, belongs to that program. It is not a process: the program loads it to play sound and video. Every Electron or NW.js app has its own copy, so several copies of different sizes are expected.

The file carries no company name or description, so it cannot vouch for itself. In 2023 the genuine installers of 3CXDesktopApp delivered an altered ffmpeg.dll that loaded hidden code. A copy outside a program folder, next to a lone unknown .exe, or in a program its maker has warned about, is a real concern.

Made by
Built from the open source FFmpeg code as part of Chromium; shipped by each Electron or NW.js program's maker
Description in the file
None. The copies collected in a public DLL catalogue report no file version, company or description
Shipped by
Discord, classic Microsoft Teams, Slack, Spotify, Visual Studio Code, RPG Maker MV and MZ games and other Chromium-based programs. In Windows, only inside the Microsoft Edge WebView2 Runtime
Genuine folder
The program's own folder, next to its .exe, often under C:\Users\<you>\AppData\Local\<program>; for WebView2, under Microsoft\EdgeWebView\Application\<version>. Never in System32
Size
About 2 MB to 12 MB across the 6 copies in the public DLL catalogue, in 32-bit and 64-bit builds
Signed by
Depends on the program's maker. Check the signature and compare it with the program's .exe in the same folder
Runs as a process
No. It is a library loaded into the program that uses it
Known abuse
Trojanized inside the signed 3CXDesktopApp installers for Windows (CISA alert, 30 March 2023)

What ffmpeg.dll does

FFmpeg is a widely used open source library for audio and video. Chromium, the engine behind Chrome, builds a cut-down version of it as one file, ffmpeg.dll, holding the decoders and container readers a browser needs. Programs built on Electron or NW.js carry Chromium inside them, and with it their own ffmpeg.dll. Electron publishes a matching ffmpeg build with every release, and the NW.js documentation tells developers they can replace the bundled DLL with their own build to add codecs.

That design is why the file has no fixed identity. Each program's copy comes from its own Chromium release, carries no version or company fields, and may or may not be signed by the program's maker. A file with these traits that is loaded automatically from a program folder at every start is also an attractive target: whoever controls that file runs code inside a trusted, signed program.

About .dll files. A .dll file is a library: it cannot run on its own and is loaded into a program's process. It does not appear in Task Manager under its own name; Process Explorer shows which process loaded it.

How the signed 3CXDesktopApp installer delivered a trojanized ffmpeg.dll that loaded hidden code from d3dcompiler_47.dll
The 3CX case: the right program, the right folder, and still the wrong ffmpeg.dll.

How to check a copy of ffmpeg.dll

Four questions decide it: where the file is, what sits next to it, which program it belongs to, and whether that program is current. The version fields are empty on genuine copies, so they do not help, and a library never shows in Task Manager under its own name.

  1. List every copy and where it sits. Copies in the folders of programs you installed, such as AppData\Local\Discord, Microsoft VS Code or the EdgeWebView folder, are normal. Look closer at copies in Downloads, Desktop, Temp, C:\Users\Public or a folder you do not recognise.
    Get-ChildItem -Path C:\ -Filter ffmpeg.dll -Recurse -ErrorAction SilentlyContinue | Select-Object FullName, Length, LastWriteTime
  2. Look at what sits next to it. A genuine copy lives among the files of a Chromium build: the program's .exe, libEGL.dll, libGLESv2.dll, .pak files and a locales folder. An ffmpeg.dll beside a single unknown .exe and nothing else matches the way planted libraries are side-loaded by a trusted program.
  3. Compare the signature with the program's .exe. Run the command on the DLL and on the .exe in the same folder. When the maker signs its files, both should show Valid and the same signer. A NotSigned DLL is not proof of a fake, because not every maker signs it, but HashMismatch means the file was changed after signing.
    Get-ChildItem "C:\path\to\folder" -Include ffmpeg.dll,*.exe -Recurse | Get-AuthenticodeSignature | Format-Table Path, Status, SignerCertificate -AutoSize
  4. Check that the program is wanted and up to date. Find the program in Settings, Apps, Installed apps. If you never installed it, or it is an old build of an app whose maker has issued a security notice, as 3CX did, the copy needs replacing through the maker's fixed version, not just a scan.
  5. Compare the size and checksum. Use the file check on this page. The 6 copies in the catalogue range from about 2 MB to 12 MB. A match means the file was seen before in some program; no match is not proof of a fake, because each Electron and NW.js release builds its own copy.

These checks tell you whether the file fits the folder it is in. They cannot tell you whether the program's maker shipped a clean file, as the 3CX case showed. For that, the maker's security notices and an updated build decide.

Four checks that tell a program's own ffmpeg.dll from a planted copy: folder, neighbouring files, program and size
The folder and the program decide; the file itself carries no company name to check.

Check your ffmpeg.dll

Choose the ffmpeg.dll you are unsure about. Its SHA-256 and SHA-1 checksums are calculated in your browser and compared with the 6 versions of the file known from a public DLL catalogue.

or drop the file here

The file stays on your computer. Nothing is uploaded: the checksum is computed locally.

Do you need ffmpeg.dll?

Keep every copy inside the programs you use: without it the program stops at start-up or plays no media. A copy that failed the checks above belongs to something you did not choose, and the safe way out is to remove that whole program, not only the DLL.

  1. Leave the copies of your programs alone. An ffmpeg.dll in the folder of Discord, Teams, VS Code or the WebView2 runtime belongs there. Deleting it only breaks that program, and the program's installer would put it back.
  2. Uninstall a program you do not recognise. Open Settings, Apps, Installed apps, find the program the folder belongs to and uninstall it. If there is no uninstaller, as with copies dropped by a download bundle, delete the whole folder, not only ffmpeg.dll.
  3. Replace an affected program with the maker's fixed version. For a program named in a security notice, follow the maker's instructions: uninstall the affected build and install the version the notice names, or move to the replacement it recommends.
  4. Run a Microsoft Defender full scan. Open Windows Security, Virus and threat protection, Scan options, Full scan. Quarantine what it finds. Look at Protection history afterwards for anything found in Downloads, Temp, AppData or Public.
  5. Run the offline scan. Some malware hides while Windows runs. The offline scan restarts the PC and scans before Windows starts. It takes about 15 minutes.
    Start-MpWDOScan
  6. Check what starts with Windows. Open Task Manager, Startup apps, and Task Scheduler. After the scan, disable and remove entries that run a program from AppData, ProgramData, Temp or Public that you do not recognise.

Warning signs

What you seeWhat it means
ffmpeg.dll next to a single unknown .exe, with no other Chromium filesNot a program's media library. It matches a side-loading set: a trusted .exe that loads whatever DLL sits beside it.
An ffmpeg.dll in Downloads, Temp, C:\Users\Public or outside any program folderNo program loads it there. Find out where it came from and scan.
The signature check shows HashMismatchThe file was changed after it was signed. It is not the maker's file as shipped.
The DLL is unsigned while the .exe beside it is signed by the makerWorth a closer look, though some makers do not sign this file. Reinstall the program from its maker and compare again.
The program is an old build its maker has warned aboutThe library may be the problem even in the right folder, as in the 3CX case. Install the fixed version.
Several copies, each in the folder of a program you useNormal. Every Electron and NW.js program ships its own copy.

Documented abuse

One case is documented by a government security agency. It shows the risk is not a fake program, but a real program whose library was changed before it reached users.

MalwareHow it used the fileSource
3CX supply chain attack (3CXDesktopApp for Windows)The vendor's signed Electron installers carried a trojanized ffmpeg.dll in the program folder. When the app started, the altered library read encrypted code from d3dcompiler_47.dll in the same folder and ran it. CISA alert of 30 March 2023.CISA

A copy in the right folder, from a real program, is not automatically clean. Keep Chromium-based apps updated and follow their makers' security notices.

Known versions of ffmpeg.dll

A public DLL catalogue lists 6 versions of ffmpeg.dll, from 0.0.0.0 to 0.0.0.0, by Unknown. Its copies are uploaded by users and not verified, so a checksum match identifies the version, while the digital signature tells you whether the file is genuine. Even a genuine file clears only the file, not the folder: attackers ship genuine libraries next to a program they abuse, so where the copy sits still decides whether it is safe.

Every version with its checksums, and how to fix ffmpeg.dll errors on uGetFix

Questions people ask

Is ffmpeg.dll a virus?

No, the ffmpeg.dll inside Discord, Teams, Spotify, VS Code and other Chromium-based programs is a harmless media library. The name was abused in the 3CX supply chain attack, where a trojanized copy came with the vendor's own installer, so a copy in an unusual folder or an outdated program deserves the checks on this page. A copy among the files of a program you installed and keep updated is the program's own.

Why is ffmpeg.dll flagged by my security software?

Either the copy is really altered, or a detection rule written after cases like 3CX hit a clean file. Look at the folder in the alert. If it is the folder of a program you installed from its maker, reinstall that program and check whether the fresh copy is flagged again; if it is, report it to the maker of your security program. A flagged copy outside any program folder should stay in quarantine.

What was the 3CX ffmpeg.dll attack?

In March 2023 the Windows installers of 3CXDesktopApp, an Electron-based phone and chat program, were found to carry a trojanized ffmpeg.dll. The installers were signed by the vendor, so the file sat in the expected folder. When the app started, the altered library loaded encrypted code from d3dcompiler_47.dll beside it. CISA published an alert on 30 March 2023 and the vendor issued updated builds.

Why does ffmpeg.dll have no company or description?

Chromium builds ffmpeg.dll without the version resource that most Windows programs fill in, so Properties, Details shows empty fields. The copies in the public DLL catalogue all look like that. It is normal for the genuine file, which also means an empty Details tab proves nothing either way: the folder, the neighbouring files and the program decide.

Can I delete ffmpeg.dll?

You can, but the program it belongs to then stops at start-up or loses sound and video, and its next update or reinstall puts it back. Deleting a copy from a program you use gains nothing. If you found one in a folder you do not recognise, remove the whole program or folder and run a Microsoft Defender full scan instead of deleting only the DLL.

Why are there so many copies of ffmpeg.dll on my PC?

Each Electron or NW.js program ships its own copy, built for the Chromium release inside it, and some keep the previous version folder for a while after an update. Five such apps can mean five or more copies of different sizes. That is by design. What matters is that each copy sits among the files of a program you installed.

Is ffmpeg.dll part of Windows?

Not as a system file. The only ffmpeg.dll Microsoft ships with Windows sits inside the Microsoft Edge WebView2 Runtime, in its own version folder, for apps that use WebView2. A copy in System32 or SysWOW64 is not a Windows file and is worth checking: find out which program or download put it there.

Sources

Version data read on Oct 17, 2026.

Questions and experiences

Ask about this page: members and our editors answer. Reading is open; writing needs a free account.

0 comments

…

5,586 members already hereReading, writing, commenting and voting. 0 verified · 311 joined this year