GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Konvertieren Sie Audiodateien mit diesem vielseitigen Linux-Befehl

Ich arbeite mit Medien, und wenn man mit irgendwelchen Medien arbeitet, lernt man ziemlich schnell, dass Standardisierung ein wertvolles Werkzeug ist. So wie Sie nicht versuchen würden, einen Bruch zu einer Dezimalzahl zu addieren, ohne das eine oder andere umzuwandeln, habe ich gelernt, dass es nicht ideal ist, Medien mit unterschiedlichen Formaten zu kombinieren. Die meisten Anwendungen auf Bastlerebene machen den Konvertierungsprozess aus Bequemlichkeit für den Benutzer unsichtbar. Flexible Software, die sich an Benutzer richtet, die die Kontrolle über die feinen Details ihrer Assets benötigen, überlässt es Ihnen jedoch oft, Ihre Medien im Voraus in das gewünschte Format zu konvertieren. Ich habe ein paar Lieblingswerkzeuge für die Konvertierung, und eines davon ist das sogenannte Schweizer Taschenmesser des Sounds , SoX.

Installieren

Weitere Linux-Ressourcen

  • Spickzettel für Linux-Befehle
  • Spickzettel für fortgeschrittene Linux-Befehle
  • Kostenloser Online-Kurs:RHEL Technical Overview
  • Spickzettel für Linux-Netzwerke
  • SELinux-Spickzettel
  • Spickzettel für allgemeine Linux-Befehle
  • Was sind Linux-Container?
  • Unsere neuesten Linux-Artikel

Unter Linux oder BSD können Sie sox installieren Befehl (und einige hilfreiche symbolische Links) aus Ihrem Software-Repository oder Ports-Baum.

Sie können SoX auch von seiner Homepage auf Sourceforge.net installieren. Es wird nicht oft veröffentlicht, aber seine Codebasis ist in der Regel stabil. Wenn Sie also die neuesten Funktionen (z. B. Opus-Unterstützung) möchten, ist es einfach und sicher zu erstellen.

SoX stellt in erster Linie den sox bereit Befehl, aber die Installation erstellt auch ein paar nützliche symbolische Links:play , rec , und soxi .

Informationen über Dateien mit SoX erhalten

SoX liest und schreibt Audiodaten neu. Ob es die umgeschriebenen Audiodaten speichert, bleibt Ihnen überlassen. Es gibt Anwendungsfälle, in denen Sie die konvertierten Daten nicht speichern müssen, z. B. wenn Sie die Ausgabe zur Wiedergabe direkt an Ihre Lautsprecher senden. Bevor Sie jedoch eine Konvertierung durchführen, ist es normalerweise eine gute Idee, genau zu bestimmen, womit Sie es überhaupt zu tun haben.

Um Informationen über eine Audiodatei zu sammeln, verwenden Sie soxi Befehl. Dies ist ein Symlink zu sox --info .

$ soxi countdown.mp3
Input File     : '/home/tux/countdown.mp3'
Channels       : 1
Sample Rate    : 44100
Precision      : 16-bit
Duration       : 00:00:11.21 = 494185 samples...
File Size      : 179k
Bit Rate       : 128k
Sample Encoding: MPEG audio (layer I, II or III)

Diese Ausgabe gibt Ihnen eine gute Vorstellung davon, in welchem ​​Codec die Audiodatei codiert ist, die Dateilänge, Dateigröße, Abtastrate und die Anzahl der Kanäle. Einige davon werden Sie vielleicht denken Sie wissen es bereits, aber ich vertraue niemals Annahmen, wenn Medien von einem Kunden zu mir gebracht werden. Überprüfen Sie Medienattribute mit soxi .

Konvertieren von Dateien

In diesem Beispiel wurde das Audio eines Spielshow-Countdowns als MP3-Datei geliefert. Während fast alle Bearbeitungsanwendungen komprimiertes Audio akzeptieren, bearbeitet keines von ihnen tatsächlich die komprimierten Daten. Die Konvertierung findet irgendwo statt, sei es eine geheime Hintergrundaufgabe oder eine Aufforderung zum Speichern einer Kopie. Ich ziehe es generell vor, den Umbau vorher selbst vorzunehmen. Auf diese Weise kann ich steuern, welches Format ich verwende. Ich kann viele Medien in Stapeln über Nacht erstellen, anstatt wertvolle Produktionszeit damit zu verschwenden, darauf zu warten, dass eine Bearbeitungsanwendung sie bei Bedarf verarbeitet.

