Audio-Dateien per Batch zusammenfügen

mischaef

Kassettenkind
Teammitglied
Registriert
Aug. 2012
Beiträge
5.930
Hallo zusammen,

gibt es zufällig ein Programm, mit welchem ich einzelne Audio-Files (Wav, FLAC) zu einer großen Datei zusammenfügen kann und das sich sogar noch per Batch ansteuern lässt? Vileleicht wo sich auch noch das Ausgabe-Format wählen lässt?

Kennt da jemand zufällig etwas?

Besten dank schon mal

Michael
 
Ich kenne da nur die Funktion "concat", welche aber, soweit ich gelesen habe, eine entsprechende mylist.txt-Datei voraussetzt...

Dazu mussen natürlich auch die einzelnen Dateien erkannt und in der richtigen Reihenfolge gebracht werden..
 
Die sich aber auch via Batch-Datei erzeugen lassen könnte.

z.B. so:
Code:
(for %%i in (%*) do @echo file '%%i') > mylist.txt

1627217576324.png

(habe die Batch-Datei test.cmd genannt)

Dann vielleicht noch den Dateinamen zufällig generieren für die list-Datei und sie in einem Temp-Ordner erstellen und danach wieder löschen usw....

Beispiele, wie sich die Dateien automatisch zusammensuchen lassen habe ich ja schon verlinkt. Kann aber auch ungewolltes Verhalten haben wegen der Reihenfolge, kann aber auch bequemer sein.
 
  • Gefällt mir
Reaktionen: BFF und mischaef
Dsa ganze hat mich jetzt auf die richtige Idee gebracht. Es spricht ja nichts dagegen, alles in einer Batch-Datei abzuarbeiten und eine temporäre Textdatei anzulegen, die nach der Nutzung wieder gelöscht wird. Als Dateinamen der fertigen datei würde ich dann einfach den Ordnernamen nehmen.

Ich bin jetzt soweit, dass nur die Dateien mit entsprechender Endung sortiert in die Datei geschrieben werden. Jetzt muss ich noch schauen, wie ich den Ordner-Namen in eine Variable speichern kann. Hab bisher nur was zur Handhabe von Ordnern generell in Batch-Dateien gefunden.
 
  • Gefällt mir
Reaktionen: tollertyp
Welchen Vorteil hätten den Zufallsnamen?

So, ich habs jetzt mal probiert:

Code:
@echo off & setlocal EnableDelayedExpansion

chcp 1252

for %%i in (.) do set ordner=%%~nxi
echo %ordner%

for %%i in (*.flac) do (

dir /b /a-d "*.flac" > "%ordner%.txt"

)

"C:\Program Files\ffmpeg\ffmpeg.exe" -safe 0 -f concat -i "%ordner%.txt" -c copy "%ordner%.wav"

:pause
pause

Das Problem ist jezt nur, dass die Textdatei anscheinend ein gewisses Format haben muss:

Code:
file '/path/to/file1'
file '/path/to/file2'
file '/path/to/file3'

Es können auch relative Pfade verwendet werden, womit ich das "file '" und das " ' " am Ende des jeweiligen Eintrages noch hinzufügen muss - aber das bekomme ich irgendwie nicht hin.

NACHTRAG

So, es liegt einzig und alleine daran, den Zusatz in die Textdatei zu schrieben. Füge ich das Format händisch ein, funktioniert das Script wunderbar und wie es soll.

Hätte jemand eine Idee, wie ich das machen könnte?
 
Zuletzt bearbeitet:
Ich verstehe den dir-Aufruf nicht so ganz bzw. die ganze Schleife nicht.
Du gehst über alle FLAC-Dateien drüber (for) und machst dann jedes mal mit dir nochmal die Liste? Wozu?

Was wäre der Unterschied dazu?
Code:
echo Pfad: %cd%
SET pfad=%cd%
(for %%i in (*.flac) do @echo file '%pfad%/%%i') > mylist.txt

Beispiel:
1627235794397.png


Doofe Frage: Wäre denn ein PowerShell-Script eine Alternative?
Und man kann PowerShell-Scripte auch als Batch-Datei "tarnen".
 
  • Gefällt mir
Reaktionen: mischaef
okkeeeeeee....warum einfach, wenn es auch kompliziert geht. So wird das ganze auch in die Datei geschrieben.

Der Unterschied? Deins ist wesentlich kompakter und funktioniert zudem...^^

Mit Powershell kenne ich mich gar nicht aus, mit Batch-Dateien zumindest rudimentär.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: tollertyp
Also gerade für solche Dinge kann es sich lohnen, die PowerShell zu verwenden. Geht zwar (fast) alles auch mit Batch, aber die Batch-Dateien sind meistens deutlich unleserlicher/umständlicher.
 
  • Gefällt mir
Reaktionen: mischaef
Zurück
Oben