使用FFMPEG将实时照片元数据写入视频

使用FFMPEG将实时照片元数据写入视频,ffmpeg,metadata,apple-live-photos,Ffmpeg,Metadata,Apple Live Photos,根据,JPEG和MOV要被接受为实时照片,需要编写三段元数据。我可以使用exiftool和ffmpeg编写必要的内容标识符元数据 ffmpeg -i original.mov -map 0 -c copy -movflags use_metadata_tags copy.mov 对于JPEG: exiftool -TagsFromFile reference.jpeg -makernotes -ContentIdentifier image.jpeg exiftool -ContentIden

根据,JPEG和MOV要被接受为实时照片,需要编写三段元数据。我可以使用exiftool和ffmpeg编写必要的内容标识符元数据

ffmpeg -i original.mov -map 0 -c copy -movflags use_metadata_tags copy.mov
对于JPEG:

exiftool -TagsFromFile reference.jpeg -makernotes -ContentIdentifier image.jpeg
exiftool -ContentIdentifier="$id" image.jpeg
类似地,ffmpeg可用于编写具有匹配id的顶级Quicktime元数据

但是,我在定时元数据方面遇到了问题:
[“com.apple.quicktime.still image time”:0xFF]

我甚至无法使用ffmpeg生成现有实时照片MOV文件的副本,以保留必要的定时元数据

ffmpeg -i original.mov -map 0 -c copy -movflags use_metadata_tags copy.mov
复制全局元数据(即com.apple.quicktime.content.identifier),但丢失必要的静止图像时间,该时间可使用exiftool确认:

> exiftool -G -U -ee original.mov | grep 'Still Image Time'
[QuickTime]     Still Image Time                : -1
> exiftool -G -U -ee copy.mov | grep 'Still Image Time'
> 
如何使用ffmpeg编写定时元数据,特别是静态图像时间数据

编辑:这可能是因为ffmpeg不知道如何处理数据流上的
mebx
标记:

[mov @ 0x7fb232091400] Unknown hldr_type for mebx, writing dummy values
ffmpeg似乎没有办法复制未知流。这似乎也是处理GoPro元数据流中的
fdsc
标记的一个问题(例如,请参见),因此它通常被复制为
gpmd
数据,以确保它不会被伪值覆盖,但这一技巧在实时照片
mebx
元数据的情况下不起作用

ffmpeg -i original.mov -map 0 -c copy -movflags use_metadata_tags copy.mov