Luk*_*rns 5 metadata ffmpeg apple-live-photos
根据Apple Live Photo 文件格式,JPEG 和 MOV 需要写入三部分元数据才能被接受为实时照片。我可以使用 exiftool 和 ffmpeg 编写必要的内容标识符元数据。
\n对于 JPEG:
\nexiftool -TagsFromFile reference.jpeg -makernotes -ContentIdentifier image.jpeg\nexiftool -ContentIdentifier="$id" image.jpeg\n
Run Code Online (Sandbox Code Playgroud)\n同样,ffmpeg 可用于写入具有匹配 id 的顶级 Quicktime 元数据。
\n但是我在定时元数据方面遇到了麻烦:["com.apple.quicktime.still-image-time" : 0xFF]
。
我什至无法使用 ffmpeg 生成现有实时照片 MOV 文件的副本,以保留必要的定时元数据。
\nffmpeg -i original.mov -map 0 -c copy -movflags use_metadata_tags copy.mov\n
Run Code Online (Sandbox Code Playgroud)\n复制全局元数据(即 com.apple.quicktime.content.identifier),但丢失必要的静态图像时间,可以使用 exiftool 确认:
\n> exiftool -G -U -ee original.mov | grep \'Still Image Time\'\n[QuickTime] Still Image Time : -1\n> exiftool -G -U -ee copy.mov | grep \'Still Image Time\'\n> \n
Run Code Online (Sandbox Code Playgroud)\n如何使用 ffmpeg\xe2\x80\x94 特别是静态图像时间数据写入定时元数据?
\n编辑:看起来这可能会发生,因为 ffmpeg 不知道如何处理mebx
数据流上的标签:
[mov @ 0x7fb232091400] Unknown hldr_type for mebx, writing dummy values\n
Run Code Online (Sandbox Code Playgroud)\n而且 ffmpeg 似乎没有办法复制未知流。这似乎也是处理fdsc
GoPro 元数据流中的标签的问题(例如,请参阅https://gist.github.com/radimklaska/8974637522a751adb49db0de3be482c9#file-gopro_hevc_to_dnxhd-sh-L125),因此它经常被复制过来作为gpmd
数据,这确保它不会被虚拟值覆盖,但此技巧在实时照片元数据的情况下不起作用mebx
。
我也有同样的问题,我想用bento4工具应该可以。我之前用它来复制也存储在这个结构中的 GPS 元数据,它在这种情况下也应该工作,但是我对它的了解不够,无法让它工作。
似乎mebx
数据存储在 中moov/trak/mdia/minf/stbl/stsd
,但是我无法正确移植它。
例如,这不起作用并创建一个大的损坏文件:
# Get atom from original file
mp4extract moov/trak IMG_1337.MOV trak.atom
# insert into converted file
mp4edit --insert moov:trak.atom IMG_1337-converted.MOV IMG_1337-converted-metadata.MOV
Run Code Online (Sandbox Code Playgroud)
希望有人可以在此基础上继续发展。
归档时间: |
|
查看次数: |
1113 次 |
最近记录: |