Sox: Verkette mehrere Audiodateien ohne eine Lücke dazwischen

8

Ich verkette mehrere (maximal 25) Audiodateien mit SoX mit

%Vor%

was tut, was es soll; Verkettet gegebene Dateien in eine Datei. Aber leider gibt es eine kleine Zeitlücke zwischen diesen Dateien in result.mp3. Gibt es eine Möglichkeit, diese Lücke zu beseitigen?

Ich erstelle zuerst.mp3, second.mp3 usw., bevor ich sie durch Zusammenführung mehrerer Audios (gleiche Länge / Format / Rate) verkette:

%Vor%

Wie kann ich überprüfen und sicherstellen, dass keine Zeitlücke in all diesen Dateien hinzugefügt wird? (fusioniert und verkettet)

Ich muss eine nahtlose Wiedergabe aller verketteten Dateien erreichen ( wenn sie nacheinander im Browser abgespielt werden, funktioniert das ok ).

Danke für jede Hilfe.

BEARBEITEN:

Das genaue Beispiel (ohne echte Dateinamen) eines Befehls, den ich führe, ist jetzt:

%Vor%

Dadurch werden Dateien zusammengeführt und direkt in den Verkettungsbefehl eingefügt. Das resultierende mp3 (result.mp3) hat eine so geringe Verzögerung zwischen verketteten Dateien. Irgendwelche Ideen wirklich geschätzt.

    
trainoasis 13.08.2014, 08:00
quelle

3 Antworten

6

Dies ist meine Vermutung für Ihr Problem:

  • sox fügt keine Zeitlücke während der Verkettung hinzu,
  • es fügt jedoch eine Zeitlücke in anderen Operationen hinzu, z. B. wenn Sie vor der Verkettung eine Konvertierung durchführen.

Um herauszufinden, was passiert, empfehle ich Ihnen, zu jeder Zeit alle Dateidauern zu überprüfen (Sie können zum Beispiel soxi verwenden), um zu sehen, was passiert.

Wenn es nicht funktioniert (die Zeitlücke wird während der Verkettung hinzugefügt), lass mich bitte eine weitere Vermutung machen:

  • Sox Zeitlücke hinzufügen, weil Ihre Proben am Anfang oder am Ende der Datei nicht nahe bei Null sind.

Um das zu lösen, könnten Sie eine sehr kurze Einblendung und Ausblendung für Ihre Dateien verwenden.

Um Sox dazu zu zwingen, Dateien mit einer genau definierten Länge auszugeben, könnten Sie den trim-Parameter wie folgt verwenden:

%Vor%     
PatriceG 04.12.2014, 13:17
quelle
7

Die beste - aber am wenigsten hilfreiche - Methode ist die Verwendung von MP3-Dateien als Quelldateien. WAV-, FLAC- oder M4A-Dateien haben dieses Problem nicht.

MP3s bestehen nicht aus Samples mit fester Rate, daher wird das Ausschneiden eines Abschnitts einer beliebigen Länge nicht wie erwartet funktionieren. Wenn der Encoder nicht schlau ist (wie lahm), wird am Anfang oder am Ende des Audiodateis der MP3-Datei oft eine Lücke entstehen. Ich habe einen Test mit einer Sample-Länge von 0,98s gemacht (mit genau 73½ CDDA-Frames, und viele MP3-Encoder verwenden Frames für minimale Sample-Längen). Ich codierte das Sample dann mit drei verschiedenen MP3-Encodern (lame, sox und dem alten shine ) und entschlüsselte diese Dateien dann mit drei Decodern (lahm, sox und madplay). So vergleichen sich die Beispiellängen mit dem Original:

%Vor%

Nur die von lame codierte und decodierte Datei endete gleich lang (hauptsächlich, weil lame ein Längen-Tag einfügt, um diese zu kurzen Samples zu korrigieren, und weiß, wie man es entschlüsselt). Alles, was von Sox codiert wurde, endete mit einer winzigen Lücke, egal, welchen Decoder ich benutzte. Das Verknüpfen der Dateien führt also zu winzigen Klicks.

Ihr Browser wird wahrscheinlich die Quelldateien sehr leicht mischen und überlappen, so dass Sie die Klicks nicht hören. Gapless-Wiedergabe ist schwer zu machen.

    
scruss 14.02.2015 22:48
quelle
1

Zuerst müssen Sie wirklich überprüfen, ob der Anfang und das Ende Ihrer Dateien keine Stille haben, ich weiß nicht, ob Sox es tun kann, aber Sie müssen die Energie (RMS, dB) der Start- und Ende-Audiosignale überprüfen und den Start abbrechen und end silence, um Audiodateien ohne Lücken zu verbinden, müssen Sie eine Fensterfunktion in Ihrem Signal anwenden, die wie ein Ein- / Ausblenden funktioniert und dann den Anfang eines mit dem Ende des anderen überblenden.

sox liefert eine splice -Funktion für die Überblendung:

%Vor%

Überprüfen Sie die Dokumentation hier

    
ederwander 13.08.2014 12:13
quelle

Tags und Links