2016-04-12 28 views
1

ich, wie zu Charge gefunden MP3s MP4s mit dem Code unten in einer Batch-Datei konvertieren:Fehler beim mp3 (und Bild) zu mp4 umwandeln mit ffmpeg SPACES IN NAMEN

for %%f in (*.mp3) do ffmpeg -i %%f -loop 1 -i image.jpg -c:a copy -c:v libx264 -shortest %%~nf.mp4 

Es funktioniert, wenn nicht die feinen FILENAME enthält Leerzeichen: FILENAME.mp3 funktioniert einwandfrei, aber FILE NAME.mp3 gibt den Fehler "Keine solche Datei oder Verzeichnis".

Ich habe versucht, die "delims =" vor und nach dem %% f, aber es sagt, dass es unerwartet ist. Irgendwelche Ideen?

Danke.

+0

Put-Zitate um die Dateinamen –

Antwort

1
for %%f in (*.mp3) do ffmpeg -i "%%f" -loop 1 -i image.jpg -c:a copy -c:v libx264 -shortest "%%~nf.mp4" 

Im Allgemeinen "quote filenames that may contain spaces"

"delims=" kann nur mit for /f wie in

for /f "delims=" %%f in (... 

Wo die porpose der for in erster Linie aus den Dateien Zeilen zu lesen ist verwendet werden.

Verwenden Sie 'dir /b /a-d filemask' - einschließlich der Angebote, um for /f mit einer Liste von Dateinamen zu verarbeiten. Die /b bedeutet "Grundform" (nur Namen) und /a-d bedeutet "keine Verzeichnisse".

Wenn Ihre Dateinamen Trennzeichen wie Leerzeichen enthalten, verwenden Sie "delims =", andernfalls wird das implizite "Tokens = 1" den am ersten Trennzeichen angewendeten Wert abschneiden.

+0

Erwägen Sie, '-pix_fmt yuv420p' als Ausgabeoption hinzuzufügen. Andernfalls kann die Ausgabe ein Chromasubsampling-Schema verwenden, das von dummen Spielern nicht verarbeitet werden kann. – LordNeckbeard

0

Vielen Dank für Ihre Hilfe, die Zitate sind, was den Trick gemacht hat.

ich dies geändert:

for %%f in (*.mp3) do ffmpeg -i %%f -loop 1 -i image.jpg -c:a copy -c:v libx264 -shortest %%~nf.mp4 

Um dies:

for %%f in ("*.mp3") do ffmpeg -i "%%f" -loop 1 -i image.jpg -c:a copy -c:v libx264 -flags global_header -pix_fmt yuv420p -shortest "%%~nf.mp4" 

FYI: Extra schaltet hinzugefügt wurden, hatte aber nichts mit den Räumen verursacht Probleme zu tun:

-flags global_header -pix_fmt yuv420p 
Verwandte Themen