Как реализовать воспроизведение потокового видео с IP-камеры в 1С:Предприятие

Программист 1С v8.3 (Обычные формы) 1С:Зарплата и Управление Персоналом IT и автоматизация бизнеса
← На главную

Вопрос интеграции видеопотока в реальном времени часто возникает при автоматизации рабочих мест сотрудников службы безопасности, отделов кадров (для фиксации собеседований) или на производственных линиях. В случае с классическими конфигурациями, такими как ЗУП 2.5, задача осложняется использованием обычных форм и ограниченными возможностями встроенного браузера. В данной статье мы подробно разберем, как вывести видео с IP-камеры Hikvision на рабочий стол 1С, используя разные подходы.

Метод 1. Использование VLC ActiveX (Рекомендуемый способ для RTSP)

Большинство современных IP-камер отдают поток по протоколу RTSP. Стандартный Windows Media Player часто не справляется с этим протоколом без установки дополнительных фильтров. Наиболее стабильным решением является использование компоненты от VLC Media Player. Рассмотрим этот процесс по шагам.

Критически важное замечание по разрядности: Платформа 1С:Предприятие в большинстве случаев является 32-битным приложением (особенно старые версии 8.2 и 8.3 для обычных форм). Поэтому в системе обязательно должен быть установлен 32-битный VLC Player. Если вы установите 64-битную версию, 1С просто не «увидит» нужный ActiveX объект.

Разберем алгоритм настройки:

  1. Скачайте и установите VLC Media Player (32-bit). При установке убедитесь, что отмечен пункт ActiveX Plugin.
  2. Откройте вашу обработку в конфигураторе 1С.
  3. Добавьте на форму ПолеHTMLДокумента. Мы будем использовать его как контейнер для плеера.
  4. В модуле формы пропишем код для инициализации объекта.

Проанализируем пример кода, который позволит встроить плеер непосредственно в форму 1С:


Процедура ПриОткрытии()
    ТекстHTML = 
    "<html>
    |<body style='margin:0; padding:0; overflow:hidden;'>
    |<object classid='clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921' 
    |    width='100%' height='100%' id='vlc' events='True'>
    |    <param name='MRL' value='rtsp://admin:password@192.168.1.244:554/Streaming/Channels/101' />
    |    <param name='ShowDisplay' value='True' />
    |    <param name='AutoLoop' value='True' />
    |    <param name='AutoPlay' value='True' />
    |    <embed type='application/x-vlc-plugin' name='vlc' target='rtsp://admin:password@192.168.1.244:554/Streaming/Channels/101' />
    |</object>
    |</body>
    |</html>";
    
    ЭлементыФормы.ПолеHTMLДокумента1.УстановитьТекст(ТекстHTML);
КонецПроцедуры

Разберем параметры, которые мы передаем. Ссылка вида rtsp://логин:пароль@IP-адрес:порт/Streaming/Channels/101 является стандартной для камер Hikvision. Параметр 101 означает первый канал (основной поток). Если видео тормозит или потребляет много трафика, попробуйте сменить на 102 (второй поток с меньшим разрешением).

Метод 2. MJPEG-поток — самый простой способ отображения

Если работа с ActiveX кажется избыточной или возникают проблемы с регистрацией библиотек на клиентских машинах, можно воспользоваться методом MJPEG. Выясним причину, почему это удобно: в данном режиме видео передается как последовательность обычных картинок (JPEG), и 1С может отобразить такой поток как обычное изображение в ПолеHTMLДокумента без каких-либо кодеков.

Для реализации этого метода необходимо сначала подготовить камеру:

  1. Зайдите в веб-интерфейс камеры Hikvision.
  2. Перейдите в раздел Настройки (Configuration) -> Видео и Аудио (Video/Audio).
  3. Для Дополнительного потока (Sub-stream) выберите тип видео MJPEG. Сохраните настройки.

Теперь в 1С нам достаточно вставить простейший HTML-код. Рассмотрим, как это выглядит на практике:


Процедура ОбновитьВидеоПоток()
    // Используем прямую ссылку на MJPEG поток камеры
    СсылкаНаПоток = "http://admin:password@192.168.1.244/ISAPI/Streaming/channels/102/httpPreview";
    
    ТекстHTML = "<html><body style='margin:0;'>" +
                "<img src='" + СсылкаНаПоток + "' width='100%' height='auto'>" +
                "</body></html>";
                
    ЭлементыФормы.ПолеHTMLДокумента1.УстановитьТекст(ТекстHTML);
КонецПроцедуры

Важный нюанс: Не все старые прошивки поддерживают Basic авторизацию в URL. Если картинка не появляется, проверьте в настройках безопасности камеры (System -> Security -> Authentication), что для RTSP и HTTP разрешен метод "digest/basic".

Метод 3. Использование внешних кодеков и Windows Media Player

Если стоит задача использовать именно встроенный ActiveX Windows Media Player, необходимо подготовить среду исполнения. Стандартно WMP не поддерживает кодек H.264/H.265, который отдают IP-камеры по RTSP.

Выясним, что нужно сделать:

  1. Установите пакет кодеков, например K-Lite Codec Pack версии Mega или Standard.
  2. В настройках кодеков необходимо убедиться, что LAV Splitter включен для обработки протокола RTSP.
  3. В 1С добавьте элемент ActiveX: Windows Media Player.
  4. Программно назначьте свойство URL.

Пример программного управления объектом WMP:


Процедура КнопкаЗапускНажатие(Элемент)
    Плеер = ЭлементыФормы.ActiveX_WMP;
    Плеер.URL = "rtsp://admin:password@192.168.1.244:554/Streaming/Channels/101";
    Плеер.controls.play();
КонецПроцедуры

Однако, как показывает практика обсуждений на форумах, этот метод наименее стабилен, так как сильно зависит от установленных в системе фильтров отрисовки видео.

Анализ типичных ошибок и рекомендации

Рассмотрим подробнее ситуации, когда видео не воспроизводится, хотя ссылка верная:

Выясним, какой метод выбрать. Если вам нужно высокое качество и звук — выбирайте VLC ActiveX. Если же задача просто видеть картинку (например, кто подошел к двери или к столу регистрации) и вы хотите избежать установки лишнего ПО на клиентские ПК — используйте MJPEG-поток через обычный тег <img>.

Совместное использование 1С и систем видеонаблюдения Hikvision открывает большие возможности для бизнеса, от контроля дисциплины до автоматического сопоставления событий в учетной системе с видеоархивом.

← На главную