我一直在重新编码一些旧的 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"