
Ich habe einige alte MP4-Dateien neu kodiert und mit ffmpeg die Metadaten aus den alten Dateien in die neuen kopiert, und zwar mit:
ffmpeg -i YDXJ0100.mp4 -i YDXJ0100_1.mp4 -map 1 -map_metadata 0 -c copy YDXJ0100_.mp4
Wobei die erste Datei die alte Version ist, _1 die neue und _.mp4 die korrigierte Version.
Es ist jedoch sehr zeitaufwändig, dies Datei für Datei zu tun. Wie könnte ich es so schreiben, dass es für jede alte Datei (aber nicht für alle Dateien) funktioniert?
Update: Dieser Code funktioniert, mit Ausnahme der Änderungsdaten und anderer Dateizeitstempel:
for %%f in (*.mp4) do ffmpeg -i "%%f" -i "%%~nf_1.mp4" -map 1 -c copy -map_metadata 0 -map_metadata:s:v 0:s:v -map_metadata:s:a 0:s:a "%%~nf_.mp4"
Antwort1
Batchdatei:
@echo off
for %%f in (*.mp4) do ffmpeg -i "%%f" -i "%%~nf_1.mp4" -map 1 -map_metadata 0 -c copy "%%~nf_.mp4"