Перейти к содержанию

Конфигурация#

Настройки находятся в секции <section name="rtsp_server"> конфигурационного файла.

Пример конфигурации#

<section name="rtsp_server">
    <param name="enable" type="Value::Int1" x="1" />

    <param name="enable-hd" type="Value::Int1" x="1" />
    <param name="enable-sd" type="Value::Int1" x="1" />

    <param name="target-fps" type="Value::Int1" x="30" />
    <param name="use-16x9" type="Value::Int1" x="0" />

    <param name="codec" type="Value::String" text="H264" />
    <param name="backend" type="Value::String" text="AUTO" />

    <param name="hd-mount-point" type="Value::String" text="HD" />
    <param name="sd-mount-point" type="Value::String" text="SD" />

    <param name="allow-mjpeg-fallback" type="Value::Int1" x="1" />

    <param name="mjpeg-quality" type="Value::Int1" x="85" />
    <param name="hd-bitrate-kbps" type="Value::Int1" x="4000" />
    <param name="sd-bitrate-kbps" type="Value::Int1" x="1000" />

    <param name="bind-address" type="Value::String" text="0.0.0.0" />
    <param name="port" type="Value::Int1" x="8554" />
</section>

Описание параметров#

enable#

Включает или выключает RTSP-сервер.

Допустимые значения:

  • 0 - По умолчанию. RTSP-сервер выключен.
  • 1 - RTSP-сервер включён.

При выключенном RTSP камера работает в штатном режиме. Дополнительный профиль изображения для RTSP не запрашивается.

enable-hd#

Включает или выключает HD endpoint.

Допустимые значения:

  • 0 - HD-поток выключен.
  • 1 - HD-поток включён.

Ожидаемое разрешение:

  • 1280×960 при выключенном формате 16:9;
  • 1280×720 при включённом формате 16:9.

Фактическое разрешение зависит от возможностей камеры и выбранного профиля её запуска.

enable-sd#

Включает или выключает SD endpoint.

Допустимые значения:

  • 0 - SD-поток выключен.
  • 1 - SD-поток включён.

Разрешение SD-потока: 640×480.

HD и SD разрешается включать одновременно. Хотя бы один из потоков должен быть включён.

Автоматическое переключение на SD#

Если HD-поток включён, но камера фактически предоставляет цветной кадр только 640×480, сформировать полноценный HD-поток невозможно.

В такой ситуации RSEngine:

  1. Записывает предупреждение в лог.
  2. Отключает недоступный HD-поток.
  3. Активирует SD-поток, даже если enable-sd изначально был выключен.

Это позволяет сохранить доступность трансляции при переходе камеры на резервный профиль.

target-fps#

Задаёт требуемую частоту RTSP-потока.

Допустимые значения: 1, 2, 5, 10, 15, 30.

Если камера предоставляет 30 кадров в секунду, RSEngine отбирает кадры следующим образом:

target-fps Поведение
30 Передаётся каждый кадр
15 Передаётся каждый второй кадр
10 Передаётся каждый третий кадр
5 Передаётся каждый шестой кадр
2 Передаётся каждый пятнадцатый кадр
1 Передаётся каждый тридцатый кадр

Если камера фактически работает с частотой, отличной от 30 FPS, дополнительное ограничение отключается. RTSP-сервер передаёт кадры с фактической частотой камеры.

Такое поведение предотвращает чрезмерное уменьшение FPS на камерах, которые изначально работают с более низкой частотой.

use-16x9#

Переключает формат HD-потока между 4:3 и 16:9.

Значение HD-разрешение
0 1280×960, формат 4:3
1 1280×720, формат 16:9

При включении 16:9 изображение не растягивается. Из исходного изображения выполняется центральное кадрирование: одинаковые области удаляются сверху и снизу.

Параметр не изменяет SD-поток — он остаётся 640×480.

codec#

Задаёт формат кодирования видео.

Допустимые значения:

Значение Описание
H264 H.264 с использованием доступного аппаратного encoder.
MJPEG Последовательность JPEG-кадров.

Рекомендуемое значение: H264.

H.264 обычно обеспечивает меньший сетевой трафик при сопоставимом качестве. MJPEG предъявляет меньше требований к аппаратному видеокодированию, но обычно требует большей пропускной способности сети.

backend#

Определяет backend аппаратного кодирования H.264.

Допустимые значения:

Значение Назначение
AUTO Автоматический выбор доступного backend
QSV Intel Quick Sync Video
VAAPI Аппаратное кодирование через VA-API в Linux
MF Media Foundation в Windows

Рекомендуемое значение: AUTO

Доступность backend зависит от:

  • операционной системы;
  • установленного графического оборудования;
  • версии видеодрайвера;
  • разрешения и частоты видеопотока.

VAAPI предназначен для Linux. MF предназначен для Windows.

При выборе MJPEG параметр аппаратного H.264 backend не используется.

Автоматический выбор backend#

В режиме AUTO RSEngine последовательно проверяет доступные аппаратные энкодеры и выбирает первый, который способен запустить рабочий H.264-конвейер.

Общий приоритет:

  • для Linux: QSVVAAPI
  • для Windows: QSVMF

Проверяется не только наличие энкодера, но и возможность его фактического запуска с требуемым разрешением и FPS.

Если первый энкодер зарегистрирован, но не может работать на текущем оборудовании, RSEngine переходит к следующему варианту.

