
What is IFME?
IFME encodes, remuxes and repackages video and audio. It handles subtitles and
font attachments, merges multiple streams into a single file, drops the streams
you do not want, and can pull subtitles straight out of another video without
extracting them first. AviSynth scripts are supported for advanced processing.
What makes it different is that the encoders are not baked in.
Encoders are plugins
Every encoder is described by a JSON manifest in the Plugins folder. IFME
discovers them at startup, so you can update x265, swap in a build tuned for
your own CPU, or add an encoder IFME has never heard of — without waiting for a
new IFME release and without recompiling anything.
{
"GUID": "deadbeef-0265-0265-0265-026502650265",
"Name": "x265 MultiCoreWare (GCC 14.2.0)",
"Version": "4.1+1-32e25ff",
"X64": true,
"Format": [ "mp4", "mkv", "m2ts", "ts" ],
"Author": { "Developer": "MultiCoreWare", "URL": "http://msystem.waw.pl/x265/" },
"Video": { /* presets, tunes, rate-control modes, CLI arguments */ }
}
On startup IFME checks each plugin against your machine, skips ones built for
the wrong architecture, and can test-run each encoder so a broken binary is
caught before you rely on it.
Plugins shipped by default:
| Category |
Encoders |
| Video |
x264, x265, SVT-AV1, uvg266 and vvenc (H.266/VVC), libvpx (VP8/VP9), Xvid, MPEG-1/2, WMV 8 |
| Audio |
Nero AAC, Fraunhofer FDK AAC, exhale (xHE-AAC/USAC), Opus, Ogg Vorbis, FLAC, AC-3, MP2 (TwoLAME), MP3 (LAME), WMA v2, WAV |
| Hardware |
NVENC and Intel Quick Sync via rigaya; NVENC, Quick Sync and AMD AMF via FFmpeg |
| Tools |
FFmpeg (32/64-bit), MP4Box |
Why it still looks like this
The interface is Win32 and GDI+ on purpose. It keeps IFME’s own footprint small
so RAM, CPU cache and threads go to the encoder, which is where they actually
matter. A modern UI stack would cost hundreds of megabytes while x265 is trying
to saturate every core. IFME’s job is to stay out of the encoder’s way.
Download
[!NOTE]
SourceForge always has the newest build. GitHub Releases occasionally lags
behind, and the third-party mirrors are not maintained by this project.
Running it
- Windows — run
IFME.exe
- Linux — run
ifme_linux from a terminal
System requirements
IFME requires a CPU with AVX support. It will refuse to start without it.
AVX2 is strongly recommended; without it you will get a warning at startup
and some encoders will be unavailable.
Windows
Linux
mono-complete (Mono runtime)
[!IMPORTANT]
IFME itself runs on Linux, but the bundled Plugins folder contains Windows
binaries. You will need to build your own ffmpeg, x264, x265 and so on,
and point the plugin manifests at them.
Recommended hardware
|
QHD and below |
UHD and above |
| CPU |
Intel Core i9 (10th gen) or AMD Ryzen 7 3700X |
same or better |
| RAM |
8 GB DDR4 |
16 GB DDR4 |
| Disk |
— |
~70 GB free for UHD/HDR temporary files |
32-bit is no longer supported. High resolutions and high bit depths need more
address space than a 32-bit process can provide.
Video codecs and containers
| Video |
.avi |
.mp4 |
.mkv |
.ts |
.m2ts |
.mpg |
.mpeg |
.webm |
.wmv |
| MPEG-1 |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
|
|
| MPEG-2 |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
|
|
| WMV-2 |
|
|
✅ |
|
|
|
|
|
✅ |
| H.263 |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
|
|
| H.264 |
✅ |
✅ |
✅ |
✅ |
✅ |
|
|
|
|
| H.265 |
|
✅ |
✅ |
✅ |
✅ |
|
|
|
|
| H.266 |
|
✅ |
|
|
|
|
|
|
|
| AV1 |
|
|
✅ |
|
|
|
|
✅ |
|
| VP8 |
|
|
✅ |
|
|
|
|
✅ |
|
| VP9 |
|
|
✅ |
|
|
|
|
✅ |
|
Audio codecs and containers
| Audio |
.avi |
.mp2 |
.mp3 |
.m4a |
.mp4 |
.mkv |
.ogg |
.opus |
.flac |
.wma |
.wav |
| MPEG Layer II |
✅ |
✅ |
|
✅ |
✅ |
✅ |
|
|
|
|
|
| MPEG Layer III |
✅ |
|
✅ |
✅ |
✅ |
✅ |
|
|
|
|
|
| WMA |
|
|
|
|
|
✅ |
|
|
|
✅ |
|
| AAC |
✅ |
|
|
✅ |
✅ |
✅ |
|
|
|
|
|
| AC-3 |
|
|
|
✅ |
✅ |
✅ |
|
|
|
|
|
| OGG |
|
|
|
|
|
✅ |
✅ |
✅ |
|
|
|
| Opus |
|
|
|
|
|
✅ |
|
✅ |
|
|
|
| USAC |
|
|
|
✅ |
✅ |
✅ |
|
|
|
|
|
| FLAC |
|
|
|
|
|
✅ |
|
|
✅ |
|
|
| WAV |
✅ |
|
|
|
|
✅ |
|
|
|
|
✅ |
Hardware acceleration
IFME ships hardware encoding for H.264, H.265 and AV1 through FFmpeg and
rigaya’s NVEncC and QSVEncC.
[!WARNING]
Hardware encoders are much faster, but at a given bitrate a CPU encoder will
almost always look better. If quality per bit matters more than speed, stay on
the CPU encoders.
Building from source
git clone https://github.com/Anime4000/IFME.git
Open IFME.sln in Visual Studio 2022 and build. Newtonsoft.Json is
restored from NuGet automatically.
The solution targets .NET Framework 4.8 (C# 9) and contains:
| Project |
Purpose |
IFME |
WinForms front end and encoding pipeline |
IFME.FFmpeg |
Media probing and parsing |
IFME.OSManager |
Platform abstraction — process control, CPU features, paths |
NDesk.Options |
Command-line parsing |
Contributing
Issues and pull requests are welcome.
Translations are especially appreciated. Language files live in
IFME/i18n as plain JSON — copy en-US.json, translate the
values, and keep the keys and {0} placeholders exactly as they are.
Current translations: English, 日本語, 简体中文, Bahasa Malaysia.
License
[!IMPORTANT]
Multimedia codecs may be covered by patents in your jurisdiction, and using
them may require royalty payments. Please read PATENTS.md
before installing.
Support the project
IFME is free and developed in spare time. If it saves you effort, a small
donation helps keep it maintained.
Donate via PayPal
If you donate, let me know on
Facebook or
Twitter and you will be credited in the
Hall of Fame and in the program’s About screen.
Background
IFME started in 2011, when I was a college student trying to compress FRAPS game
recordings with x264 for archiving. Friends liked how simple and light it was,
and that turned into the Internet Friendly Media Encoder.
It has been maintained ever since — the plugin system arrived so that the
encoders could keep moving forward without the application having to be rewritten
each time.
评论