← Назад к списку статей

RTSP Транслятор

Транслятор работает для любой точки мира

На сегодняшний день аналоговые и USB-камеры постепенно вытесняются с рынка видеонаблюдения, поскольку передача видео по сети значительно упрощает подключение нескольких камер к одному и тому же серверу. Никаких проводов, проблем со входами, физических ограничений для машины — во всём этом IP-камеры оставили своих менее юных собратьев далеко позади. Однако и в этой, на первый взгляд, идеальной технологической цепочке есть слабое звено — сама сеть. Видеофайлы содержат большое количество информации, и поэтому, чтобы передавать их между многими источниками и приёмниками, понадобится мощная и стабильно работающая сеть. Такую не все могут себе позволить.

Так есть ли способ передавать видео высокого качества по простой сети, не перегружая её? И можно ли заставить аналоговые и USB-камеры работать аналогичным образом? В этой статье мы рассмотрим один из способов, как этого добиться.

RTSP Транслятор иконка

Для начала проясним терминологию. Параметр видеопотока, показывающий нам, сколько «весит» этот поток для сети, называется битрейт и измеряется в битах в секунду (чаще всего в Кб/с или Мб/с). Обычно роутеры предоставляют пользователям в сумме порядка 100 Мб/с (впрочем, более дорогие модели позволяют использовать и 1 Гб/с). Таким образом, чтобы разгрузить сеть, нам нужно свести битрейт к минимуму, не теряя качества видео. Этого можно добиться с помощью стандарта сжатия под названием H.264 (его мы рассмотрели в отдельной статье). URL-адреса таких сжатых потоков обычно начинаются на RTSP (англ. Real Time Streaming Protocol, потоковый протокол реального времени), а не HTTP (например, rtsp://192.168.0.14:554/h264). Однако не все IP-камеры поддерживают этот стандарт (подавляющее большинство современных моделей работают с ним), а аналоговые камеры не поддерживают сжатие в принципе, так как работа по сети для них изначально не подразумевалась. Некоторые USB-камеры поддерживают H.264, но это достаточно редкий случай.

Рассмотрим модуль «RTSP Транслятор» в Xeoma – он позволяет перекодировать любой поток в RTSP (в том числе, в H.264), как с аналоговых, так и с USB, и IP-камер. Для удобства далее по тексту мы будем называть изначальное видео «входом», а полученную трансляцию — «выходом». Модуль доступен для лицензий Xeoma Standard и Xeoma Pro. Для начала добавим его в цепочку:

Простая цепочка с RTSP Транслятором

Существует 2 основных способа работать с трансляцией, у каждого из них есть свои плюсы и минусы. Выбрать подходящий способ можно с помощью поля «Средство, с помощью которого будет осуществляться трансляция» в верхней части настроек модуля. Рассмотрим оба варианта подробнее.

ffserver

Хотите сразу перейти к другой опции? Жмите сюда!
ffserver — это уже достаточно старый, но надёжный, способ превратить какое-либо видео в rtsp трансляцию. Важно: официальная поддержка для ffserver закончилась в 2018 году.
Вот, что мы увидим, выбрав эту опцию:

Настройки модуля RTSP Транслятор с ffserver

По умолчанию Xeoma самостоятельно выберет на сервере порт, который сейчас ничем не занят. Если на входе видео не в H.264, но на выходе нужно получить H.264, то нужно произвести процедуру, которая называется перекодирование. Сам ffserver не может выполнять перекодирование, поэтому другое ПО должно взять на себя эту работу. Для таких целей подходит FFmpeg — нужную его версию можно указать для Xeoma в поле «Полный путь к альтернативной версии ffmpeg», а в поле «Тип кодировщика» выбрать «libx264». Нужную версию FFmpeg можно взять здесь:
Windows: https://felenasoft.com/xeoma/downloads/ffmpeg/win/ffmpeg_win.exe
Linux: https://felenasoft.com/xeoma/downloads/ffmpeg/linux/ffmpeg_linux
Обратите внимание, что для MacOS такой опции нет, так как отсутствует соответствующая версия FFmpeg.

Если же достаточно использования mpeg4 или mjpeg, то можно обойтись и без ffmpeg — просто копируем путь из настроек модуля (например, rtsp://192.168.0.51:8555/RtspTranslator.34) в модуль «Универсальная камера» в другой Xeoma (или в другое приложение, поддерживающее работу с rtsp), и всё готово — трансляция запущена.

Бывает так, что на входе уже есть H.264, и важно не вносить в него никаких изменений при трансляции. В такой ситуации можно выбрать пункт «Без перекодирования: поток низкого разрешения (Просмотр)» или «Без перекодирования: поток высокого разрешения (Архив)» в графе «Тип кодировщика» — так ffserver будет брать поток из графы для просмотра или для архива в настройках модуля «Универсальная камера» и транслировать его без перекодирования и каких-либо изменений. Однако это не будет работать для H.265.

live555

Хотите вернуться к предыдущей опции? Жмите сюда!
LIVE555 — это более современное решение, призванное сделать трансляцию по rtsp как можно проще и универсальнее.
Вот, что мы увидим, выбрав эту опцию:

Настройки модуля RTSP Транслятор с live555

Как и в предыдущем случае, Xeoma подберёт порт сама, но можно указать и свой собственный вручную. По умолчанию модуль работает в режиме «Без перекодирования: поток низкого разрешения (Просмотр)», так что потоки будут совпадать на входе и на выходе. Это актуально для MJPEG, H.264 и H.265.
Если же на входе у нас MJPEG, а на выходе нужен H.264, то можно нажать кнопку «Скачать OpenH264 Video Codec от Cisco Systems, Inc.» и выбрать «Перекодирование в H.264: поток низкого разрешения (Просмотр)» или «Перекодирование в H.264: поток высокого разрешения (Архив)». Так live555 будет брать MJPEG поток из модуля «Универсальная камера», перекодировать его в H.264 и транслировать по rtsp.
Однако это не будет работать для H.265 потока на входе.
После этого можно копировать путь потока для выхода и вставлять в любое ПО, которое будет принимать трансляцию (Xeoma, VLC, OBS и проч.).

Кроме того, транслировать можно и уже записанные на сервере архивы — это делается с помощью JSON API, даже если на сервере не используется модуль «RTSP Транслятор». Пример нужной команды:
http://192.168.0.51:10090/api?login=Administrator&password=notpassword&archive=Preview%2bArchive.18&archive_date=2025-09-22&archive_minute=14%3a30%3a05&archive_millis=0&start_rtsp_archive=

Применения и ограничения

«RTSP Транслятор» полезен, когда на сервере нужно организовать трансляцию с обычной USB камеры (MJPEG) на несколько «приёмников» по достаточно ограниченной сети. Здесь особенно хорошо подходит перекодирование в H.264.

Бывает так, что сервер выполняет роль централи, на которую сходятся несколько камер, и которая должна предоставлять досутп к этим камерам для несколько других устройств. Если видео на выходе нужно не только для просмотра, то обычного клиентского подключения будет недостаточно, а «RTSP Транслятор» позволяет решить такую задачу.

Ещё этот модуль хорошо подходит в случаях, когда нужна интеграция между Xeoma и другим ПО. Иной системе может быть нужен динамический доступ к видео с камер посредством Xeoma — «RTSP Транслятор» даёт возможность делать именно это.

Надо заметить, что у этой технологии есть свои ограничения, рассмотрим их ниже:

  1. Важно понимать, что серверу, используещему модуль «RTSP Транслятор», нужно предоставлять для других устройств способ общения с ним по сети (статический внешний IP адрес и его заменители), чтобы весь вышеописанный функционал мог работать.
  2. Опции, применяющие перекодирование, будут сжимать и кодировать входной поток с помощью ЦП сервера, требуя постоянной работы. Таким образом, нагрузка на ЦП сервера будет тем выше, чем больше камер ведут трансляцию, и чем выше их степень сжатия.
  3. Опция «live555» недоступна для серверов на MacOS, Android и 32-битных Windows.

Способы эффективной передачи данных на большие расстояния постепенно совершенствуются (например, на смену H.264 пришёл более «продвинутый» кодек H.265), и Xeoma всегда наготове — за счёт этих способов расширяется функционал.

6 октября 2017, обновлено 05 декабря 2025

Читайте также:
Видеонаблюдение: Как заниматься его администрированием?
Беспроводное видеонаблюдение – своими руками