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.
Install
Supports net8.0, net9.0, net10.0. Native libmp3lame.dll/libFLAC.dll binaries for win-x64 ship inside the package.
Fully Native
| EggEncoder | |
|---|---|
| External process | None |
| Setup | Nothing — DLLs ship in the package |
| Format coverage | AAC, FLAC, MP3, WAV, WMA; MOV/MP4 metadata |
| Sample-accurate cut | Any 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);
}
Key Features
No ffmpeg install, no subprocess — everything runs in-process behind one IMediaEncoder interface.
Direct P/Invoke to LAME (MP3) and libFLAC — no subprocess, no shell-out overhead.
WaveformCalculator streams normalized peak windows from any decoded block.
Trim any supported source, into any supported destination format, without a full decode→encode round trip on the untouched region.
Manual atom-tree walker reads duration, dimensions, and codec four-cc with no native dependency.
services.AddEggEncoder() registers IMediaEncoder — no options, no config required.