【发布时间】:2015-05-09 02:14:46
【问题描述】:
我了解到没有官方支持将 gps 位置元数据插入 .mp4 文件。但是,当我使用带有地理标记功能的 Sony Z2 时,我看到视频文件中插入了 gps 位置元数据。 ffmpeg 在将同一个文件导出到我的笔记本电脑后能够检测到元数据。有人知道在andriod ndk中是否有为此目的声明的新接口方法或api?
【问题讨论】:
标签: android video android-ndk ffmpeg gps
我了解到没有官方支持将 gps 位置元数据插入 .mp4 文件。但是,当我使用带有地理标记功能的 Sony Z2 时,我看到视频文件中插入了 gps 位置元数据。 ffmpeg 在将同一个文件导出到我的笔记本电脑后能够检测到元数据。有人知道在andriod ndk中是否有为此目的声明的新接口方法或api?
【问题讨论】:
标签: android video android-ndk ffmpeg gps
我最终使用https://www.bento4.com 传输在使用 ffmpeg 重新编码视频时丢失的 GPS 信息。
Android 手机将其存储在 [©xyz] 原子中,该原子是 [udta] 原子的成员,而后者又是 [moov] 原子的成员。 iPhone 或 iPad 将其存储在作为 [meta] atom 的一部分的众多原子中的某个位置,该原子是 [moov] atom 的成员。这就是这两个选项在 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] 原子以及其中的所有信息。
注意:版权标志不是美国代码页 437 的一部分,包含 ©xyz 的批处理文件将失败。首先使用 chcp 1250 更改为包含版权符号的代码页。
com.apple.quicktime.location.ISO6709 坐标可以从 input.mp4 复制到 output.mp4,方法是使用以下命令复制整个元原子以及包含该位置(和其他)的原子: mp4extract moov/meta input.mp4 temp.txt mp4edit --insert moov:temp.txt output.mp4 output_gps.mp4
要获得所有可用原子及其路径的概览,您可以运行 mp4dump 输入.mp4
您基本上可以将任何原子从 input.mp4 转移到 output.mp4,例如我还用它来保持 90 度旋转,通过替换 [tkhd] 原子在转换过程中丢失。
【讨论】: