向视频文件添加/编辑自定义元数据字段而无需重新混合?

向视频文件添加/编辑自定义元数据字段而无需重新混合?

TL;DR - 寻找编辑/添加的方法风俗元数据字段到视频文件,无需重新混合

我有一些媒体文件,我将自定义元数据字段添加到(主要是下载的 mkv 文件yt-dlp但我也有一些 mp4 视频,偶尔还有一些 m4a/m4b 音频文件,通常是播客或类似的东西)。

每隔一段时间,特别是如果源信息不正确时,我会返回并进行修改,有时甚至添加新字段。

我知道我可以这样ffmpeg做,例如使用以下示例片段:

$
  filePath=sample.mkv;
  propName=MY_CUSTOM_FIELD;
  propValue='The quick brown fox jumps over the lazy dog';
  tempFilePath=temp.mkv
$ mediainfo --Language=raw --Full --Inform="General;%${propName}%" "${filePath}"
 
$ ffmpeg -i "${filePath}" -movflags use_metadata_tags -loglevel quiet -c copy -metadata "${propName}"="${propValue}" "${tempFilePath}";
 
$ mv "${tempFilePath}" "${filePath}";
 
$ mediainfo --Language=raw --Full --Inform="General;%${propName}%" "${filePath}"
The quick brown fox jumps over the lazy dog

这很好用除了因为它重新混合了视频。根据文件大小和系统负载,重新混合最终可能需要一段时间。我尝试研究其他工具,例如 AtomicParsley,它似乎只支持标准化标签。同样,我找到了一个建议使用mp4box(在 Fedora 上,二进制文件位于RpmFusion 的包MP4Boxgpac),但它似乎再次无法与自定义标签一起使用 - 至少如果可以的话,那么在我的一生中,我仍然看不到它阅读文档半个多小时。

有什么方法可以做类似于我ffmpeg上面的命令的事情没有通过 remux,最重要的是,这将适用于风俗领域?

我是假设我不能只是对ffmpeg元数据进行就地、无重新混合的编辑,但如果我错了那就太棒了......

不管怎样,我对几乎任何 FOSS 工具/项目都持开放态度,只要我能让它在 Fedora(或其他 Linux)上运行,并且有一个示例说明如何执行我所要求的操作。对于非自由和开源软件的东西,我会添加额外的要求,即它是无成本或低成本的,并且不做任何太令人讨厌的事情(例如,没有遥测和/或如果我使用firejail等来阻止它,它不会停止工作网络访问)。我更喜欢原生 FOSS CLI 应用程序(更容易编写脚本),但如果有一个 GUI 甚至是一个免费软件 Windows 应用程序可以在 wine/mono/etc 下工作并且它可以满足我的要求,那么无论如何,请仍然提及它。

相关内容