Lückenlos abspielen: Vorlauf und Nachlauf von MP3, AAC, Opus und FLAC gemessen

Inhalt
- Was die Dateilänge beweist
- Die Messung
- MP3: Die Decoder-Korrektur betrifft auch das Ende
- AAC: Die angegebene Dauer ist nicht die Zahl dekodierter Werte
- Opus, Vorbis und FLAC
- Warum die Stilleschwelle wichtig ist
- Praktische Kontrolle vor der Veröffentlichung
- Fragen und Antworten
- Ergänzende Artikel und Werkzeug
- Quellen
Lückenlose Wiedergabe bedeutet: Der nächste Titel beginnt ohne zusätzliche Pause. Bei einem Konzertmitschnitt oder DJ-Mix soll der zeitliche Ablauf über Titelgrenzen hinweg erhalten bleiben. Dafür müssen Schnitt, Encoder-Angaben und Abspielprogramm zusammenpassen. Selbst bei korrekter Dateilänge kann ein Player pausieren, während die nächste Datei geöffnet wird.
Verlustbehaftete Encoder bearbeiten häufig Blöcke von Abtastwerten und benötigen Material vor oder nach dem gewünschten Abschnitt. Vorlauf bezeichnet den Anteil am Anfang, der beim Abspielen entfällt. Nachlauf bezeichnet den zusätzlichen Anteil am Ende. Diese Abtastwerte bestehen nicht zwingend vollständig aus digitaler Stille. Die Datei muss den gewünschten Audioabschnitt beschreiben; Decoder und Player müssen diese Angaben richtig verwenden.
Was die Dateilänge beweist
Zwei Sekunden bei 44,1 kHz enthalten 88.200 Abtastwerte je Kanal. Liefert das Dekodieren einer solchen Quelle 89.088 Werte, bleiben 888 zusätzliche Werte. Das entspricht 20,14 ms. Daraus folgt weder, dass alle zusätzlichen Werte still sind, noch dass ein bestimmter Player eine hörbare Pause von genau 20,14 ms erzeugt.
Eine Pegelschwelle beantwortet eine andere Frage: Wie lange bleibt die Wellenform unter einer gewählten Amplitude? Ein Sinus durchläuft regelmäßig die Null, und Musik enthält leise Stellen. Ein kurzer Abschnitt unter der Schwelle ist deshalb nicht automatisch eine eingefügte Lücke.

