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"

関連情報