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.