Um die VideoLAN Lösung komplett zu verstehen, müssen Sie den Unterschied zwischen einem Codec und einem Container-Format kennen. Ein Codec ist ein Kompressionsalgorithmus, der zur Reduzierung der Größe eines Streams benutzt wird. Es gibt Ton- und Bildcodecs. MPEG-1, MPEG-2, MPEG-4, DivX, usw. sind Codecs. Ein Container-Format enthält einen oder mehrere Streams, die bereits von einem Codec kodiert worden sind. Sehr oft gibt es einen Bild- und einen Tonstream. AVI, Ogg, MOV, ASF, usw. sind Container-Formate. Die enthaltenen Streams können mit unterschiedlichen Codecs kodiert worden sein. In einer perfekten Welt könnten Sie jeden Codec in jedes Container-Format legen. Leider gibt es einige Inkompatiblitäten. Sie können eine Matrix von möglichen Codecs und Containerformaten auf der Featuresseite finden. Um einen Stream zu dekodieren, demultiplext VLC ihn erst. Das bedeutet, dass es das Containerformat liest und Ton, Bild und Untertitel trennt, wenn welche vorhanden sind. Danach wird jeder davon durch Dekoder geleitet, die die mathematischen Vorgänge zur Dekomprimierung ausführen . MPEG ist ein spezieller Fall: MPEG ist ein Codec. Es gibt mehrere Versionen davon, genannt MPEG-1, MPEG-2, MPEG-4... MPEG ist außerdem ein Containerformat, manchmal bezeichnet als MPEG System. Es gibt mehrere Typen von MPEG: ES, PS und TS Wenn Sie ein MPEG-Video beispielsweise von einer DVD abspielen, besteht der MPEG-Stream aus mehreren Streams ('Elementare Streams'/'ES' genannt): es gibt einen für Bild, einen für Ton, einen weiteren für Untertitel, usw. Diese unterschiedlichen Streams sind in einen einzelnen 'Program Stream' (PS) zusammengemischt. Die .VOB-Dateien, die Sie auf einer DVD finden, sind tatsächlich MPEG-PS-Dateien. Aber dieses PS-Format ist nicht für das Streamen von Videos bespielsweise über ein Netzwerk oder Satellit ausgelegt, sodass ein anderes Format, namens 'Transport Stream' (TS) für das Streamen von MPEG-Videos über solche Kanäle designed wurde.