1. Apa Itu Format Audio iLBC?
The Internet Low Bitrate Codec awalnya dibuat oleh Global IP Solutions (GIPS)—sebuah perusahaan rekayasa audio Swedia yang diakuisisi oleh Google pada tahun 2010. Didefinisikan oleh Internet Engineering Task Force dalam RFC 3951 dengan enkapsulasi payload RTP yang dijelaskan dalam RFC 3952, iLBC dirancang khusus untuk transmisi suara yang kuat melalui tautan IP yang tidak stabil.
Sementara peramban web modern sering menggunakan codec Opus untuk komunikasi real-time terkini, iLBC tetap menjadi standar penting yang bebas royalti dan tertanam dalam tumpukan teleponi perusahaan, klien SIP, profil kompatibilitas mundur WebRTC, serta perangkat VoIP warisan yang diproduksi oleh Cisco, Polycom, dan sistem PBX Asterisk.
2. Karakteristik Utama iLBC
| Parameter | Spesifikasi |
|---|---|
| Standardisasi | IETF RFC 3951 (Codec), RFC 3952 (Payload RTP) |
| Ekstensi File Umum | .ilbc, .lbc |
| Tipe Media MIME | audio/iLBC |
| Frekuensi Sampling | $8\text{ kHz}$ (Narrowband) |
| Resolusi Kuantisasi | PCM linear 16-bit |
| Saluran Audio | Mono (Ucapan saluran tunggal) |
| Panjang Frame yang Didukung | $20\text{ ms}$ mode dan $30\text{ ms}$ mode |
| Bitrate Operasional | $15.20\text{ kbit/s}$ ($20\text{ ms}$) / $13.33\text{ kbit/s}$ ($30\text{ ms}$) |
| Bit Muatan Per Blok | $304\text{ bits}$ ($20\text{ ms}$) / $400\text{ bits}$ ($30\text{ ms}$) |
| Pengidentifikasi Header Ajaib | #!iLBC20\n ($20\text{ ms}$) or #!iLBC30\n ($30\text{ ms}$) |
| Lisensi | Tanpa Royalti (sumber terbuka BSD 3-klausul melalui WebRTC) |
3. Fitur Mendalam & Desain Arsitektur
Enkoding Frame Independen (Propagasi Kesalahan Nol)
Format kompresi suara tradisional seperti G.729 dan codec keluarga CELP menggunakan prediksi antar‑frame, di mana setiap frame audio bergantung pada informasi status dan vektor prediktor pitch dari frame sebelumnya. Jika sebuah paket hilang pada jaringan yang padat, status yang hilang tersebut menyebar ke depan, menyebabkan audio hilir rusak selama beberapa ratus milidetik.
iLBC menghilangkan ketergantungan ini. Setiap frame suara dalam iLBC dienkode secara independen. Jika paket $N$ hilang selama transmisi, paket $N+1$ akan didekode dengan fidelitas akustik penuh.
Mode Operasi Ganda ($20\text{ ms}$ vs. $30\text{ ms}$)
Untuk memberikan insinyur telekomunikasi manajemen latensi yang fleksibel, iLBC mendefinisikan dua mode operasi wajib:
- $20\text{ ms}$ Mode Frame ($15.20\text{ kbit/s}$):
- Menyandi 160 sampel audio per frame menjadi 38 byte ($304\text{ bits}$).
- Memberikan latensi buffering algoritmik yang lebih rendah, menjadikannya sangat cocok untuk komunikasi interaktif.
- $30\text{ ms}$ Mode Frame ($13.33\text{ kbit/s}$):
- Menyandi 240 sampel audio per frame menjadi 50 byte ($400\text{ bits}$).
- Mengurangi konsumsi bit sekitar $12%$, mengoptimalkan efisiensi muatan jaringan pada koneksi jarak jauh.
Penyembunyian Kehilangan Paket Lanjutan (PLC)
Ketika paket yang hilang terjadi, iLBC menggunakan filter sintesis LPC (Linear Predictive Coding) variabel status yang merekonstruksi representasi siklus nada yang hilang menggunakan status batas dari frame tetangga. Alih-alih menghasilkan klik, pop digital, atau mute keras, paket suara yang hilang menurun secara halus.
Kualitas Audio vs. Profil Bitrate
Dalam kondisi jaringan ideal (0% kehilangan paket), iLBC mencapai Skor Opini Rata-rata (MOS) sekitar 4.14 (dari 5.0). Meskipun sedikit di bawah G.711 PCM tak terkompresi ($\mu$-law pada $\sim 4.3$), iLBC mempertahankan kejernihan suara pada tingkat kehilangan paket hingga $5%\text{ to }10%$, di mana keterpahaman G.729 atau G.711 menurun secara signifikan.
4. Cara Membuka dan Memutar File Audio .ilbc
Karena .ilbc adalah format aliran telepon mentah khusus, bukan kontainer media konsumen serbaguna (seperti MP3 atau WAV), pemutar konsumen utama tidak selalu dapat mendeteksinya tanpa paket codec khusus.
Metode 1: Menggunakan Audacity (Impor Data Mentah)
Audacity dapat mengimpor dump PCM mentah atau file suara iLBC yang telah didekode:
- Buka Audacity.
- Arahkan ke File > Import > Raw Data…
- Pilih file dan atur enkoding ke Signed 16-bit PCM, urutan byte ke Little-endian, 1 Channel (Mono), dan laju sampel ke 8000 Hz.
Metode 2: Pemutaran Baris Perintah via FFplay
Jika build FFmpeg Anda dikompilasi dengan ekstensi libilbc:
ffplay -f ilbc sample.ilbc
Metode 3: Analyzer VoIP Khusus
Alat diagnostik jaringan seperti Wireshark dapat mengekstrak dan merekonstruksi payload suara .ilbc langsung dari sesi paket SIP/RTP yang ditangkap dan memutarnya melalui utilitas RTP Player bawaan.
5. Cara Membuat dan Mengonversi File Audio .ilbc
Bekerja dengan audio .ilbc memerlukan audio input 16-bit, satu saluran, $8000\text{ Hz}$.
Pengkodean ke iLBC Menggunakan FFmpeg
Untuk mengonversi sampel audio .wav atau .mp3 yang ada menjadi bitstream .ilbc:
ffmpeg -i input_speech.wav \
-ar 8000 \
-ac 1 \
-c:a libilbc \
output_audio.ilbc
-ar 8000: Mengubah sampel audio ke kecepatan 8 kHz yang diperlukan.-ac 1: Menurunkan campuran audio multi-saluran menjadi mono.-c:a libilbc: Menggunakan encoder referensilibilbc.
Menentukan Mode Frame ($20\text{ ms}$ atau $30\text{ ms}$)
Anda dapat memilih mode frame menggunakan flag -mode:
# Encode using 30ms mode (13.33 kbit/s)
ffmpeg -i input_speech.wav -ar 8000 -ac 1 -c:a libilbc -mode 30 output_30ms.ilbc
# Encode using 20ms mode (15.20 kbit/s)
ffmpeg -i input_speech.wav -ar 8000 -ac 1 -c:a libilbc -mode 20 output_20ms.ilbc
Mendekode File .ilbc Kembali ke WAV Standar
Untuk mengonversi file .ilbc menjadi file WAV tidak terkompresi yang dapat diputar di mana saja:
ffmpeg -f ilbc -i voice_message.ilbc converted_audio.wav
6. Pertanyaan yang Sering Diajukan (FAQ)
Q1: Masalah utama apa yang format audio iLBC dibuat untuk menyelesaikan?
Format iLBC dirancang untuk mempertahankan kejelasan ucapan di jaringan IP dengan membuat setiap frame audio menjadi independen, mencegah kesalahan kehilangan paket menyebar ke frame ucapan berikutnya.
Q2: Apa dua bitrate operasional sebuah file .ilbc?
Aliran .ilbc beroperasi pada $13.33\text{ kbit/s}$ saat menggunakan frame $30\text{ ms}$ atau $15.20\text{ kbit/s}$ ketika dikonfigurasi untuk frame $20\text{ ms}$.
Q3: Apakah format iLBC dapat digunakan untuk streaming musik berfidelitas tinggi?
Tidak, iLBC adalah codec suara pita sempit yang secara ketat terbatas pada laju sampel $8\text{ kHz}$, dioptimalkan secara eksklusif untuk suara manusia antara $90\text{ Hz}$ dan $4000\text{ Hz}$.
Q4: Apakah codec audio iLBC bebas royalti?
Ya, iLBC sepenuhnya distandarisasi di bawah IETF RFC 3951 dan dirilis di bawah lisensi BSD 3 klausa yang bersifat sumber terbuka dan bebas royalti melalui proyek WebRTC.
Q5: Bagaimana iLBC dibandingkan dengan codec Opus modern?
Meskipun iLBC menyediakan penyembunyian kehilangan paket untuk VoIP pita sempit pada jaringan broadband awal, codec Opus modern mendukung bitrate dinamis, audio pita penuh ($48\text{ kHz}$), dan latensi algoritmik yang lebih rendah.
7. Spesifikasi Resmi & Referensi
- Spesifikasi IETF RFC 3951: Standar Suara dan Audio Codec Bit Rate Rendah Internet (iLBC)
- Format Muatan IETF RFC 3952: Format Muatan Protokol Transport Real-time (RTP) untuk iLBC
- Proyek Sumber Terbuka WebRTC: Lisensi Codec WebRTC & Implementasi iLBC
- Dokumentasi Codec FFmpeg: Panduan Integrasi libilbc FFmpeg