是否可以更改 exiftool 无法写入的标签?

是否可以更改 exiftool 无法写入的标签?

我有一个(杜比视界)视频文件test.mp4,但hev1在视频轨道Codec ID(ffmpeg)或Compressor ID(exiftool)中

exiftool -CompatibleBrands -CompressorID test.mp4
Compatible Brands               : isom, dby1, iso2, mp41
Compressor ID                   : hev1

当我运行exiftool -CompatibleBrands=isom -CompressorID=dvhe它时显示

Warning: Sorry, CompatibleBrands is not writable
Warning: Sorry, CompressorID is not writable
Nothing to do.

视频流HDR format : Dolby Vision, Version 1.0, dvhe.05.07, BL+RPU在mediainfo里,所以应该是dvhe。

我也尝试过ffmpeg -i test.mp4 -map 0 -codec copy -brand dvhe -strict experimental test2.mp4,但是 hev1 仍然存在。

perl -pi -e 's/hev1/dvhe/g' test.mp4部分起作用,但也会发生变化Format,总体Codec ID而言dvheCodec IDdvhe (dvhe/dby1/iso2/mp41)

是否有可能更改这两个(以及其他不可写的)部分?

答案1

CompressorIDQuickTime ImageDesc 标签,而是CompatibleBrands一个 QuickTime 文件类型标签

这些标签不可写,因为它们对于播放此媒体至关重要。您无法更改这些标签,至少不能使用 ExifTool。使用某些视频编辑程序可能可以,但我不推荐任何此类编辑器。

要安全地更改这些标签,最简单的方法是重新编码媒体文件。

答案2

理论上,使用 ExifTool 可以更改这些标签。但你需要重新定义它的配置为此并覆盖那里的标签定义,将其Writable类型更改为。可以在上例中的部分string下找到示例,例如:%Image::ExifTool::UserDefined

%Image::ExifTool::UserDefined = (
    'Image::ExifTool::Exif::Main' => {
        0xd000 => {
            Name => 'NewEXIFTag',
            Writable => 'int16u',
            WriteGroup => 'IFD0',
        },
    },
);

配置数据需要根据表格等内容调整以适应您的标签这里源代码

现在,你应该弄乱它并尝试更改这些标签吗?当然,你可以在备份文件上进行测试,但很可能是浪费时间。即使它最终让你编辑它们(据@StarGeek 说惯于),标签的名称明确地暗示了一些不应该手动修改的东西,比如设备/软件兼容性。

这看起来像一个明显的 XY 问题,我建议询问你的主要目标。

相关内容