
Я перекодировал несколько старых файлов mp4 и использовал ffmpeg для копирования метаданных из старых файлов в новые с помощью:
ffmpeg -i YDXJ0100.mp4 -i YDXJ0100_1.mp4 -map 1 -map_metadata 0 -c copy YDXJ0100_.mp4
Где первый файл — старая версия, _1 — новая, а _.mp4 — исправленная.
Однако, это очень долго делать файл за файлом. Как я могу написать это так, чтобы это делалось для каждого старого файла (но не для всех файлов)?
Обновление: этот код работает, за исключением изменения данных и других временных меток файлов:
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"
решение1
пакетный файл:
@echo off
for %%f in (*.mp4) do ffmpeg -i "%%f" -i "%%~nf_1.mp4" -map 1 -map_metadata 0 -c copy "%%~nf_.mp4"