Tonspur aus Dateien mit einem Befehl auslesen. Geht das?
Tonspur aus Dateien mit einem Befehl auslesen. Geht das?
Hallo Forum,
mir liegen Interviews in .wav vor, die mehrere Spuren beinhalten. Davon brauche ich häufig eine bestimmte Spur zur Weiterverarbeitung.
Fragen:
1. Ist es möglich, per Befehl z.B. die dritte Spur auslesen und als Datei ablegen zu lassen?
2. Könnte die Ausgabe nach Bedarf als .wav oder z.B. als .ogg erfolgen?
3. Es wäre schön, wenn der Befehl auf den Inhalt eines ganzen Verzeichnisses angewandt werden könnte.
Ich verwende zur Bearbeitung Audacity, aber meines Wissens kann man dort nur einzelne Dateien in verschiedenen Schritten entsprechend bearbeiten. Anscheinend kann Audacity mit Befehlen nichts anfangen.
Danke schön im Voraus!
Viele Grüße
Dengo
mir liegen Interviews in .wav vor, die mehrere Spuren beinhalten. Davon brauche ich häufig eine bestimmte Spur zur Weiterverarbeitung.
Fragen:
1. Ist es möglich, per Befehl z.B. die dritte Spur auslesen und als Datei ablegen zu lassen?
2. Könnte die Ausgabe nach Bedarf als .wav oder z.B. als .ogg erfolgen?
3. Es wäre schön, wenn der Befehl auf den Inhalt eines ganzen Verzeichnisses angewandt werden könnte.
Ich verwende zur Bearbeitung Audacity, aber meines Wissens kann man dort nur einzelne Dateien in verschiedenen Schritten entsprechend bearbeiten. Anscheinend kann Audacity mit Befehlen nichts anfangen.
Danke schön im Voraus!
Viele Grüße
Dengo
Re: Tonspur aus Dateien mit einem Befehl auslesen. Geht das?
Dengo hat geschrieben: Davon brauche ich häufig eine bestimmte Spur zur Weiterverarbeitung.
Keine Ahnung habe aber diese Seite
https://sendegate.de/t/workflow-fuer-ar ... eien/13427
[...]
Das sollte mit SoX 5 gehen:
sox input.wav output.wav remix 3 4 5 6
erzeugt eine Datei mit den Kanälen 3-6 der ursprünglichen Datei. Mit einem Skript solltest du mithilfe von SoX auch relativ leicht herausfinden können, ob ein Channel nur Stille enthält. SoX lässt sich bspw. über HomeBrew installieren.[...]
Vielleicht hilft es dir ja weiter.
gruss MaGe
Wir müssen uns vor der Klimaerwärmung nicht fürchten.
Uns rottet die soziale Kälte viel früher aus.
Uns rottet die soziale Kälte viel früher aus.
Re: Tonspur aus Dateien mit einem Befehl auslesen. Geht das?
Geht mit ffmpeg recht problemlos. Manpage ist groß, aber Beispiele für alle möglichen Szenarien sind mittels Suchmaschinen schnell zu finden.Dengo hat geschrieben:15.06.2024 15:04:181. Ist es möglich, per Befehl z.B. die dritte Spur auslesen und als Datei ablegen zu lassen?
2. Könnte die Ausgabe nach Bedarf als .wav oder z.B. als .ogg erfolgen?
Notfalls halt über den klassischen Einzeiler: for I in *; do ffmpeg […]; doneDengo hat geschrieben:15.06.2024 15:04:183. Es wäre schön, wenn der Befehl auf den Inhalt eines ganzen Verzeichnisses angewandt werden könnte.
„I fought in the Vim-Emacs-War.“ Quelle
Re: Tonspur aus Dateien mit einem Befehl auslesen. Geht das?
Ich lese daraus, alle Spuren in einer WAV Datei.Dengo hat geschrieben:
[...] mir liegen Interviews in .wav vor, die mehrere Spuren beinhalten
niemand hat geschrieben: Geht mit Debian ffmpeg recht problemlos. Manpage ist groß,
Und das geht mit ffmpeg?
Ich muß gestehen, dass ich die Manpage in all den Jahren noch nicht durch habe.
gruss MaGe
Wir müssen uns vor der Klimaerwärmung nicht fürchten.
Uns rottet die soziale Kälte viel früher aus.
Uns rottet die soziale Kälte viel früher aus.
Re: Tonspur aus Dateien mit einem Befehl auslesen. Geht das?
Ich bezog mich hingegen auf:
Das geht ausgezeichnet mit ffmpeg. Aber auch was du rausgelesen hast, ginge: notfalls würde man die Spuren in einem Zwischenschritt zusammenlegen und dann extrahieren.Dengo hat geschrieben:15.06.2024 15:04:18Davon brauche ich häufig eine bestimmte Spur zur Weiterverarbeitung.
[…]
1. Ist es möglich, per Befehl z.B. die dritte Spur auslesen und als Datei ablegen zu lassen?
Edit: oh, aus irgendeinem Grund bin ich von Video mit mehreren Audiospuren ausgegangen, und hab auch deinen Hinweis missverstanden.
Sollte trotzdem mit ffmpeg gehen – kann’s mangels entsprechender Datei leider nicht testen – aber sox ist da in der Tat das geeignetere Werkzeug. Sorry
„I fought in the Vim-Emacs-War.“ Quelle
Re: Tonspur aus Dateien mit einem Befehl auslesen. Geht das?
Eure Lösungen werden gerade getestet:
1. Ist es möglich, per Befehl z.B. die dritte Spur auslesen und als Datei ablegen zu lassen?
Ja, mit sox klappt es gut, auch wenn ich mich noch nicht über die Bedeutung der Warnung schlau gemacht habe:
Weiß jemand, ob die Eiganschaften der ursprünglichen Spur von sox intakt übertragen werden?
Mit sox kann man auch die Auflösung schön reduzieren - mein Wiedergabe Gerät akzeptiert bis 16Bit und 48khz:
Ob ich dither -s lieber weg lasse, ist mir auch noch nicht ganz klar. Klar ist, dass ich die Eigenschaften der Spur so wenig wie möglich verändern möchte.
Ich habe versucht mit | beide Befehle in einer Zeile zu bringen, aber die Ausgabe des ersten Befehls wird vom zweiten nicht gefunden - wohl der falsche Ansatz:
Toll fand ich dieses Skript, das alle Spuren als Einzeldateien auslesen kann:
Anwendung erfolgreich getestet - aber wieder eine Warnung:
Ob ich die Zeile "for i in...", um ein ganzes Verzeichnis zu bearbeiten, gebastelt bekomme? Das Spielchen mit den Zeichen ist leicht, wenn man es verstanden hat. Vorher ist es ein Rätsel, das man gerne durchschauen würde.
Danke schön
Viele Grüße
dengo
1. Ist es möglich, per Befehl z.B. die dritte Spur auslesen und als Datei ablegen zu lassen?
Ja, mit sox klappt es gut, auch wenn ich mich noch nicht über die Bedeutung der Warnung schlau gemacht habe:
Code: Alles auswählen
sox eingabe.WAV ausgabe_canal_3.wav remix 3
sox WARN wav: wave header missing extended part of fmt chunk
Mit sox kann man auch die Auflösung schön reduzieren - mein Wiedergabe Gerät akzeptiert bis 16Bit und 48khz:
Code: Alles auswählen
sox eingabe.WAV -b 16 output.wav rate -s -a 48k dither -s
Ich habe versucht mit | beide Befehle in einer Zeile zu bringen, aber die Ausgabe des ersten Befehls wird vom zweiten nicht gefunden - wohl der falsche Ansatz:
Code: Alles auswählen
$ sox eingabe.WAV ausgabe_canal3.wav remix 3 | sox ausgabe_canal3.WAV -b 16 ausgabe_c3_48k_16Bits.wav rate -s -a 48k dither -s
sox FAIL formats: can't open input file `ausgabe_canal3.WAV': No such file or directory
sox WARN wav: wave header missing extended part of fmt chunk
Code: Alles auswählen
#!/bin/sh
chans=`soxi -c "$1"`
while [ $chans -ge 1 ]; do
chans0=`printf %02i $chans` # 2 digits hence up to 99 chans
out=`echo "$1"|sed "s/\(.*\)\.\(.*\)/\1-$chans0.\2/"`
sox "$1" "$out" remix $chans
chans=`expr $chans - 1`
done
Code: Alles auswählen
$ ./Tonspuren_auslesen.sh eingabe.WAV
soxi WARN wav: wave header missing extended part of fmt chunk
sox WARN wav: wave header missing extended part of fmt chunk
sox WARN wav: wave header missing extended part of fmt chunk
sox WARN wav: wave header missing extended part of fmt chunk
sox WARN wav: wave header missing extended part of fmt chunk
Danke schön
Viele Grüße
dengo
Zuletzt geändert von Dengo am 16.06.2024 13:59:41, insgesamt 1-mal geändert.
Re: Tonspur aus Dateien mit einem Befehl auslesen. Geht das?
Dengo hat geschrieben: Weiß jemand, ob die Eiganschaften der ursprünglichen Spur von sox intakt übertragen werden?
Zu deiner Frage
Ich habe immer noch keinen schimmer von der sache, aber
das script (Tonspuren_auslesen.sh) scheint aus 2 kanal 1kanal zu machen.
Vielleicht liege ich falsch, oder versteh das script nicht.
Das Original:
05_Badlands.wav
Channels : 2 <---------------->
Sample Rate : 44100
Precision : 16-bit
Duration : 00:04:02.99 = 10715712 samples = 18224 CDDA sectors
File Size : 42.9M
Bit Rate : 1.41M
Tonspuren_auslesen.sh
Die Kopie:
05_Badlands-01.wav
Channels : 1 <----------------->
Sample Rate : 44100
Precision : 16-bit
Duration : 00:04:02.99 = 10715712 samples = 18224 CDDA sectors
File Size : 21.4M
Bit Rate : 706k
gruss MaGe
Wir müssen uns vor der Klimaerwärmung nicht fürchten.
Uns rottet die soziale Kälte viel früher aus.
Uns rottet die soziale Kälte viel früher aus.
Re: Tonspur aus Dateien mit einem Befehl auslesen. Geht das?
Habe es gerade wieder getestet. Es stimmt schon, was ich oben geschrieben habe. Zu jeder ausgegebenen Warnung wird auch eine Datei mit einer einzigen Spur ausgegeben, es entstehen also 4 neue Dateien, deren Größe 1/4 der Eingabedatei ist. Mit Audacity konnte ich dann auch vergleichend bestätigen, dass die Spur Nr. 4 tatsächlich leiser als die Spur Nr. 3 ist....das script (Tonspuren_auslesen.sh) scheint aus 2 kanal 1kanal zu machen. ...
Re: Tonspur aus Dateien mit einem Befehl auslesen. Geht das?
Und du möchtes aus allen deiner Wav-Dateien nur die eine Spur z.B. Nr. 3 richtig.Dengo hat geschrieben: Mit Audacity konnte ich dann auch vergleichend bestätigen, dass die Spur Nr. 4 tatsächlich leiser als die Spur Nr. 3 ist
gruss MaGe
Wir müssen uns vor der Klimaerwärmung nicht fürchten.
Uns rottet die soziale Kälte viel früher aus.
Uns rottet die soziale Kälte viel früher aus.
Re: Tonspur aus Dateien mit einem Befehl auslesen. Geht das?
Hallo MaGe,
ja, das ist die Frage Nr. 1, und das geht gut mit sox, wie schon oben mitgeteilt:
Für die Frage 2 und Frage 3 liegt noch keine Lösung vor.
ja, das ist die Frage Nr. 1, und das geht gut mit sox, wie schon oben mitgeteilt:
Code: Alles auswählen
sox eingabe.WAV ausgabe_canal_3.wav remix 3
Re: Tonspur aus Dateien mit einem Befehl auslesen. Geht das?
Ja auch mit sox.Dengo hat geschrieben: 2. Könnte die Ausgabe nach Bedarf als .wav oder z.B. als .ogg erfolgen?
HINWEIS: Führe den befehl nicht an den original WAV-DATEIEN aus,
bin auf diesem Gebiet, blutiger Laie.
Einmal als wav:
Code: Alles auswählen
for file in *.wav; do sox -SG "$file" "${file%.*}-neu.wav" remix 3; done
Code: Alles auswählen
for file in *.wav; do sox -SG "$file" "${file%.*}.ogg" remix 3; done
gruss MaGe
Wir müssen uns vor der Klimaerwärmung nicht fürchten.
Uns rottet die soziale Kälte viel früher aus.
Uns rottet die soziale Kälte viel früher aus.
Re: Tonspur aus Dateien mit einem Befehl auslesen. Geht das?
Sehr gut, MaGe! Vielen Dank!
Ich habe den ersten Test vorgenommen und es funktioniert anscheinend hervorragend
Nun ist es möglich, aus allen Tondateien eines Verzeichnisses immer z.B. die 3 Spur auslesen und als eigenständige Datei ablegen lassen. Da ich die original Bittiefe + Abtastrate reduzieren möchte, z.B. damit ich das Material bei meinem Wiedergabegerät verwenden zu können, dass nur 16Bit und bis 48000khz kann, muss ich bisher jede einzelne Datei individuell mit folgendem Befehl behandeln.
Es wäre also viel Arbeit gespart, wenn dieser Befehl ebenfalls in ein "for i in..."- Befehl umformuliert werden könnte.
Eine weitere hilfreiche Variante wäre, beide Befehle:
so als Befehl zusammen zu packen, dass beide Aufgaben dann als Einzelbefehl ein ganzes .wav-Verzeichnis abarbeiten könnte, nämlich zuerst die Tonspur 3 auslesen und dann sie von der Qualität entsprechend herunterschrauben und als Datei ablegen.
Ob jemand diese Kunst beherrscht bzw. ob es möglich ist?
Vielen Dank
Ich habe den ersten Test vorgenommen und es funktioniert anscheinend hervorragend
Nun ist es möglich, aus allen Tondateien eines Verzeichnisses immer z.B. die 3 Spur auslesen und als eigenständige Datei ablegen lassen. Da ich die original Bittiefe + Abtastrate reduzieren möchte, z.B. damit ich das Material bei meinem Wiedergabegerät verwenden zu können, dass nur 16Bit und bis 48000khz kann, muss ich bisher jede einzelne Datei individuell mit folgendem Befehl behandeln.
Code: Alles auswählen
sox eingabe.WAV -b 16 output.wav rate -s -a 48k dither -s
Eine weitere hilfreiche Variante wäre, beide Befehle:
Code: Alles auswählen
for file in *.wav; do sox -SG "$file" "${file%.*}-neu.wav" remix 3; done
sox eingabe.WAV -b 16 output.wav rate -s -a 48k dither -s
Ob jemand diese Kunst beherrscht bzw. ob es möglich ist?
Vielen Dank
Re: Tonspur aus Dateien mit einem Befehl auslesen. Geht das?
Ich hoffe dochDengo hat geschrieben: Ob jemand diese Kunst beherrscht bzw. ob es möglich ist?
Leider ohne dither, ist das nicht Automatich
for file in *.wav; do sox -SG "$file" -b 16 -r 48000 "${file%.*}-neu.wav" remix 3; done
Und wieder: Die Benutzung erfolgt ausschließlich auf eigene Gefahr des Benutzers.
gruss MaGe
Wir müssen uns vor der Klimaerwärmung nicht fürchten.
Uns rottet die soziale Kälte viel früher aus.
Uns rottet die soziale Kälte viel früher aus.