Конфигурация#
Настройки находятся в секции <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:
- Записывает предупреждение в лог.
- Отключает недоступный HD-поток.
- Активирует 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:
QSV→VAAPI - для Windows:
QSV→MF
Проверяется не только наличие энкодера, но и возможность его фактического запуска с требуемым разрешением и 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.