带有GPS位置的MP4视频文件

3

我曾经认为官方不支持将GPS位置元数据插入.mp4文件。然而,当我使用带有地理标记的Sony Z2时,我发现视频文件中插入了GPS位置元数据。在将相同文件导出到我的笔记本电脑后,ffmpeg能够检测到元数据。是否有新的接口方法或API在安卓NDK中声明用于此目的?

1个回答

1

最终我使用了 https://www.bento4.com 来传输 GPS 信息,这些信息在使用 ffmpeg 重新编码视频时丢失了。

Android 手机将其存储在 [©xyz] 原子中,该原子是 [udta] 原子的成员,而后者又是 [moov] 原子的成员。iPhone 或 iPad 将其存储在 [meta] 原子的众多子原子中的某个位置,而 [meta] 原子是 [moov] 原子的成员。在 Mediainfo 中,这两个选项看起来像这样: ©xyz : com.apple.quicktime.location.ISO6709 :

可以使用以下命令将 ©xyz 坐标从 input.mp4 复制到 output.mp4: mp4extract moov/udta/©xyz input.mp4 temp.txt mp4edit --insert moov:temp.txt output.mp4 output_gps.mp4

您还可以复制整个 [udta] 原子以及其中包含的所有信息。

注意:版权符号不属于 US codepage 437,包含 ©xyz 的批处理文件将失败。请先切换到包含版权符号的代码页,例如 chcp 1250。

可以通过使用以下命令将整个meta原子以及包含位置(和其他信息)的原子从input.mp4复制到output.mp4中来复制com.apple.quicktime.location.ISO6709坐标:

mp4extract moov/meta input.mp4 temp.txt

mp4edit --insert moov:temp.txt output.mp4 output_gps.mp4

要获取所有可用原子及其路径的概述,可以运行mp4dump input.mp4。

基本上,您可以将任何原子从input.mp4传输到output.mp4中,例如,我还使用它来替换丢失了的90度旋转[tkhd]原子。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接