结论:视频文件里内嵌的 GPS 坐标(EXIF、QuickTime ©xyz)对生成式引擎的检索和引用几乎不起作用,AI 抓不到 MP4 二进制里的经纬度;真正决定这段视频能不能被 AI 摘要引用的,是你把地理信息同步外化成三层可解析内容:页面正文的地名实体、JSON-LD 的 contentLocation、以及字幕转写文本。元数据本身只承担溯源和校验的角色。
视频的地理元数据藏在哪些字段里?
一条视频的拍摄地点最多同时存在于三个位置:QuickTime/MP4 的 ©xyz atom、XMP 侧车文件、导出时写入的 format 级 tags。剪辑软件默认只保留最后一类,甚至全部丢弃。
- MOV/MP4:udta 下的 ©xyz atom,值是 ISO 6709 字符串,例如
+31.2397+121.4900/;iPhone 原生相机写入的键名是 com.apple.quicktime.location.ISO6709。
- Android 相机:写在 MP4 的 ilst
location 键里,格式同样是 ISO 6709。
- XMP:字段为
exif:GPSLatitude / exif:GPSLongitude,用度分秒表示,如 31,14.382N。
- 剪映、Premiere 导出默认不写回 ©xyz,转一次码基本清零。
ISO 6709 是地理坐标的文本表示标准,格式为「纬度在前、经度在后、各带正负号、末尾斜杠表示无高度」;小数点后 4 位约对应 11 米精度。
怎么检查视频里到底有没有地理元数据?
结论:两条命令就能确认,不要靠剪辑软件界面猜测。
ffprobe -v error -show_entries format_tags -of json in.mp4
exiftool -a -G1 -s in.mp4 | grep -iE "gps|location|xyz"
ffprobe 看 format 层 tags,exiftool -G1 会标出字段所在的组(QuickTime、XMP、EXIF)。命令没输出,就说明元数据已经丢了,需要补写。
怎么把坐标写回视频并保证转码后不丢?
结论:写入用 exiftool 一行搞定,但转码后必须重新写一次——ffmpeg -map_metadata 0 只搬运 format 级 tags,搬不动 udta 下的 ©xyz。
写回命令(以上海外滩为例):
exiftool -QuickTime:GPSCoordinates="+31.2397+121.4900/" in.mp4
转码、压制后再补一次:
ffmpeg -i in.mp4 -c:v libx264 -crf 23 -map_metadata 0 out.mp4
exiftool -QuickTime:GPSCoordinates="+31.2397+121.4900/" out.mp4
不想公开精确点位时一键剥离:exiftool -gps:all= -xmp:geotag= -QuickTime:GPSCoordinates= out.mp4,坐标只保留在页面文本里,且模糊到区级。
为什么光有 GPS 元数据 AI 检索不到?
结论:主流 AI 检索链路是「抓 HTML → 抽正文与结构化数据 → 生成摘要」,没有任何一环会解析 MP4 的二进制 atom;视频必须有一个能被爬取的 HTML 承载页。
只发在第三方平台,抓取权和引用权在平台手里,你拿不到摘要里的品牌曝光。正确做法是自有域名建视频详情页,页面包含标题、描述、转写全文,再配一份视频站点地图:thumbnail_loc(缩略图 160×90 至 1920×1080 像素)、title、description、content_loc 或 player_loc 四项必填。
JSON-LD 里视频的地理位置怎么标才规范?
结论:用 VideoObject + contentLocation 指向 Place,Place 内嵌 geo 的 GeoCoordinates,经纬度必须是十进制度数字,不能填度分秒字符串。
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "外滩夜景实拍",
"description": "上海黄浦区外滩滨江步道实拍,坐标 31.2397, 121.4900",
"uploadDate": "2025-03-01T10:00:00+08:00",
"duration": "PT3M42S",
"contentUrl": "https://example.com/v/waitan.mp4",
"thumbnailUrl": "https://example.com/v/waitan.jpg",
"contentLocation": {
"@type": "Place",
"name": "上海市黄浦区外滩",
"geo": { "@type": "GeoCoordinates", "latitude": 31.2397, "longitude": 121.4900 }
}
}
uploadDate 带时区偏移、duration 用 ISO 8601 时长格式(3 分 42 秒写作 PT3M42S),这两个字段缺失会被判定为不完整结构化数据。
字幕和正文怎么配合才能被摘要引用?
结论:把地名念出来、写进字幕、写进首段,三处口径一致,是 AI 摘要最稳的抓取路径。
具体三步:一,口播里完整念一次「省+市+区+POI」,别只说「这里」;二,上传 WebVTT 字幕并用 <track kind="captions" src="waitan.vtt" srclang="zh" label="中文"> 挂到 video 标签上;三,正文首段写一句含地名与坐标的完整结论句,AI 引擎摘要时优先取首段。三级地名链要保持一致,标题写「外滩」正文写「陆家嘴」会直接稀释实体权重。
有哪些高频错误?
- 度分秒当十进制用:31°14′23″N 应换算成 31.2397,直接写成 31.1423 会偏到几十公里外。
- 西经、南纬忘记负号,坐标整体镜像。
- 一个视频挂多个地点,AI 无法判断主地点,一个视频只标一个主坐标,其余放正文文字。
- 只做视频内的地图动画、画面角标地名条。这些要靠 OCR 和画面理解,成本高、命中率低,优先级排在文本层之后。
顺带一提,在本站发帖分享这类案例时,普通附件单文件上限 10MB,图片上限 5MB,视频本体建议放自有站点,帖子里只贴链接和 JSON-LD 片段,方便别人复制复现。
把上面这几步串起来就是一条完整链路:exiftool 补写 ©xyz 保证素材可溯源 → 自有页面承载视频 → 正文首段给地名与坐标 → JSON-LD 标 contentLocation → 字幕转写补齐口语地名。地理元数据是底料,能被检索和引用的是翻译出来的那三层文本与结构化数据。