Hallo,
ich möchte alle *.mp4 Dateien in einem Verzeichnis mit ffmpeg bearbeiten.
Die Variante find ... -exec ffmpeg ... \; funktioniert, bietet mir allerdings zu wenig Möglichkeiten innerhalb -exec ... \;
Das Herausfinden der mp4 Dateien ist kein Problem. Sie werden in der Datei: /tmp/MP4-Dateiliste.txt geschrieben.
Code:
find /tmp/Videotest -maxdepth 1 -name "*mp4" > "/tmp/Videotest/MP4-Dateiliste.txt" 2>/dev/null
Das Einlesen einer Datei funktioniert nach dem Schema:
Code:
while read ZEILE
do
echo ffmpeg -i "$ZEILE" -c:v libx264 -crf 25 -preset slow -c:a aac ${ZEILE}.bearbeitet.mp4
done < /tmp/Videotest/MP4-Dateiliste.txt
Die beabsichtigten Programmaufrufe werden mittels echo exakt angezeigt:
Code:
ffmpeg -i /tmp/Videotest/005.mp4 -c:v libx264 -crf 25 -preset slow -c:a aac /tmp/Videotest/005.mp4.bearbeitet.mp4
ffmpeg -i /tmp/Videotest/001.mp4 -c:v libx264 -crf 25 -preset slow -c:a aac /tmp/Videotest/001.mp4.bearbeitet.mp4
ffmpeg -i /tmp/Videotest/004.mp4 -c:v libx264 -crf 25 -preset slow -c:a aac /tmp/Videotest/004.mp4.bearbeitet.mp4
ffmpeg -i /tmp/Videotest/002.mp4 -c:v libx264 -crf 25 -preset slow -c:a aac /tmp/Videotest/002.mp4.bearbeitet.mp4
ffmpeg -i /tmp/Videotest/003.mp4 -c:v libx264 -crf 25 -preset slow -c:a aac /tmp/Videotest/003.mp4.bearbeitet.mp4
ffmpeg -i /tmp/Videotest/006.mp4 -c:v libx264 -crf 25 -preset slow -c:a aac /tmp/Videotest/006.mp4.bearbeitet.mp4
Entferne ich das echo vor ffmpeg, dann werden die Zeilen anders eingelesen.
Code:
while read ZEILE
do
ffmpeg -i "$ZEILE" -c:v libx264 -crf 25 -preset slow -c:a aac ${ZEILE}.bearbeitet.mp4
done < /tmp/Videotest/MP4-Dateiliste.txt
Ausgabe:
Code:
ffmpeg -i /tmp/Videotest/005.mp4 -crf 25 -preset slow -c:a aac /tmp/Videotest/005.mp4.bearbeitet.mp4
ffmpeg -i /Videotest/004.mp4 -crf 25 -preset slow -c:a aac /Videotest/004.mp4.bearbeitet.mp4
ffmpeg -i /tmp/Videotest/002.mp4 -crf 25 -preset slow -c:a aac /tmp/Videotest/002.mp4.bearbeitet.mp4
ffmpeg -i /Videotest/006.mp4 -c:v libx264 -crf 25 -preset slow -c:a aac /Videotest/006.mp4.bearbeitet.mp4
2 von 6 Dateien werden wie gewünscht konvertiert.
2 Dateinamen werden am Anfang gekürzt - ffmpeg kann die Datei nicht finden
2 Dateien werden gar nicht aufgerufen.
Möglicherweise gibt ffmpeg einen Wert zurück, den read einliesst.
Was kann ich tun, damit ffmpeg richtig aufgerufen wird - ohne read zu beeinflussen?
Vielen Dank
Ferdi
Lesezeichen