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