allow-mjpeg-fallback#

Разрешает автоматический переход с H.264 на MJPEG, если ни один подходящий аппаратный H.264 энкодер не удалось запустить.

Значение Поведение
0 Отсутствие H.264 encoder считается ошибкой.
1 Рекомендуемое значение. Выполняется автоматический переход на MJPEG.

Fallback применяется только при запросе H.264. Если codec изначально равен MJPEG, этот параметр не влияет на работу.

Факт перехода на MJPEG записывается в лог.

mjpeg-quality#

Задаёт качество JPEG для MJPEG-потока.

Допустимый диапазон: 0–100

Рекомендуемое значение: 85

Чем выше значение:

  • тем выше визуальное качество;
  • тем больше размер каждого кадра;
  • тем выше нагрузка на сеть.

Параметр применяется при явном выборе MJPEG и при автоматическом переходе с H.264 на MJPEG.

hd-bitrate-kbps#

Задаёт целевой битрейт HD-потока H.264 в килобитах в секунду.

Например, 4000 приблизительно соответствует 4 Мбит/с.

Значение должно быть положительным.

Увеличение битрейта обычно повышает качество изображения, но увеличивает нагрузку на сеть.

sd-bitrate-kbps#

Задаёт целевой битрейт SD-потока H.264 в килобитах в секунду.

Рекомендуемое значение: 1000, что приблизительно соответствует 1 Мбит/с.

Значение должно быть положительным.

Параметры битрейта не применяются к MJPEG.

Фактический битрейт может немного отличаться от заданного в зависимости от используемого encoder, сложности изображения и поведения драйвера.

hd-mount-point#

Задаёт имя HD endpoint.

Пример:

<param name="hd-mount-point" type="Value::String" text="HD" />

Результирующий адрес:

rtsp://<адрес-сервера>:8554/HD

sd-mount-point#

Задаёт имя SD endpoint.

Пример:

<param name="sd-mount-point" type="Value::String" text="SD" />

Результирующий адрес:

rtsp://<адрес-сервера>:8554/SD

Имена HD и SD должны различаться.

Шаблоны в именах endpoint#

В hd-mount-point и sd-mount-point можно использовать шаблоны:

Шаблон Значение
${codec} Фактически выбранный codec
${stream} Тип потока: HD или SD
${resolution} Разрешение потока
${width} Ширина изображения
${height} Высота изображения
${backend} Фактически выбранный backend
${encoder} Фактически выбранный encoder

Например:

<param
    name="hd-mount-point"
    type="Value::String"
    text="${codec}_${stream}" />

При выборе H.264 результирующий endpoint может иметь имя h264_HD.

Если H.264 недоступен и выполнен переход на MJPEG- mjpeg_HD.

Если шаблоны не используются, имя остаётся неизменным.

Клиент должен подключаться к результирующему имени endpoint. Оно записывается в лог при запуске RTSP-сервера.

bind-address#

Задаёт сетевой адрес, на котором RTSP-сервер принимает подключения.

Для приёма подключений через все сетевые интерфейсы:

0.0.0.0

Для доступа только с локального компьютера:

127.0.0.1

Чтобы клиенты с других компьютеров могли подключиться к серверу, необходимо использовать 0.0.0.0 либо конкретный адрес сетевого интерфейса.

Этот параметр задаёт адрес прослушивания. В RTSP URL клиента вместо 0.0.0.0 необходимо указывать реальный IP-адрес компьютера с RSEngine.

Например:

rtsp://192.168.1.50:8554/HD

port#

Задаёт TCP-порт RTSP-сервера.

Значение по умолчанию: 8554.

Порт должен:

  • находиться в диапазоне 1–65535;
  • не использоваться другим процессом;
  • быть разрешён локальным firewall;
  • быть доступен клиенту по сети.

Разрешения потоков

Поток Настройка Ожидаемое разрешение
HD use-16x9=0 1280×960
HD use-16x9=1 1280×720
SD Любое значение use-16x9 640×480

Фактическая доступность HD зависит от камеры и успешного запуска соответствующего цветного профиля.

Типовые сценарии настройки#

Универсальная рекомендуемая конфигурация#

  • RTSP включён;
  • HD и SD включены;
  • H.264;
  • backend AUTO;
  • MJPEG fallback разрешён;
  • 30 FPS;
  • HD bitrate 4000 Kbit/s;
  • SD bitrate 1000 Kbit/s;
  • порт 8554;
  • bind address 0.0.0.0.

Этот вариант подходит для первоначального запуска на большинстве поддерживаемых систем.

Только локальный просмотр#

Установить:

bind-address = 127.0.0.1

В этом случае подключение с другого компьютера невозможно.

Минимальная нагрузка на сеть#

Рекомендуется:

  • включить только SD;
  • установить target-fps в 5 или 10;
  • использовать H.264;
  • уменьшить SD bitrate.

Максимальное качество#

Рекомендуется:

  • включить HD;
  • использовать 1280×960;
  • установить target-fps=30;
  • использовать H.264;
  • увеличить HD bitrate при достаточной пропускной способности сети.

Работа без аппаратного H.264 encoder#

Рекомендуется:

  • оставить codec=H264;
  • установить backend=AUTO;
  • включить allow-mjpeg-fallback.

Если аппаратное кодирование недоступно, сервер автоматически перейдёт на MJPEG.