Игорь Градов
Игорь Градов
5 мин
ai

MCP-протокол плюс OpenCV и FFmpeg: ИИ-ассистент работает с камерой в 15 МБ памяти

Автоматическая обработка видео с веб-камер и IP-камер силами ИИ-ассистента обычно требует Python-окружения весом в гигабайт и десятков зависимостей, но существует способ обойтись одним компактным исполняемым файлом на Windows, который стартует мгновенно и потребляет от 12 до 15 мегабайт оперативной памяти.

MCP-протокол плюс OpenCV и FFmpeg: ИИ-ассистент работает с камерой в 15 МБ памяти
Почему это важно

MCP-протокол (Model Context Protocol, открытый стандарт связи между ИИ-ассистентом и внешними инструментами) позволяет подключить к любому агенту камеру, видеопоток или нарезку кадров, но готовые серверы на Python или Node.js тяжелы и медленны для работы с видео в реальном времени: нативный сервер на Delphi решает именно эту проблему.

Проект media-mcp-server, описанный разработчиком библиотек Delphi-OpenCV5, Delphi-FFmpeg и Delphi-ONVIF, объединяет три вещи: прямой импорт классов OpenCV 4/5 из C++ DLL в Object Pascal, обработку видеопотоков через FFmpeg и обнаружение IP-камер по протоколу ONVIF. Результат компилируется в один исполняемый файл MediaMCPServer.exe с несколькими DLL рядом. Ни виртуальных окружений, ни вызовов pip install, ни папки node_modules на гигабайт.

Что понадобится?

  • Delphi (Object Pascal) с поддержкой Custom Managed Records
  • OpenCV 5.0 (DLL для Windows x64), проект Delphi-OpenCV5
  • FFmpeg (DLL), обёртка Delphi-FFmpeg
  • Delphi-ONVIF для работы с сетевыми камерами
  • Windows (хост) плюс, при необходимости, WSL для ИИ-клиента на стороне Linux
  • ИИ-клиент с поддержкой MCP-протокола (например, Claude Desktop, Cursor или любой агент, умеющий вызывать tools/list и tools/call по JSON-RPC)
  • Примерно 2 до 4 часов на сборку и настройку, если Delphi-среда уже установлена

Как собрать и запустить сервер за шесть шагов?

  1. Клонируйте репозитории Delphi-OpenCV5, Delphi-FFmpeg и Delphi-ONVIF. Положите DLL-файлы OpenCV и FFmpeg рядом с будущим исполняемым файлом.

  2. Откройте проект media-mcp-server в Delphi. Убедитесь, что пути к модулям (uMCPHttpServer.pas и остальным юнитам) прописаны корректно.

  3. Скомпилируйте проект под Windows x64. На выходе получите MediaMCPServer.exe. Проверьте, что рядом лежат все нужные DLL.

  4. Выберите транспорт. Рекомендуется Streamable HTTP: сервер стартует как самостоятельный процесс и слушает заданный порт. Транспорт stdio (стандартные потоки ввода-вывода) оставлен для совместимости, но на практике ненадёжен: библиотеки OpenCV и FFmpeg иногда пишут отладочные сообщения прямо в stdout, и этот мусор ломает парсер JSON-RPC на стороне клиента.

  5. Запустите сервер:

MediaMCPServer.exe --transport http --port 8080

В режиме ожидания сервер занимает 12 до 15 МБ RAM. При обработке кадров память расходуется только под структуры TMat (обёртка для cv::Mat из OpenCV) внутри C++ DLL.

  1. Подключите ИИ-клиент. Укажите адрес сервера в настройках MCP-протокола вашего агента. Клиент отправляет запрос tools/list, получает список доступных функций (захват кадра с веб-камеры, нарезка видео, распознавание объектов), затем вызывает нужную через tools/call с параметрами в формате JSON.
Как это применить

Допустим, вы хотите, чтобы ИИ-ассистент сделал снимок с USB-камеры и описал, что на нём. В MCP-клиенте вы пишете обычный текст: «Сделай снимок с веб-камеры и опиши, что видишь». Клиент вызывает функцию take_snapshot() через MCP-протокол, сервер захватывает кадр средствами OpenCV, возвращает изображение, а языковая модель получает его как мультимодальный (воспринимающий и текст, и картинку) вход и формирует текстовое описание. Весь цикл занимает доли секунды, потому что кадр обрабатывается в общей памяти процесса без межпроцессной сериализации (без перекодирования массива пикселей для передачи между отдельными программами).

Почему stdio-транспорт не подошёл?

Разработчик столкнулся с тремя конкретными проблемами. Библиотеки FFmpeg и OpenCV при внутренних предупреждениях пишут сообщения прямо в stdout, что ломает JSON-RPC-парсер клиента и вызывает аварийное завершение сессии. Стандартная функция Readln в Delphi буферизует ввод и зависает, когда разделитель строк не совпадает с ожидаемым. И главное: stdio не работает через границу виртуализации, например, когда ИИ-клиент запущен в WSL Linux, а сервер с физическими USB-камерами и видеокартами с CUDA работает на хост-системе Windows.

