文章

LLM 长视频理解生产实战:用帧采样、时间戳索引与片段回放稳定问答质量

本文讲解长视频问答进入生产前的工程治理方法,覆盖帧采样、镜头切分、字幕融合、时间戳索引、片段回放、证据校验与上线检查,帮助团队降低漏看关键帧和时间顺序错误。

背景:长视频问答的核心问题不是”能不能看视频”

多模态大模型已经可以处理视频输入,能够完成摘要、问答、信息抽取和按时间点提问。但在生产系统里,长视频理解的问题并不只是模型能力,而是一个完整的工程链路问题。

一个短视频摘要 Demo 可以直接上传视频并提问;一个生产级视频知识库却要面对更复杂的情况:视频可能长达几十分钟甚至数小时,画面中有快速动作、字幕、多人对话、屏幕文字、重复场景和噪声片段。用户的问题也不一定是”总结一下”,而可能是”第 17 分钟之后谁先操作了设备""哪一段出现了安全帽缺失""这个广告里产品卖点第一次出现在哪个镜头”。

这类问题要求系统不仅能回答,还要能说明答案来自哪个时间段、哪一帧、哪句字幕或哪段镜头。否则长视频问答很容易出现三类质量回退:漏看关键帧混淆事件顺序给出无法复核的结论

资料基础:官方能力与研究结论给出的共同信号

Google Gemini API 的视频理解文档明确说明,模型可用于描述、分割、抽取视频信息、回答视频内容问题,并支持引用视频中的具体时间戳。它也说明了不同输入方式的适用场景,例如 File API 适合大文件和可复用视频,Inline Data 更适合小文件和短视频,YouTube URL 可用于公开视频。

同一文档还给出了对生产设计非常关键的限制:Gemini 默认会以约 1 FPS 的方式处理视觉描述,这对多数内容有效,但快速动作或快速切换场景可能丢失细节;视频 Token 也会随时长增长,在默认媒体分辨率下约为每秒 300 tokens,低媒体分辨率约为每秒 100 tokens。

Azure AI Video Indexer 的文档则从传统视频索引系统角度补充了工程事实:生产视频系统通常会抽取转写、字幕、关键帧、对象、场景、镜头、OCR、人物、标签和时间戳等结构化洞察,用这些中间产物支持深度搜索、内容创作、可访问性、推荐和审核。

Video-MME、TemporalBench、Moment Sampling 等论文进一步说明,长视频理解的难点不仅是静态视觉识别,还包括跨时间段的信息聚合、事件顺序、动作频次、快速变化和问题相关关键帧选择。换句话说,生产系统不能只依赖”把完整视频交给模型”,还要设计一套面向问题和证据的采样、索引与回放机制。

核心原理:把长视频拆成可检索、可复核、可回放的证据单元

长视频理解系统可以拆成三层。

第一层:视频结构化预处理。 系统把原始视频切成片段,识别镜头边界,抽取关键帧,生成字幕或转写文本,记录 OCR、对象标签、人物或音频事件,并为所有产物绑定统一时间戳。

第二层:问题相关证据检索。 当用户提问时,系统不是直接把整段视频送入模型,而是先用字幕、OCR、镜头标签、关键帧描述和向量检索找出候选时间段,再根据问题类型决定是否扩大前后窗口。

第三层:多模态复核生成。 模型只接收候选片段、关键帧、字幕和必要上下文,并被要求输出答案、证据时间戳、置信度和可回放片段。这样可以降低成本,也能减少模型根据全局印象猜测的空间。

生产级长视频问答的目标不是一次性”看懂所有内容”,而是让系统在每个问题上都能找到足够小、足够相关、足够可验证的证据包。

工程落地:一条稳定的视频问答流水线

1. 上传与预处理

视频进入系统后,先不要立即调用大模型做长上下文问答。更稳妥的做法是进入异步处理队列,生成基础资产:原始视频、低分辨率代理文件、音频轨、字幕、镜头切分、关键帧、OCR、缩略图和对象标签。

需要特别注意的是,所有中间产物必须使用统一时间轴。字幕的开始和结束时间、关键帧时间点、镜头边界、OCR 出现时间、对象出现时间都应该落到同一套 timestamp schema 中。后续问答、回放、审计和人工复核都依赖这一点。

2. 镜头切分与关键帧采样

最简单的做法是固定采样,例如每秒一帧。但固定采样不是万能方案。它适合课程视频、会议视频、访谈和低运动内容;对于体育、监控、广告、操作演示、游戏录像和短镜头频繁切换的视频,固定低 FPS 可能直接错过关键动作。

生产系统可以采用三层采样策略:

采样层策略适用场景
基础采样按固定 FPS 或固定间隔获取全局摘要能力全局概览、摘要类任务
镜头采样每个 shot 至少保留一个稳定关键帧,避免长静态片段浪费预算静态场景、长会议、课程
问题驱动采样用户问题涉及动作、顺序、计数、细节时,提高候选片段附近采样密度精细问答、合规审计

一个可落地的配置示例如下:

{
  "base_sampling": {
    "fps": 1,
    "max_frames_per_video": 3600
  },
  "shot_sampling": {
    "min_keyframes_per_shot": 1,
    "max_keyframes_per_shot": 5,
    "prefer_stable_frames": true
  },
  "question_aware_sampling": {
    "enabled": true,
    "high_motion_window_seconds": 8,
    "timestamp_padding_seconds": 5,
    "increase_fps_for_actions": true
  },
  "evidence_policy": {
    "require_timestamp": true,
    "require_replayable_clip": true,
    "max_clip_length_seconds": 45
  }
}

