使用 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"

相关内容