Streamable HTTP решает все три проблемы: сервер изолирован как отдельный процесс, слушает порт, поддерживает сессии через заголовок Mcp-Session-Id и отдаёт ответы в реальном времени.

Частые ошибки
  • Забыли положить DLL рядом с exe. Сервер запустится, но при первом вызове OpenCV или FFmpeg упадёт без внятной ошибки. Проверяйте наличие всех DLL до первого запроса.
  • Оставили stdio-транспорт по умолчанию. Отладочный вывод сторонних библиотек в stdout сломает сессию. Переключайтесь на HTTP сразу.
  • Путаете версии OpenCV. Проект Delphi-OpenCV5 рассчитан на OpenCV 5.0. Старые DLL от версии 4.x могут не подойти по декорированным именам функций.
  • Не учитываете границу WSL и Windows. Если ваш ИИ-клиент работает в WSL, а камеры физически подключены к Windows, без сетевого транспорта (HTTP) связь невозможна.

Что с этого вам прямо сейчас?

Разработчику на Delphi или C++: готовая архитектура для создания MCP-сервера с нативным доступом к камерам и видео. Не нужен Python, не нужен Node.js. Один exe, минимальный расход памяти, прямая работа с кадрами в общей памяти процесса.

Автору на Дзене, который пишет про технологии: MCP-протокол стремительно становится стандартом подключения внешних инструментов к ИИ-агентам. Понимание того, как он работает на практике, даёт вам тему для серии материалов, которые пока почти никто не освещает на русском языке.

Предпринимателю, которому нужно видеонаблюдение с ИИ: коммерческие платформы вроде Lumana или Spot AI стоят денег и привязывают к вендору. Если в команде есть Delphi-разработчик, описанный подход позволяет собрать собственное решение на своём железе, под своим контролем.

Для тех, кто работает в РФ: все компоненты (Delphi, OpenCV, FFmpeg) доступны и работают без ограничений. Облачные MCP-серверы от Anthropic или OpenAI могут быть недоступны, но описанный сервер работает полностью локально.

Мнение редакции dzen.guru

Идея кажется нишевой: Delphi в 2025 году звучит неожиданно. Но суть не в языке, а в архитектурном решении. Один нативный exe, который стартует за миллисекунды, ест 12 до 15 МБ памяти и работает с камерами напрямую, без прослойки из Python, это ровно то, чего не хватает «бытовым» агентным системам на базе Claude или ChatGPT. По моим наблюдениям, большинство MCP-серверов на Python тратят больше ресурсов на запуск окружения, чем на саму обработку кадра. Честная оговорка: проект пока не стал публичным релизом с документацией и готовыми бинарниками. Порог входа высокий, нужен опыт работы с Delphi и понимание того, как устроены DLL-обёртки для C++ библиотек. Но сам паттерн «нативный MCP-сервер для медиа» заслуживает внимания: если идея приживётся, мы увидим аналоги на Rust и Go.

Для тех, кто хочет попробовать: начните с простого, соберите сервер, подключите одну веб-камеру и попросите ИИ-ассистента описать кадр. Это займёт вечер и покажет, стоит ли вкладываться в полноценную интеграцию с RTSP-потоками и ONVIF-сканированием сети.

Научитесь работать с ИИ-инструментами на практике

В dzen.guru мы разбираем реальные сценарии использования нейросетей для авторов и предпринимателей, от промптов до интеграций

Попробовать бесплатно
Поделиться:TelegramVK
Игорь Градов
Игорь Градов

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».

Комментарии

Читайте также

Gemini 3.5 Flash получил управление компьютером: агент видит экран и сам нажимает кнопки
ai

Gemini 3.5 Flash получил управление компьютером: агент видит экран и сам нажимает кнопки

Google встроила в Gemini 3.5 Flash управление компьютером: модель видит экран, рассуждает и сама нажимает кнопки в браузере, на десктопе и в мобильных…

5 мин
Что такое ИИ-агент: собираем runtime с контролем токенов и бюджета с нуля
ai

Что такое ИИ-агент: собираем runtime с контролем токенов и бюджета с нуля

Компания или человек, написавший оригинальный код OpenHarness, не указаны в источнике как конкретный бренд или лицо. Источник представляет собой учебный…

7 мин
Baidu открыла OCR-нейросеть на 3 млрд параметров: 40 страниц за проход без роста памяти
ai

Baidu открыла OCR-нейросеть на 3 млрд параметров: 40 страниц за проход без роста памяти

Baidu, китайская технологическая компания, 10 июня 2025 года выложила в открытый доступ Unlimited OCR, нейросеть для распознавания текста, которая обрабатывает…

5 мин