这类配置不要一次写死,应按业务场景灰度调整。例如教育视频更依赖字幕和章节,监控视频更依赖人、物和事件时间,广告视频更依赖镜头节奏和视觉卖点。

3. 时间戳索引

长视频问答系统至少需要维护四类索引:

索引类型记录内容适用问答类型
字幕索引每句话的起止时间、说话人、语言、转写置信度和原文”谁说了什么""哪里提到某个概念”
视觉索引关键帧描述、OCR、对象、场景标签、镜头边界”画面中出现了什么""什么时候出现某个标志或物品”
片段向量索引视频片段的文本摘要、字幕、OCR 和关键帧描述向量化从问题召回相关片段
证据索引模型历史回答关联的 clip_id、timestamp、frame_id、字幕段和人工复核状态质量审计、回放错误案例

4. 片段回放与二次复核

模型回答长视频问题时,最好不要只返回自然语言结论。更稳妥的输出结构应包含:答案、时间戳、候选片段、引用字幕、关键帧 ID、置信度和无法确认的部分。

业务系统收到回答后,可以根据问题风险决定是否触发二次复核:

  • 普通摘要类问题:允许直接输出,但保留片段引用。
  • 检索定位类问题:必须返回可点击时间戳。
  • 合规、安全、事故分析类问题:必须附带片段回放和人工复核入口。
  • 模型无法定位证据:返回”未找到可靠证据”,而不是编造答案。

适用场景

长视频理解流水线适合以下场景:

  • 企业培训视频问答:按课程片段、字幕和 PPT OCR 定位答案。
  • 会议与访谈分析:结合说话人、字幕和章节摘要做检索。
  • 监控与安全巡检:定位人员、设备、异常动作和事件时间。
  • 营销与广告审核:抽取品牌露出、字幕卖点、镜头节奏和风险内容。
  • 客服录屏分析:结合屏幕 OCR、鼠标操作、语音转写和时间轴复核问题。

不太适合的场景也要提前说明。如果业务要求毫秒级实时理解,或者必须对每一帧做高精度检测,单纯依赖通用多模态 LLM 并不合适,通常还需要专用 CV 模型、流式处理和事件检测系统。

常见误区

误区一:只提高模型能力,不治理采样链路

更强的模型可以提升理解能力,但如果关键帧没有进入上下文,模型仍然无法回答。长视频系统的第一质量门槛是采样和召回,而不是生成。

误区二:把字幕当成完整视频理解

字幕能覆盖语音信息,但不能覆盖画面动作、屏幕文字、对象关系和无声事件。很多安全、广告、操作类问题必须同时看字幕、OCR、关键帧和镜头片段。

误区三:答案没有时间戳也算通过

长视频问答如果不能定位证据,就很难被信任。生产系统应把时间戳、片段 ID、关键帧和字幕引用作为默认输出要求,而不是可选增强项。

误区四:固定 FPS 适合所有视频

固定采样容易实现,但对快速运动和短镜头内容不稳定。更合理的做法是先用固定采样覆盖全局,再用镜头变化、问题意图和候选片段做局部加密采样。

上线检查

上线前至少检查以下事项:

  • 视频上传、转码、字幕、关键帧、OCR、镜头切分是否有完整状态机
  • 所有中间产物是否绑定统一时间轴
  • 是否区分摘要、定位、计数、顺序、合规判断等问题类型
  • 是否有问题驱动的候选片段召回策略
  • 模型输出是否强制包含证据时间戳和片段 ID
  • 是否能对回答进行片段回放
  • 是否有”找不到证据”的降级回答
  • 是否记录回答、证据、模型版本、采样配置和人工复核结果
  • 是否有按视频类型划分的回归测试集
  • 是否监控关键帧遗漏、无证据回答、人工驳回率、平均处理时长和每分钟视频成本

如何评估长视频理解质量

不要只看最终答案准确率。还要评估以下维度:

评估维度说明
证据命中率模型回答是否能在视频中找到对应证据片段
时间戳偏差引用的时间戳与实际事件时间的偏差
关键帧召回率问题相关关键帧是否被成功采样和送入上下文
字幕与视觉冲突处理字幕内容与画面内容不一致时的处理策略
人工复核通过率人工复核后认定回答正确的比例
无证据回答比例模型正确识别无法回答并降级的比例
不同视频类型稳定性在课程、监控、广告、访谈等类型上的质量方差

参考资料

常见问题

长视频问答为什么不能只把整段视频直接丢给多模态模型?
长视频会带来处理延迟、Token 成本和关键帧遗漏问题。生产系统通常需要先做镜头切分、字幕对齐、帧采样和时间戳索引,再把与问题相关的片段送入模型复核。
帧采样应该固定每秒一帧,还是按问题动态选择?
固定采样适合摘要和低风险检索,动态采样更适合细粒度问答。涉及动作顺序、计数、快速变化和证据要求的任务,应结合镜头变化、字幕命中和问题意图调整采样密度。
如何判断视频问答结果是否可靠?
可靠结果应能返回时间戳、证据片段、字幕或关键帧依据,并支持片段回放复核。无法定位证据的回答应降级为不确定、请求人工复核或返回可回放候选片段。
长视频问答必须使用视频原生模型吗?
不一定。对于会议、课程和访谈,字幕加关键帧可能已经足够。对于动作、场景变化、视觉细节和无声事件,视频原生模型或更高密度帧采样会更有价值。生产系统应按问题类型选择模型和采样策略。