Hallo,
meine Frage hat nichts mit MP3Tag zu tun.
Es gab vor vielen Jahren ein Winamp-Plugin, mit dem die Songs einer Playliste x Sekunden angespielen konnte, dann kam automatisch der nächste Song dran.
Leider ist dieses Addon nicht mehr verfügbar.
Kennt jemand ein Programm, mit dem man genau dieses machen kann?
(Ich verwende die WinAmp Version 5.9.2)
Vielen Dank für eine Antwort.
Bernd.
Mit einem Plugin für Winamp kann ich Dir nicht helfen.
Aber mit VLC kannst Du das z.B. ohne Plugin (über die Kommandozeile) so erreichen:
vlc --playlist-autostart <path/to/playlist.xspf> --run-time=10
Der letzte Parameter gibt dabei an, wie viele Sekunden lang (in obigem Beispiel 10 Sekunden) jeder Song von der Playliste gespielt werden soll.
Wie das mit der Playliste in VLC im Detail funktioniert, findest Du in deren Wiki.
Was es sonst noch für Kommandozeilen-Befehle zur Steuerung von VLC gibt, findest Du in deren Auflistung.
So sieht das Format für eine XSPF-Playliste im Detail aus.
1 Like
LyricsLover du hast mir einen wichtigen Tipp gegeben.
Danke dafür !!
Da ich kein Freund der Kommandozeile bin ...
Habe ich in den Foren von VLC gelesen und folgendes gefunden:
• Menüoption Medien - Mehrere Dateien öffnen...
• Register Datei - Dateiauswahl - Hinzufügen...
• Im Explorer gewünschte Dateien markieren und Dialog mit Öffnen beenden.
• Im Dialog Medien öffnen Option Mehr Optionen anzeigen aktivieren.
• Start und Endzeit bearbeiten
LyricsLover ich denke am Ende wird das selbe herauskommen wie mit deinem Vorschlag.
Danke nochmals.
Ich werde mich jetzt auf die Suche nach einer Lösung machen, dass sie nun gekürzten Songs als Einzeldatei gespeichert werden.
Leider hat VLC seit der Version 1.1.0 die Zusammenarbeit mit Shoutcast aufgegeben, Genau das wäre jetzt meine erste Wahl gewesen.
1 Like
Wenn Du eine so erstellte Liste von Songs in VLC als Wiedergabliste speicherst:
VLC -> Medien -> Wiedergabeliste in Datei speichern (CTRL + Y)
dann wird die ausgewählte Stopp-Zeit - im Beispiel 10 Sekunden stop-time=10.000 - direkt in die XSPF gespeichert und sieht beispielsweise so aus:
<title>Wiedergabeliste</title>
<trackList>
<track>
<location>file:///D:/Musik/B/Bon%20Jovi/Forever/2024/01%20-%20Legendary.mp3</location>
<title>Legendary</title>
<creator>Bon Jovi</creator>
<album>Forever</album>
<trackNum>1</trackNum>
<annotation>My Annotation</annotation>
<image>file:///C:/Users/ABC/AppData/Roaming/vlc/art/artistalbum/Bon%20Jovi/Forever/art.jpg</image>
<duration>245528</duration>
<extension application="http://www.videolan.org/vlc/playlist/0">
<vlc:id>0</vlc:id>
<vlc:option>file-caching=1000</vlc:option>
<vlc:option>stop-time=10.000</vlc:option>
</extension>
</track>
</trackList>
Wie gut das mit dem Cover-Bild funktioniert, wenn man diese *.XSPF auf einem anderen Computer (ohne Zugriff auf <image>file:///C:/Users/ABC...) ausführt, weiss ich nicht.
Bei mir sind sowieso die Cover immer im Song eingebettet.
Was genau meinst Du damit?
Willst Du die einzelnen Original-Stücke auf 10 Sekunden Spielzeit beschneiden, damit sie tatsächlich insgesamt nur noch 10 Sekunden lang sind (also auch wesentlich kleiner werden)?
Hintergrund ist: Ich möchte sowas wie ein Quiz machen. Ich spiele die am Ende erstellte Datei ab und die Zuhörer erraten die Stücke.
Bisher machte ich das mit Audacity:
- alle Dateien einlesen
- Stücke kürzen
- alle Stücke zusammenschieben, so dass sie sich kurz überlappen
- am Ende alles als MP3 exportieren
Ich möchte mir den doch erheblichen Aufwand des Kürzens über Audacity sparen.
Wird das schwierig
Über die Kommandozeile und Tools wie FFMPEG oder Mp3DirectCut ginge das per Mausklick 
Weil mich das Thema interessiert hat, schrieb ich diesen Kommandozeilen-Batch:
SET FFMPEG="C:\Path\To\ffmpeg\bin\ffmpeg.exe"
SET SubDir=".\KurzFiles"
MD %SubDir%
for %%A in ("*.mp3") do %FFMPEG% -t 10 -i "%%A" -acodec copy "%SubDir%\%%~nA.mp3"
CD /D %SubDir%
for %%A in ("*.mp3") do @echo file '%%~sA' >> FileList.txt
%FFMPEG% -f concat -safe 0 -i ".\FileList.txt" -c copy Merged10SecondsParts.mp3
DEL .\FileList.txt
Erklärung:
Zeile #1: Der Pfad zur existierenden Datei FFMPEG.exe gesetzt.
Zeile #2: Name des Unterverzeichnisses für die Kurzversionen der Stücke wird gesetzt.
Zeile #4: Das Unterverzeichnis wird neu erstellt (spielt keine Rolle wenn es schon existiert).
Zeile #6: In einer Schlaufe werden alle *.mp3 Dateien im aktuellen Verzeichnis eingelesen und dann einzeln mit FFMPEG auf 10 Sekunden gekürzt und unter gleichem Namen in das neue Unterverzeichnis gespeichert.
Zeile #8: Wechsel zur weiteren Ausführung in das neue Unterverzeichnis mit den Kurzversionen. Mit /D auch auf ein anderes Laufwerk.
Zeile #10: In einer Schlaufe werden alle Kurznamen der Kurzversionen samt Pfadangabe in eine Datei namens FileList.txt geschrieben
Zeile #12: FFPMEG fügt alle Kurzversionen die in der Datei FileList.txt stehen zu einer einzigen neuen Mp3-Datei mit dem Namen Merged10SecondsParts.mp3 zusammen.
Zeile #14: Die nicht mehr benötigte Datei FileList.txt wird gelöscht.
Wenn man diese Zeilen in eine Batch-Textdatei namens ErstellKurzVersionen.cmd kopiert, werden in rund 5 Sekunden 12 durchschnittliche lange Mp3 gekürzt und zusammengefügt.
Das einzige was ich auf die Schnelle nicht hinbekam war das überlappen.
Das ist zwar theoretisch mit FFMPEG ebenfalls möglich, hat in meinen Tests aber nicht wie gewünscht funktioniert.
So bekommt man am Schluss ein einziges Stück namens Merged10SecondsParts.mp3 mit allen Kurzversionen direkt hintereinander.
1 Like
wow ...
vielen Dank!! ich kann es leider erst Freitag testen 
ich melde mich dann
1 Like
ich habe die Datei FFMPEG von Heise heruntergeladen. es ist die Version: ffmpeg-7.0.1-essentials_build.zip und in einen Ordner D:\portableApps\ entpackt.
Da ich erst testen will, sieht dein Skript jetzt so aus:
SET FFMPEG="D:\portableApps\ffmpeg\bin\ffmpeg.exe"
SET SubDir="E:\test\Kurzfile"
MD %SubDir%
for %%A in ("*.mp3") do %FFMPEG% -t 10 -i "%%A" -acodec copy "%SubDir%\%%~nA.mp3"
rem CD %SubDir%
rem for %%A in ("*.mp3") do @echo file '%%~sA' >> FileList.txt
rem %FFMPEG% -f concat -safe 0 -i ".\FileList.txt" -c copy Merged10SecondsParts.mp3
rem DEL .\FileList.txtrem
egal, og die Kommentarzeilen drin lasse oder sie entferne, der Bildschirm flackert nur kurz schwarz auf, das wars.
So wie ich Kommantozeilen verstehe und auch verwende (z.b. für Robocopy) kann man die einzelnen Kommandozeilen im 'CMD-Fenster' eingeben und ausführen lassen.
Hier klappt das nicht.
Muss ich da ein PowerShell-Fenster öffnen, diese Funktion hab ich noch nie benutzen müssen, obwohl ich schon seit DOS 4,5 'am Ball' bin
Im Prinzip stimmt das, richtig.
ABER ausgerechnet bei Schlaufen ist es so, dass sie in einem Batch mit 2 Prozentzeichen aufgeführt werden müssen (%%A), direkt ausgeführt in einem Kommandofenster aber nur mit 1 Prozentzeichen (%A).
Der Aufruf müsste direkt im CMD-Fenster - mit 1 Prozentzeichen statt 2 - so aussehen:
for %A in ("*.mp3") do %FFMPEG% -t 10 -i "%A" -acodec copy "%SubDir%\%~nA.mp3"
Das funktioniert aber nur, wenn auch die beiden SET-Zeilen davor mit der Definition für %FFMPEG% und für %SubDir% ausgeführt wurden. Sonst sind diese Variablen beim Aufruf nicht bekannt = leer.
Führst Du diesen Batch in einem Verzeichnis aus, in dem mindestens zwei *.mp3 Dateien drin stehen? Nur dann können zwei verkürzte Varianten davon im letzten Schritt zu einem einzigen neuen Merged10SecondsParts.mp3 zusammengefügt werden.
Ich sehe noch ein Problem. Der Batch war nicht gedacht, dass Du die Original-Dateien z.B. irgendwo auf C:\ gespeichert hast und die neuen Dateien auf ein anderes Laufwerk E:\test\Kurzfile gespeichert werden.
Der Befehl CD kann nur das Verzeichnis (auf dem gleichen Laufwerk) wechseln.
Nicht das Laufwerk selber.
Damit das funktioniert, muss man den Change Directory-Befehl auf CD /D abändern (ich habe das oben im Batch angepasst).
Noch ein Hinweis zum Testen:
Du kannst auch ein CMD-Fenster im Pfad öffnen wo Du den Batch gespeichert hast.
Wenn der Beispielbatch ErstellKurzVersionen.cmd also z.B. in C:\Test gespeichert ist, kannst Du in C:\Test ein CMD-Fenster öffnen und ErstellKurzVersionen.cmd eintippen und Enter drücken.
Dann solltest Du allfällige Fehlermeldungen oder Hinweise sehen, weil das CMD-Fenster offen bleibt.
Oder was auch immer beim Testen hilft:
Schreib als allerletzte Zeile in einem Batch diesen 1-Wort-Befehl hin
PAUSE
Das hälft das Fenster nach dem Durchlauf so lange offen, bis Du irgendeine Taste drückst. Damit kann man auch auf einfache Weise kontrollieren, ob irgendwelche nützlichen Informationen angezeigt werden.
gesagt, getan. Folgende Fehlermeidung kommt:
D:\CMDtest>ErstellKurzVersionen.cmd
D:\CMDtest>SET FFMPEG="D:\portableApps\ffmpeg\bin\ffmpeg.exe"
D:\CMDtest>SET SubDir="D:\zumLoeschen\Kurzfile"
D:\CMDtest>MD "D:\zumLoeschen\Kurzfile"
Ein Unterverzeichnis oder eine Datei mit dem Namen "D:\zumLoeschen\Kurzfile" existiert bereits.
Die folgende Verwendung des Pfadoperators zur Ersetzung eines Batchparameters
ist ungültig: %~nA.mp3"
Geben Sie CALL /? oder FOR /? ein, um herauszufinden, welche Formate gültig
sind.
Syntaxfehler.
D:\CMDtest>for FFMPEGA" -acodec copy ""D:\zumLoeschen\Kurzfile"\ copy "%SubDir%\%~nA.mp3"
D:\CMDtest>
aktuell sieht die Batch-Datei folgendermaßen aus:
SET FFMPEG="D:\portableApps\ffmpeg\bin\ffmpeg.exe"
SET SubDir="D:\zumLoeschen\Kurzfile"
MD %SubDir%
for %%A in ("*.mp3") do %FFMPEG% -t 10 -i "%%A" -acodec copy "%SubDir%\%%~nA.mp3"
Wenn ich Deinen obigen Batch bei mir ausführe, läuft der einwandfrei durch.
(Ich habe einen anderen Pfad zur ffmpeg, aber das sollte nicht das Problem sein. Ich teste mal noch weiter).
Nur zur Sicherheit: Du hast mindestens 2 mp3-Dateien im gleichen Pfad gespeichert, wo Du obigen Batch ausführst?
Ich habe mir inzwischen die gleiche ffmpeg-7.0.1-essentials_build.zip von Heise besorgt.
Diese habe ich in das gleiche Verzeichnis wie bei Dir entpackt:
Dann habe ich mir ein Testverzeichnis C:\Temp\Test erstellt und dort Deinen bisherigen Test-Batch als T2.cmd erstellt. Im gleichen Verzeichnis C:\Temp\Test liegen zwei beliebige mp3-Dateien.
Starte ich T2 mit einem Doppelklick (oder tippe in einem CMD-Fenster in C:\Temp\test den Befehl t2.cmd ein), dann erstellt es ein neues Verzeichnis namens D:\zumLoeschen\Kurzfile und darin die beiden Kurzversionen der mp3-Dateien.
moment ... da ist kein MP3 drin, ... ich machs nochmal
jetzt haben wir die gleiche Umgebung
es kommt folgende Fehlermeldung:
C:\Temp\test>T2.cmd
C:\Temp\test>SET FFMPEG="D:\portableApps\ffmpeg\bin\ffmpeg.exe"
C:\Temp\test>SET SubDir="D:\zumLoeschen\Kurzfile"
C:\Temp\test>MD "D:\zumLoeschen\Kurzfile"
Ein Unterverzeichnis oder eine Datei mit dem Namen "D:\zumLoeschen\Kurzfile" existiert bereits.
Die folgende Verwendung des Pfadoperators zur Ersetzung eines Batchparameters
ist ungültig: %~nA.mp3"
Geben Sie CALL /? oder FOR /? ein, um herauszufinden, welche Formate gültig
sind.
Syntaxfehler.
C:\Temp\test>for FFMPEGA" -acodec copy ""D:\zumLoeschen\Kurzfile"\ copy "%SubDir%\%~nA.mp3"
C:\Temp\test>
Welche Windows-Version verwendest Du?
Windows 7?
Windows 10?
Windows 11?
daran dachte ich gerade .. win11 23H2 (B 22631)