Кадры убивают контекст. А мы просто перестанем их вырезать
Стандартный подход к анализу видео выглядит как операция с пересадкой органов: из потока вырезают отдельные кадры, склеивают их в последовательность и пихают в трансформер, надеясь, что он восстановит утраченную динамику. Результат? Модели видят не сцену, а фотоколлаж. Они путаются в движениях, не замечают мимических переходов и — если верить недавнему бенчмарку SPLICE — проваливают элементарные причинно-следственные задачи.
Команда LLaVA решила: хватит выкидывать информацию. Если видео хранится сжатым — пусть модель учится читать его в родном формате. Так родилась LLaVA-OV-2 — первая открытая мультимодальная модель, которая анализирует видео не через кадры, а через битовый поток кодека H.264. И это не просто Proof of Concept. Доступны веса, код и датасеты.
LLaVA-OV-2 (OneVision v2) — прямой наследник LLaVA-OneVision. Вместо извлечения ключевых кадров модель принимает на вход закодированный видеопоток и декодирует его внутри нейросети. Подход называется Video Encoding as Neural Latent (VENL).
Как модель научилась читать H.264
Суть гениальна в своей простоте. Видеокодек H.264 — это не просто последовательность изображений. Он хранит движение: векторы смещения макроблоков, разницу между ключевыми и промежуточными кадрами (P/B-frames). Эту структуру модель использует как готовый энкодер движения (motion prior).
LLaVA-OV-2 содержит легковесный декодер H.264, который извлекает из сжатого потока три компонента:
- I-кадры (ключевые) — статическая основа сцены.
- Векторы движения (MV) — смещения макроблоков между кадрами.
- Остаточные ошибки (residuals) — детали, не описанные движением.
Эти данные отправляются не в трансформер напрямую, а в специальный проекционный слой — Codec Adapter. Он сжимает информацию в эмбеддинги фиксированной длины, которые затем подаются в LLM. Получается, модель видит не 32 картинки, а компактное представление движения + текстуры. Размер входного окна сокращается в 10-15 раз по сравнению с покадровым подходом.
Для обучения собрали датасет из 2 млн видео с разметкой временных интервалов, действий и отношений. Часть данных взята из VBVR, но адаптирована под формат кодек-эмбеддингов. Открытые синтетические датасеты — отдельная гордость: на Hugging Face лежат готовые сценарии для генерации собственных тренировочных пар.
Что умеет LLaVA-OV-2 (и чем это лучше покадровых моделей)
1 Temporal grounding — находит момент по тексту
Модель может ответить на вопрос вроде «Когда в этом ролике персонаж надевает очки?» и вернуть временной интервал. Точность на датасете YouCook2 — 67.3% по мануальному Recall@1. Для сравнения, LLaVA-OneVision (версия с кадрами) — 58.1%. Причина: модель видит векторы движения, а не только статику. Переход «без очков -> с очками» — это резкое изменение MV-поля, которое кодек фиксирует с точностью до субкадра.
2 Понимание длительных действий — до 10 минут
Потому что входной поток сжат, модель может захватить до 120 секунд видео при разрешении 480p за 8K токенов. Покадровые конкуренты (вроде NVILA-8B-HD) справляются с 30-60 секундами. Это принципиально для сюжетного понимания: LLaVA-OV-2 способна пересказать ролик целиком без потери начала.
3 Анализ взаимодействий и физики
Векторы движения не врут. Если мяч летит в стену, MV покажут ускорение и направление. Модель может отличить реальное падение стакана от подкрученного монтажа. В задачах физического рассуждения (например, «Какой объект столкнется с другим через 5 секунд?») LLaVA-OV-2 показывает +12% точности против InternVL2. Это делает её интересной для робототехнических VLA-агентов, где цена ошибки высока.
Сравнение с альтернативами
| Модель | Подход | Макс. длина видео | Temporal grounding (Recall@1) | Открытая |
|---|---|---|---|---|
| LLaVA-OV-2 | Сжатый поток H.264 | 10 мин | 67.3% | да |
| LLaVA-OneVision (старая) | Кадры (16-32 fps) | 2 мин | 58.1% | да |
| NVILA-8B-HD | Кадры + AutoGaze | 1 мин | 62.5% | да |
| Video-LLaVA | Кадры (8) | 30 сек | 52% | да |
| Gemini 1.5 Pro | Кадры + аудио | 1 час | 70%* | нет |
* данные Gemini — по бенчмарку ActivityNet, непубличная модель.
Цифры не врут: LLaVA-OV-2 бьет открытые аналоги по тайм-локализации, уступая только закрытым гигантам. Но главное — она единственная, кто вообще использует сжатый поток. Это открывает дорогу к обработке длинных роликов на обычных GPU.
Как это запустить (и не обжечься)
Авторы выложили LLaVA-OV-2-CodecAdapter с 7B и 13B параметрами. Младшая версия работает на RTX 3090 с 12 ГБ памяти (применяя 4-битную квантизацию). Старшая требует уже 32 ГБ.
Установка — стандартная через Hugging Face:
pip install transformers torch torchvision av # av для работы с H.264Дальше — загружаем модель и конвертируем видео в её представление:
from transformers import LlavaOneVisionTokenizer, LlavaForConditionalGeneration
import av
import torch
# Загружаем модель и кодек-адаптер
model = LlavaForConditionalGeneration.from_pretrained(
"llava-hf/LLaVA-OV-2-7B",
torch_dtype=torch.float16,
device_map="auto"
)
tokenizer = LlavaOneVisionTokenizer.from_pretrained("llava-hf/LLaVA-OV-2-7B")
# Читаем видео как поток H.264 (минуя кадры!)
container = av.open("video.mp4")
stream = container.streams.video[0]
# Извлекаем закодированный пакет (первые 100 frames)
encoded_frames = []
for packet in container.demux(stream):
if packet.is_keyframe:
encoded_frames.append(packet.to_bytes())
# Подаём на вход модели
inputs = tokenizer(
encoded_frames,
return_tensors="pt",
truncation=True,
max_length=8000
).to(model.device)
output = model.generate(**inputs, max_new_tokens=256)
print(tokenizer.decode(output[0]))Важный нюанс: модель ожидает на вход именно H.264 в контейнере MP4 или MKV. Если видео в другом кодировщике — потребуется переупаковка. Советую использовать ffmpeg: ffmpeg -i input.webm -c:v libx264 -crf 18 output.mp4.
Кому эта штука действительно нужна
- Разработчики видеомодерации — если нужно быстро находить в потоке опасные сцены (насилие, контент 18+), LLaVA-OV-2 обрабатывает длинные записи без потери контекста.
- Исследователи робототехники — PEVA учится через движения тела, LLaVA-OV-2 через векторы H.264 — симбиоз подходов даёт роботам понимание динамики сцены.
- Специалисты по анализу видео с камер наблюдения — модель работает с любым потоком, сжатым в H.264 (а это 99% камер). Не нужно выгружать кадры, достаточно передать сам битстрим.
- Те, кто устал ждать — инференс в 3-5 раз быстрее, чем у покадровых аналогов, при сопоставимом качестве.
И да, вес модели 7B легко помещается на одну видеокарту последних поколений. Это вам не MOVA, которая требует датацентр. LLaVA-OV-2 — рабочая лошадка, а не парадный монстр.
Но есть подводный камень
Кодек H.264 проприетарный по патентам. Хотя авторы использовали opensource-библиотеку av (ffmpeg), в коммерческом продукте могут возникнуть юридические вопросы. Альтернатива — AV1 (libaom), но команда LLaVA пока не адаптировала под него проектор. Второй минус: модель не обрабатывает аудио. Если нужно синхронизировать речь и движение, придется дообучать отдельный аудиотокен. Возможно, в следующей версии это исправят — слухи о LLaVA-OV-3 уже ходят.
Звучит логично, но на практике большинство приложений используют только видео. А если нужен звук — можно прикрутить внешний ASR, как в гибридных пайплайнах.
Пожалуй, самое раздражающее — отсутствие готового Docker-образа. Приходится собирать окружение руками. Ребята с LTX-2 в этом плане молодцы: скачал контейнер — и работай. LLaVA-OV-2 пока сыровата по UX. Но если ты привык к консоли — не проблема.
Прогноз: через год все будут читать видео как код
Подход с анализом сжатого потока — это не фишка, а неизбежность. Пока кадровые модели упираются в окно контекста трансформеров, VENL-метод (как в LLaVA-OV-2) масштабируется на часы видео без взрывного роста токенов. В 2026 году уже вышли несколько работ по AV1-кодекам и даже понейронным кодекам (нейроморфные сжатия). Думаю, к концу года открытые модели, работающие через кодек, станут стандартом де-факто. LLaVA-OV-2 — первый ласточка, которая доказала: работать с битовым потоком не сложно, а эффективно. Берите датасеты, ставьте эксперименты — и через полгода ваш VLM будет смотреть видео без глупой выборки кадров.