Skip to content

Repository files navigation

Internet Friendly Media Encoder

Internet Friendly Media Encoder

A lightweight, plugin-based multimedia encoder for Windows and Linux.

Latest release GitHub downloads SourceForge downloads License Platform .NET Framework

Language: English | 日本語 | 简体中文 | Bahasa Malaysia

IFME user interface


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

Source Notes
SourceForge Always current — the recommended download
GitHub Releases Usually current
VideoHelp Third-party mirror
SoftPedia Third-party mirror

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.

Format support

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

Source code and binaries GPL-2.0
Mascots and artwork CC BY-NC 4.0 — drawn by 53C and adeq, property of the IFME Project

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.

About

Powerful x264, x265, x266 and AV1 GUI encoder. Every codec is a drop-in plugin you can update or replace yourself. Also remuxes, merges streams, burns or embeds subtitles, and supports NVENC, Quick Sync and AMF. Windows and Linux, GPL-2.0.

Topics

Resources

Stars

290 stars

Watchers

24 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages