使用ffmpeg批次複製所有元數據

使用ffmpeg批次複製所有元數據

我一直在重新編碼一些舊的 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"

相關內容