Per comprendere pienamente la soluzione VideoLAN, è necessario comprendere la differenza fra un codec e un container format
Un codec consiste in un algoritmo di compressione, usato per ridurre la dimensione di uno stream. Esistono codec audio e video. MPEG-1, MPEG-2, MPEG-4, Vorbis, DivX,... sono tutti dei codec.
Un container format contiene uno o più stream già codificati dai codec. Molto spesso vi si possono trovare uno stream audio ed uno video. AVI, Ogg, MOV, ASF,... sono tutti dei container format. Gli stream in esso contenuti possono essere codificati per mezzo di differenti codec. In teoria si dovrebbe poter utilizzare qualsivoglia codec in qualunque container format. Purtroppo esistono alcune incompatibilità. è possibile trovare una matrice di possibili codec e container format nella pagina delle caratteristiche.
Per decodificare uno stream, VLC prima lo demultiplexa. Ciò significa che ne legge il container format e separa audio, video e, se presenti, i sottotitoli. Quindi ciascuno di questi viene passato ai decoder che effettuano il processo matematico per decomprimere gli stream.
Ci sono alcune considerazioni da fare circa MPEG:
MPEG è un codec. Ne esistono diverse versioni, dette MPEG-1, MPEG-2, MPEG-4,...
MPEG è altresì un container format, talvolta riferito come MPEG System. Esistono diversi tipi di MPEG: ES, PS e TS.
Quando si riproduce un video MPEG da un DVD, per esempio, lo stream MPEG risulta in realtà composto da diversi stream (detti Stream Elementari, ES): si ha uno stream per il video, uno per l'audio, un altro per i sottotitoli, e così via. Questi stream diversi sono mescolati insieme in un unico Program Stream (PS). Dunque, i file .VOB che si trovano nei DVD sono in realtà dei file MPEG-PS. Questo formato PS non è adatto però allo streaming video attraverso una rete o via satellite, per esempio. A questo scopo, un altro formato detto Transport Stream (TS) è stato progettato per trasmettere stream MPEG attraverso detti canali.