Free & MIT Licensed

Audio encode/decode without the ceremony

One IMediaEncoder interface, fully native and in-process. Direct P/Invoke bindings to LAME and libFLAC, managed AAC/WMA encode/decode, and built-in waveform generation — no ffmpeg, no subprocess.

0
External processes
5
Codecs (AAC/FLAC/MP3/WAV/WMA)
MIT
Free forever
.NET 8–10
Supported targets

Install

dotnet add package EggEncoder

Supports net8.0, net9.0, net10.0. Native libmp3lame.dll/libFLAC.dll binaries for win-x64 ship inside the package.

Fully Native

EggEncoder
External processNone
SetupNothing — DLLs ship in the package
Format coverageAAC, FLAC, MP3, WAV, WMA; MOV/MP4 metadata
Sample-accurate cutAny source (incl. WMA) to any dest format — no re-encode of the untouched region

30-Second Quick Start

using EggEncoder;

builder.Services.AddEggEncoder();

// anywhere in the app
public class MediaService(IMediaEncoder mediaEncoder)
{
    public Task<ProbeResult> Inspect(string path) => mediaEncoder.Probe(path);
}

Full Getting Started guide →

Key Features

🎵
Zero External Dependencies

No ffmpeg install, no subprocess — everything runs in-process behind one IMediaEncoder interface.

Native Codec Bindings

Direct P/Invoke to LAME (MP3) and libFLAC — no subprocess, no shell-out overhead.

📊
Built-in Waveform Generation

WaveformCalculator streams normalized peak windows from any decoded block.

Sample-Accurate Cutting

Trim any supported source, into any supported destination format, without a full decode→encode round trip on the untouched region.

🔍
MOV/MP4 Probing

Manual atom-tree walker reads duration, dimensions, and codec four-cc with no native dependency.

🔌
One-Line DI

services.AddEggEncoder() registers IMediaEncoder — no options, no config required.

Links