Die Messung
Geprüft wurde mit FFmpeg 7.1.5, einem Mono-Sinus von 441 Hz bei 44,1 kHz und zwei Hälften von je zwei Sekunden. Die Quelle war 16-Bit-PCM mit einer Spitze von 16.000/32.768. Jede Hälfte enthält genau 882 Schwingungen. Beide Hälften wurden unabhängig kodiert; die dekodierten Abtastwerte beider Durchgänge waren für jedes Format identisch.
FLAC diente als verlustfreie Kontrolle. Dazu kamen libmp3lame mit 320 kbit/s, FFmpegs AAC-Encoder mit 256 kbit/s in M4A, libopus mit 128 kbit/s und libvorbis mit 192 kbit/s. Für den Längenvergleich wurden alle dekodierten Ergebnisse auf 44,1 kHz ausgegeben. Bei Opus schließt das eine Umrechnung der Abtastrate ein.
| Datei und Dekodierung | Werte je Hälfte bei 44,1 kHz | Zusätzliche Werte |
|---|---|---|
| FLAC, normal | 88.200 | 0 |
| MP3, normal | 88.200 | 0 |
| MP3, Info-/Xing-Rahmen entfernt | 89.856 | 1.656 |
| AAC/M4A, normal | 89.088 | 888 |
| AAC/M4A, Schnittliste ignoriert | 90.112 | 1.912 |
| Opus, normal | 88.200 | 0 |
| Ogg Vorbis, normal | 88.200 | 0 |
FLAC stellte die Abtastwerte der Quelle exakt wieder her. Gleiche Länge bei einem verlustbehafteten Format bedeutet dagegen weder gleiche Abtastwerte noch einen völlig unveränderten Übergang. Getrennte Kodierung kann die Wellenform am Anfang und Ende verändern.
MP3: Die Decoder-Korrektur betrifft auch das Ende
Die geprüfte MP3-Datei nennt 576 Abtastwerte Encoder-Vorlauf und 1.080 Werte Nachlauf. FFmpeg 7.1.5 addiert vorne 529 Werte und zieht dieselbe Korrektur hinten ab. Entfernt werden also 1.105 Werte am Anfang und 551 am Ende. Zusammen sind das 1.656 Werte; danach stimmt die ursprüngliche Länge wieder.
Die Zahl 529 steht ausdrücklich im MP3-Lesecode dieser FFmpeg-Version. Das ist weder ein ungeklärter zusätzlicher Abtastwert noch ein allgemeiner Wert für jeden Decoder. Werden vorne 529 addiert und hinten weiterhin die unveränderten 1.080 gezählt, enthält die berechnete Gesamtdauer diese Korrektur doppelt.
Nach dem Neuschreiben ohne Info-/Xing-Rahmen lieferte die MP3-Datei in diesem Test 89.856 Abtastwerte. Der gesamte Überschuss betrug 37,55 ms. Das ist ein Längenunterschied, keine garantierte Strecke vollständiger Stille.
AAC: Die angegebene Dauer ist nicht die Zahl dekodierter Werte
Die M4A-Schnittliste nennt einen Startversatz von 1.024 Audio-Abtastwerten und eine Dauer von zwei Sekunden. Eine solche Schnittliste ordnet das gespeicherte Material der gewünschten Wiedergabezeit zu. Die normale Dekodierung entfernte den Startversatz, lieferte aber weiterhin 89.088 Werte. Ohne Beachtung der Schnittliste entstanden 90.112 Werte.
FFmpegs Option advanced_editlist ist standardmäßig eingeschaltet. Das Abschalten bei weiterhin beachteter Schnittliste ergab in diesem Test ebenfalls 89.088 Werte. Die Dokumentation beschreibt Änderungen der zeitlichen Zuordnung im Stream. Daraus folgt keine Zusage, dass jeder PCM-Export exakt bei der ursprünglichen Anzahl endet.
Das ausdrückliche Behalten der ersten 88.200 Werte nach dem normalen Anfangsbeschnitt stellte die bekannte Quelllänge wieder her. Dafür war ein gesonderter Beschnitt anhand der Originaldatei nötig; das Ergebnis entstand nicht allein durch einen Schalter. Bei unbekannter Quelle darf die Länge nicht geraten werden, sonst kann ein hörbarer Ausklang verloren gehen.
Opus, Vorbis und FLAC
Ogg Opus zählt Pre-Skip und Seitenpositionen mit einer festen Zeitbasis von 48 kHz. Pre-Skip betrug hier 312 Einheiten, also 6,5 ms. Der Decoder kann trotzdem 8, 12, 16, 24 oder 48 kHz ausgeben. Die Zeitbasis eines Metadatenfelds und die Abtastrate der Ausgabedatei sind unterschiedliche Größen.
Bei Ogg Vorbis helfen Seitenpositionen, das Ende des Tons festzulegen. FLAC erhält die ursprünglichen PCM-Abtastwerte ohne verlustbedingten Encoder-Nachlauf. Das Feld für die Gesamtzahl in STREAMINFO darf den Wert null enthalten; das bedeutet „unbekannt“. Eine fehlende Gesamtzahl dort verhindert nicht, dass eine gültige FLAC-Datei bis zum richtigen Ende dekodiert wird.
Auch diese Formate brauchen einen Player, der aufeinanderfolgende Titel ohne Unterbrechung startet. Wechsel der Abtastrate, Pufferung und Wiedergabeeinstellungen können den Übergang beeinflussen. Ein Formatname ersetzt deshalb keinen Abspieltest.
Warum die Stilleschwelle wichtig ist
Bei einer Amplitudenschwelle von 0,00001, ungefähr −100 dBFS, blieb die längste leise Strecke in einem 100-ms-Fenster um den Übergang bei FLAC und normalem MP3 einen Abtastwert lang. MP3 ohne Rahmen erreichte 12,31 ms, normal dekodiertes AAC 15,99 ms. Diese Werte unterscheiden sich von den zusätzlichen Dateilängen, weil leises Nachschwingen nicht dasselbe wie exakte Null ist.
Ein anderes Signal, eine andere Schwelle oder ein anderer Encoder kann andere Werte ergeben. Geprüft wurde ein synthetischer Sinus, kein Musikstück. Geprüft wurde auch kein Handy oder Musikplayer. Dateilänge, Wellenform und tatsächliche Wiedergabe brauchen deshalb getrennte Kontrollen.
Praktische Kontrolle vor der Veröffentlichung
- Die durchgehende Quelle bleibt als PCM-WAV oder FLAC erhalten; die Titelgrenzen sind dokumentiert.
- Einzelne Auslieferungsdateien entstehen normalerweise durch Schnitt dieser Quelle vor der verlustbehafteten Kodierung. Ein verlustfreier Schnitt komprimierter Dateien braucht passende Werkzeuge und erneute Kontrollen.
- Die fertigen Dateien werden dekodiert und mit den Quelllängen verglichen. An den Übergängen zählen ungewollte Stille und Sprünge der Wellenform.
- Der vorgesehene Player wird mit der tatsächlichen Titelreihenfolge, Überblendungseinstellung und Wiedergabeart geprüft. Wandelt die Plattform den Upload um, zählt auch deren ausgelieferte Fassung.
Der verlinkte Lückenlos-Prüfer zeigt ausgewählte Angaben aus dem Dateikopf. Die berechnete Lücke ist keine gemessene Wiedergabepause und kann auf vereinfachenden Annahmen beruhen. Das Werkzeug hilft beim ersten Blick auf Metadaten. Die Zahl dekodierter Abtastwerte und ein echter Abspieltest bleiben zusätzlich nötig.
Fragen und Antworten
Hat AAC immer etwa 20 ms Nachlauf?
Nein. Das gezeigte Ergebnis gehört zu diesem Encoder, dieser Quelllänge und diesem Container. Andere AAC-Profile, Encoder und Längen können abweichen. Ein fester Beschnitt um 20 ms ist keine allgemeine Reparatur.
Verhindert eine durchgehende Datei jedes Abspielproblem?
Eine Datei vermeidet den Wechsel zwischen getrennten Dateien an den markierten Titelgrenzen. Unterbrechungen durch Pufferung, Aussetzer oder bereits vorhandene Aufnahmefehler verhindert das nicht.
Können korrekte Angaben später verloren gehen?
Ja. Neuschreiben oder Teilen kann Felder entfernen oder veraltete Zähler hinterlassen. Entscheidend ist die endgültig ausgelieferte Datei. Eine eigene Umwandlung der Plattform kann einen weiteren Abspieltest nötig machen.