Der Sox Der Befehl ist zum Konvertieren von Audiodateien gedacht. Es gibt ein paar Etappen im sox Leitung:

  • Eingabe
  • kombinieren
  • Auswirkungen
  • Ausgabe

In der Befehlssyntax wird der Effektschritt verwirrenderweise zuletzt geschrieben . Das bedeutet, dass die Pipeline folgendermaßen zusammengesetzt ist:

input → combine → output → effects

Codierung

Der einfachste Konvertierungsbefehl umfasst nur eine Eingabedatei und eine Ausgabedatei. Hier ist der Befehl zum Konvertieren einer MP3-Datei in eine verlustfreie FLAC-Datei:

$ sox countdown.mp3 output.flac
$ soxi output.flac

Input File     : 'output.flac'
Channels       : 1
Sample Rate    : 44100
Precision      : 16-bit
Duration       : 00:00:11.18 = 493056 samples...
File Size      : 545k
Bit Rate       : 390k
Sample Encoding: 16-bit FLAC
Comment        : 'Comment=Processed by SoX'

Effekte

Die Effektkette wird am Ende eines Befehls angegeben. Es kann Audio ändern, bevor die Daten an ihr endgültiges Ziel gesendet werden. Zu lautes Audio kann beispielsweise manchmal zu Problemen bei der Konvertierung führen:

$ sox bad.wav bad.ogg
sox WARN sox: `bad.ogg' output clipped 126 samples; decrease volume?

Anwenden einer Verstärkung Effekt kann dieses Problem oft lösen:

$ sox bad.wav bad.ogg gain -1

Ausblenden

Ein weiterer nützlicher Effekt ist verblassen . Mit diesem Effekt können Sie die Form eines Fade-Ins oder Fade-Outs definieren und festlegen, wie viele Sekunden das Fade dauern soll.

Hier ist ein Beispiel für eine sechssekündige Einblendung mit einer umgekehrten Parabel:

$ sox intro.ogg intro.flac fade p 6

Dies wendet eine Einblendung von drei Sekunden auf den Kopf des Audios und eine Ausblendung ab der Acht-Sekunden-Marke an (die Intro-Musik dauert nur 11 Sekunden, also beträgt die Ausblendung in diesem Fall auch drei Sekunden). :

$ sox intro.ogg intro.flac fade p 3 8

Die verschiedenen Arten von Fades (Sinus, linear, invertierte Parabel usw.) sowie die Optionen fade Angebote (Einblendung, Ausblendung), sind im sox aufgeführt Manpage.

Effektsyntax

Jedes Effekt-Plug-in hat seine eigene Syntax, also lesen Sie die Manpage für Details zum Aufrufen jedes Plugins.

Effekte können in einem Befehl verkettet werden, zumindest in dem Maße, in dem Sie sie kombinieren möchten. Mit anderen Worten, es gibt keine Syntax, um einen Flanger anzuwenden Wirkung nur während eines sechssekündigen Fade-Outs. Für etwas so Präzises benötigen Sie einen grafischen Schallwelleneditor oder eine digitale Audio-Workstation wie LMMS oder Rosegarden. Wenn Sie jedoch nur Effekte haben, die Sie einmal anwenden möchten, können Sie sie zusammen im selben Befehl auflisten.

Dieser Befehl wendet eine Verstärkung von -1 an Effekt, eine Tempo-Streckung von 1,35 und ein Fade-out :

$ sox intro.ogg output.flac gain -1 stretch 1.35 fade p 0 6
$ soxi output.flac

Input File     : 'output.flac'
Channels       : 1
Sample Rate    : 44100
Precision      : 16-bit
Duration       : 00:00:15.10 = 665808 samples...
File Size      : 712k
Bit Rate       : 377k
Sample Encoding: 16-bit FLAC
Comment        : 'Comment=Processed by SoX'

Audio kombinieren

SoX kann auch Audiodateien kombinieren, entweder durch Verketten oder durch Mischen.

Verbinden (oder verketten ) Dateien in eine, stellen Sie mehr als eine Eingabedatei in Ihrem Befehl bereit:

$ sox countdown.mp3 intro.ogg output.flac

In diesem Beispiel output.flac enthält jetzt Countdown Audio, unmittelbar gefolgt von Intro Musik.

Wenn Sie jedoch möchten, dass die beiden Tracks gleichzeitig übereinander abgespielt werden, können Sie den --combine mix verwenden Möglichkeit:

$ sox --combine mix countdown.mp3 intro.ogg output.flac

Stellen Sie sich jedoch vor, dass sich die beiden Eingabedateien in mehr als nur ihren Codecs unterscheiden. Es ist nicht ungewöhnlich, dass Gesangsspuren in Mono (ein Kanal) aufgenommen werden, Musik jedoch mindestens in Stereo (zwei Kanäle). SoX wird keine Lösung vorgeben, also müssen Sie das Format der beiden Dateien zuerst selbst standardisieren.

Ändern von Audiodateien

Optionen bezogen auf den nach aufgelisteten Dateinamen es. Zum Beispiel die --channels Option in diesem Befehl gilt nur zu input.wav und NICHT zu example.ogg oder output.flac :

$ sox --channels 2 input.wav example.ogg output.flac

Dies bedeutet, dass die Position einer Option in SoX sehr wichtig ist. Wenn Sie zu Beginn Ihres Befehls eine Option angeben, überschreiben Sie im Wesentlichen nur, was SoX selbst aus den Eingabedateien herausholt. Optionen, die unmittelbar vor der Ausgabe platziert werden Datei bestimmen jedoch, wie SoX die Audiodaten schreibt.

Um das vorherige Problem inkompatibler Kanäle zu lösen, können Sie zuerst Ihre Eingaben standardisieren und dann mischen:

$ sox countdown.mp3 --channels 2 countdown-stereo.flac gain -1
$ soxi countdown-stereo.flac

Input File     : 'countdown-stereo.flac'
Channels       : 2
Sample Rate    : 44100
Precision      : 16-bit
Duration       : 00:00:11.18 = 493056 samples...
File Size      : 545k
Bit Rate       : 390k
Sample Encoding: 16-bit FLAC
Comment        : 'Comment=Processed by SoX'

$ sox --combine mix \
countdown-stereo.flac \
intro.ogg \
output.flac

SoX erfordert unbedingt mehrere Befehle für komplexe Aktionen, daher ist es normal, nach Bedarf mehrere temporäre und Zwischendateien zu erstellen.

Mehrkanal-Audio

Natürlich ist nicht alles Audio auf einen oder zwei Kanäle beschränkt. Wenn Sie mehrere Audiokanäle in einer Datei kombinieren möchten, können Sie dies mit SoX und dem --combine merge tun Möglichkeit:

$ sox --combine merge countdown.mp3 intro.ogg output.flac
$ soxi output.flac

Input File     : 'output.flac'
Channels       : 3
[...]

Einfache Audiobearbeitung

Es mag seltsam erscheinen, ohne visuelle Schnittstelle mit Audio zu arbeiten, und für einige Aufgaben ist SoX definitiv nicht das beste Werkzeug. Für viele Aufgaben bietet SoX jedoch ein einfaches und leichtes Toolkit. SoX ist ein einfacher Befehl mit starkem Potenzial. Damit können Sie Audio konvertieren, Kanäle und Wellenformen manipulieren und sogar Ihre eigenen Sounds erzeugen. Dieser Artikel hat nur einen kurzen Überblick über seine Fähigkeiten gegeben, also lesen Sie seine Manpage oder Online-Dokumentation und sehen Sie dann, was Sie erstellen können.


Linux
  1. Konvertieren Sie Audio in Stapeln unter Linux mit SoundConverter

  2. 10 erstaunliche Tipps und Tricks für die Arbeit mit Linux

  3. Suchen Sie schnell nach Dateien in Linux mit dem Locate-Befehl

  4. So finden Sie Dateien mit dem fd-Befehl in Linux

  5. Linux-rsync-Befehl mit praktischen Beispielen

So laden Sie Dateien mit dem Curl-Befehl unter Linux herunter

So laden Sie Dateien mit dem Wget-Befehl unter Linux herunter

Konvertieren Sie Tabulatoren in Leerzeichen im Linux-Terminal mit dem Befehl „Erweitern“.

Tutorial für Linux-Suchbefehle (mit Beispielen)

lsof-Befehl unter Linux mit Beispielen

Linux-Comm-Befehl mit Beispielen