如何批量编辑 mp4 的视频文件元数据?

t3r*_*nal 5 command-line metadata mp4 16.04

我有许多需要包含相同元数据的 mp4 文件,例如。艺术家和专辑。

如何批量编辑元数据而不是一一进行?

Too*_*ets 8

在继续之前,请备份您要处理的视频。下面的命令替换现有文件。

find /home/user/videos-to-process/ -type f -iname '*.mp4' -exec ffmpeg -i "{}" -codec copy -metadata artist="John Smith" -metadata album="Foo Bar" "{}.new.mp4" \; -exec mv "{}.new.mp4" "{}" \;
Run Code Online (Sandbox Code Playgroud)

这是相同的命令,为清楚起见格式化:

find /home/user/videos-to-process/ -type f -iname '*.mp4' \
  -exec ffmpeg \
    -i "{}" \
    -codec copy \
    -metadata artist="John Smith" \
    -metadata album="Foo Bar" \
    "{}.new.mp4" \; \
  -exec mv \
    "{}.new.mp4" "{}" \;
Run Code Online (Sandbox Code Playgroud)

这有什么作用?

  1. 递归查找 /home/user/videos-to-process 中的所有 .mp4 文件(不区分大小写的扩展名比较)。
  2. 使用所需的元数据创建一个新的视频文件,复制现有的流。
  3. 用新的视频文件替换原始视频文件。

步骤 2复制现有的流;我们没有重新编码(这是一件好事)。您只是在更改元数据。我在一个包含六个文件的目录中运行了这个,每个文件大约 1GB。总处理时间约为 30 秒。

  • @ridgy [exiftool 文档](http://owl.phy.queensu.ca/~phil/exiftool/TagNames/QuickTime.html) 显示大多数字段不可写。唯一可写的字段是 PreviewDate、MediaCreateDate、MediaModifyDate、TrackCreateDate、TrackModifyDate、CreateDate 和 ModifyDate。您是否能够使用 exiftool 添加或修改专辑或艺术家? (3认同)