Format kontainer

**Format kontainer** (; secara informal sering disebut *wrapper*) atau *metafile* adalah jenis format berkas yang memungkinkan beberapa aliran data digabungkan ke dalam satu berkas. Biasanya, format ini juga menyertakan metadata yang berfungsi untuk mengidentifikasi serta menjelaskan isi dari setiap aliran data tersebut.

Contoh format kontainer yang umum dikenal antara lain berkas arsip seperti format ZIP, dan format yang digunakan untuk pemutaran multimedia, misalnya Matroska, MP4, dan AVI. Beberapa format kontainer lintas platform yang paling awal dikembangkan mencakup *Distinguished Encoding Rules* dan *Interchange File Format* yang diperkenalkan pada tahun 1985.

## Desain
Walaupun format kontainer dapat menunjukkan cara penyimpanan serta identifikasi data atau metadata, format ini tidak menjelaskan mekanisme untuk mendekode data tersebut. Perangkat lunak yang mampu membuka sebuah kontainer tetap harus dilengkapi dengan *codec* yang sesuai agar isinya dapat dibaca. Apabila algoritma yang diperlukan tidak tersedia, data di dalam kontainer tidak dapat dimanfaatkan. Dalam situasi demikian, perangkat lunak umumnya menampilkan pesan kesalahan yang menginformasikan ketiadaan *codec*, yang dalam beberapa kasus dapat dipasang atau diperoleh oleh pengguna.

Pada dasarnya, format kontainer dapat digunakan untuk membungkus berbagai jenis data. Meskipun terdapat beberapa format yang bersifat lebih umum, misalnya berkas DLL pada Microsoft Windows, sebagian besar format kontainer dirancang untuk kebutuhan data tertentu. Dalam ranah multimedia, aliran audio dan video dapat dikodekan serta didekodekan menggunakan beragam algoritma. Oleh karena itu, format kontainer berperan sebagai wadah yang menyatukan berbagai aliran tersebut sehingga bagi pengguna perangkat lunak pemutaran multimedia, semuanya disajikan sebagai satu berkas terpadu.

### Pertimbangan
Perbedaan antarformat kontainer terutama ditentukan oleh lima aspek utama:

* Tingkat popularitas, yaitu sejauh mana format tersebut didukung secara luas oleh berbagai sistem, aplikasi, dan perangkat.
* *Overhead* berkas, yakni perbedaan ukuran berkas yang muncul ketika konten yang sama disimpan dalam format kontainer yang berbeda.
* Kemampuan mendukung fitur *codec* tingkat lanjut. Format lama seperti AVI tidak menyediakan dukungan bawaan untuk fitur modern, seperti B-frame, audio dengan laju bit variabel (VBR), atau video dengan laju bingkai variabel (VFR). Upaya penambahan fitur ini sering kali menimbulkan kendala kompatibilitas.
* Dukungan terhadap konten lanjutan, misalnya pembagian bab, subtitel, meta-tag, serta data tambahan dari pengguna.
* Dukungan untuk pengaliran media (*media streaming*), yaitu seberapa baik format kontainer tersebut digunakan untuk distribusi dan pemutaran media secara daring.

## Format kontainer multimedia
Berkas kontainer digunakan untuk mengidentifikasi dan menyusun (*interleave*) berbagai jenis data dalam satu berkas. Format kontainer yang sederhana mungkin hanya mendukung beberapa jenis audio, sedangkan format yang lebih canggih dapat menampung banyak aliran audio dan video, subtitel, informasi bab, serta metadata (*tag*), berikut informasi sinkronisasi yang diperlukan agar seluruh aliran dapat diputar secara serempak. Dalam kebanyakan kasus, tajuk berkas, sebagian besar metadata, dan unit sinkronisasi ditentukan oleh format kontainer itu sendiri. Berbagai kontainer dirancang untuk kebutuhan yang berbeda, misalnya, format yang dioptimalkan untuk pengaliran video internet berkualitas rendah berbeda dengan format untuk pemutaran Blu-ray berkualitas tinggi.

Komponen struktural dalam format kontainer memiliki beragam sebutan, seperti *chunk* (pada RIFF dan PNG), *atom* (pada QuickTime/MP4), *packet* (pada MPEG-TS, mengadopsi istilah dari bidang komunikasi), dan *segment* (pada JPEG). Isi utama dari sebuah *chunk* disebut *data* atau *payload*. Sebagian besar format kontainer menyusun *chunk* secara berurutan, masing-masing dengan tajuk, sementara format seperti TIFF menggunakan penyimpanan *offset*. Struktur modular berbasis *chunk* memudahkan pemulihan sebagian data ketika terjadi kerusakan berkas, bingkai yang hilang, atau *bit slip*, sedangkan desain berbasis *offset* lebih rentan terhadap kesalahan pembingkaian dalam kondisi tersebut.

Beberapa format kontainer dikhususkan hanya untuk audio, antara lain:

* AIFF (berbasis format berkas IFF, banyak digunakan pada macOS)
* WAV (berbasis format berkas RIFF, banyak digunakan pada Windows)
* XMF (Extensible Music Format)

Format kontainer lain dikhususkan untuk citra diam, seperti:

* FITS (Flexible Image Transport System) untuk citra, data mentah, dan metadata
* TIFF (Tag Image File Format) untuk citra statis dan metadata
* PICT (sumber daya PICT Macintosh), yang sebagian besar telah digantikan oleh PDF di macOS
* WMF/EMF (Windows Metafile/Enhanced Metafile)
* EPS (Encapsulated PostScript)
* CGM (Computer Graphics Metafile)
* PDF (Portable Document Format)
* CDR (Corel Draw File)
* SVG (Scalable Vector Graphics)
* RTF (Rich Text Format)

Format kontainer yang lebih fleksibel dapat menampung berbagai jenis media, termasuk audio, video, dan data lainnya. Kontainer multimedia yang banyak digunakan meliputi:

* 3GP (umum pada perangkat seluler; berbasis ISO Base Media File Format)
* ASF (digunakan untuk Microsoft WMA dan WMV)
* AVI (kontainer standar Windows, berbasis RIFF)
* DVR-MS (format perekaman video digital Microsoft, berbasis ASF)
* FLV/F4V (kontainer Flash Video dari Adobe)
* IFF (salah satu format kontainer lintas platform paling awal)
* Matroska (MKV) (standar terbuka yang dapat memuat hampir semua jenis *codec*)
* MJ2 (Motion JPEG 2000, berbasis ISO Base Media File Format)
* QuickTime File Format (kontainer video standar dari Apple)
* MPEG Program Stream (digunakan untuk MPEG-1 dan MPEG-2 pada media yang andal, seperti DVD)
* MPEG-2 Transport Stream (MPEG-TS) (digunakan untuk penyiaran digital dan video Blu-ray Disc)
* MP4 (kontainer standar untuk multimedia MPEG-4, diturunkan dari format QuickTime)
* Ogg (kontainer untuk format Xiph.org seperti Vorbis, Opus, dan Theora)
* RM (RealMedia untuk RealAudio dan RealVideo)
* WebM (kontainer berbasis Matroska untuk media web, mendukung *codec* bebas royalti)

Selain itu, masih banyak format kontainer lainnya, seperti NUT, MXF, GXF, ratDVD, SVI, VOB, dan DivX Media Format.

## Referensi