带gps位置的mp4视频文件

时间:2015-03-07 15:14:11

标签: android video android-ndk ffmpeg gps

我了解到没有官方支持将gps位置元数据插入到.mp4文件中。但是,当我使用带有地理标记的Sony Z2时,我看到gps位置元数据插入到视频文件中。 ffmpeg能够在将同一文件导出到我的笔记本电脑后检测元数据。任何人都知道在andriod ndk中是否有为此目的声明的新接口方法或api?

1 个答案:

答案 0 :(得分:0)

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

Android手机将其存储在[©xyz]原子中,该原子是[udta]原子的成员,后者又是[moov]原子的成员。 iPhone或iPad将它存储在作为[moov]原子成员的[meta]原子的众多原子中的某个位置。这就是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 input.mp4

你基本上可以将任何原子从input.mp4转移到output.mp4,例如我还用它来保持90度旋转,在转换过程中通过替换[tkhd]原子而丢失。