Ein MP3-Stream enthält Informationen zum Erzeugen eines Satzes von Samples, wobei jedes Sample einem Sample in den ursprünglichen LPCM-Daten entspricht (wie aus der WAV-Datei). Ein Nebeneffekt der Codierung besteht jedoch darin, dass jedem "Junk" hinzugefügt wird Ende und ein Nebeneffekt der Dekodierung ist, dass am Anfang noch mehr Junk hinzugefügt wird. Der Decoder weiß, wie viel er hinzufügt, und überspringt diese Samples, aber der durch den Encoder hinzugefügte Müll ist nicht vollständig vorhersagbar (verschiedene Encoder addieren unterschiedliche Beträge), sodass der Decoder diese Samples nicht überspringen kann, wenn er nicht irgendwie darüber informiert ist, was zu tun ist überspringen. Einige Encoder wie LAME fügen solche Informationen wie "Gapless Playback" oder "Delay and Padding" (in einem encoderspezifischen Format, da es keinen Standard dafür gibt) in den VBR-Info (VBRI) oder Xing-Header der Datei ein. Dies ist eine Art Standard auch für CBR-Dateien und enthält andere Informationen, die manchmal für den Player hilfreich sind. Dieser Header ist eigentlich ein Ruhezustand (normalerweise 1152 Samples), wobei einige speziell formatierte Informationen zwischen dem Header des Frames und dem Beginn seiner Null-Audiodaten eingebettet sind. Die meisten Decoder / Player erkennen den Frame als besonders und überspringen diese Samples, aber einige tun dies nicht, daher gibt es einen weiteren potenziellen Fehler. Ich würde also darauf achten, dass Sie eine kompatible Encoder / Decoder-Kombination verwenden, um Dateien mit der richtigen Länge und Junk-Trimm als Ausgabe zu erhalten. Die meisten Decoder / Player erkennen den Frame als besonders und überspringen diese Samples, aber einige tun dies nicht, daher gibt es einen weiteren potenziellen Fehler. Ich würde also darauf achten, dass Sie eine kompatible Encoder / Decoder-Kombination verwenden, um Dateien mit der richtigen Länge und Junk-getrimmten Dateien als Ausgabe zu erhalten. Die meisten Decoder / Player erkennen den Frame als besonders und überspringen diese Samples, aber einige tun dies nicht, daher gibt es einen weiteren potenziellen Fehler. Ich würde also darauf achten, dass Sie eine kompatible Encoder / Decoder-Kombination verwenden, um Dateien mit der richtigen Länge und Junk-getrimmten Dateien als Ausgabe zu erhalten.
Ihre zweite Frage ... haben Sie die "--decode" -Option der LAME-Befehlszeilen-App bemerkt? :) Dies sollte Ihr Problem lösen, wenn Sie LAME als Encoder verwenden. Die Ausgabelänge sollte mit der Eingabe übereinstimmen.