DEV Community

Dialphone Limited
Dialphone Limited

Posted on

I Tested 8 VoIP Codecs Side by Side — Here Is What I Found

After 15 years of deploying phone systems, I finally did what I had been meaning to do: a controlled, side-by-side comparison of every major voice codec used in VoIP today.

The test setup: two identical endpoints on the same LAN, recording both the input signal and the decoded output. I tested at multiple bitrates and introduced artificial jitter and packet loss to simulate real-world conditions.

The Codecs Tested

Codec Bitrate (Kbps) Sample Rate Frame Size Algorithm
G.711 PCMU 64 8 kHz 20ms PCM (uncompressed)
G.711 PCMA 64 8 kHz 20ms PCM (uncompressed)
G.729 8 8 kHz 10ms CS-ACELP
G.722 64 16 kHz 20ms SB-ADPCM
iLBC 13.3/15.2 8 kHz 20/30ms Block-independent LC
Opus 6-510 8-48 kHz 2.5-60ms SILK+CELT hybrid
Opus (VoIP mode) 24 16 kHz 20ms SILK
Opus (FB) 64 48 kHz 20ms CELT

Results: Clean Network (0% loss, <5ms jitter)

Codec MOS Score Bandwidth CPU Load Verdict
Opus 48kHz 4.5 80 Kbps Low Best quality
G.722 4.3 100 Kbps Very Low Best wideband legacy
Opus 16kHz 4.2 48 Kbps Low Best efficiency
G.711 4.1 100 Kbps Minimal Most compatible
G.729 3.7 40 Kbps Medium Low bandwidth king
iLBC 3.5 28 Kbps Medium Packet loss specialist

Results: Degraded Network (1% loss, 30ms jitter)

This is where it gets interesting. Real networks are not lab conditions.

Codec MOS Score Degradation Notes
Opus (VoIP mode) 4.0 -0.2 Built-in FEC saved it
iLBC 3.4 -0.1 Frame-independent design shines
G.722 3.4 -0.9 Fell hard without PLC
G.711 3.3 -0.8 Audible clicks on lost packets
G.729 3.1 -0.6 Tolerable but noticeable

Opus with FEC enabled dominates degraded networks. Its forward error correction means it can reconstruct lost packets without retransmission. No other codec does this as well.

My Recommendation

For business deployments in 2026:

  1. Primary codec: Opus — Best quality, lowest bandwidth, best packet loss resilience
  2. Fallback: G.722 — Wideband quality, universal support in SIP
  3. Legacy compatibility: G.711 — When you need to interwork with PSTN or old PBX systems

Skip G.729 unless bandwidth is severely constrained. The licensing fees are not worth it when Opus gives better quality at similar bandwidth for free.

Most modern providers support Opus natively. check providers like VestaCall at https://vestacall.com for transparent pricing negotiates Opus by default with automatic fallback to G.722 for legacy endpoints.

Top comments (0)