Skip to main content
GStreamer-модуль принимает HTTP/HTTPS-ссылку на MKV или WebM и отдаёт поток как HLS/fMP4. По умолчанию видео не перекодируется: H.264, H.265, AV1 и VP9 копируются в новый контейнер без потери качества. AAC-аудио тоже копируется, а остальные аудиокодеки автоматически преобразуются в AAC.

Быстрое включение

1

Включите модуль в init.conf

Или в init.yaml:
2

Добавьте плагин в Lampa

Укажите адрес:
Замените 192.168.1.10 на IP-адрес сервера Core.
3

Установите GStreamer (Linux/macOS)

В Windows portable-библиотеки уже включены. Для Linux и macOS выполните инструкции из раздела Установка.

Copy или transcode

Для большинства файлов достаточно режима copy. Оставьте все параметры transcode* выключенными, если устройство умеет воспроизводить исходный видеокодек.
transcode* запускает полное декодирование и повторное кодирование видео. Это требует заметно больше CPU или GPU, может снизить качество и должно успевать работать в реальном времени. Для 4K нагрузка особенно высокая.
Включайте перекодирование только когда понимаете причину:
  • устройство не поддерживает H.265, AV1 или VP9
  • нужно уменьшить видеобитрейт
  • для H.264 нужны сегменты точной длительности
  • HDR нужно преобразовать в SDR

Сегментация в режиме copy

В режиме copy для MKV/WebM с найденными CuePoint границы сегментов и значения EXTINF берутся из Cue, поэтому segment_seconds не используется. Если CuePoint недоступны, длительность сегмента зависит от ключевых кадров исходного видео и может немного отличаться от segment_seconds. При перекодировании модуль создаёт ключевые кадры сам, поэтому длительность сегментов точнее.

Аудио

AAC передаётся без перекодирования. AC3, E-AC3, DTS, TrueHD и другие поддерживаемые декодером форматы преобразуются в AAC автоматически, независимо от transcode*. Параметры aac_bitrate, aac_samplerate и aac_channels применяются только при преобразовании аудио в AAC. На готовую AAC-дорожку они не влияют.

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

Основные

Сегменты и кеш

Аудио

Видео, GPU и HDR

useGpu управляет GPU-бэкендами, добавленными модулем. Он не запрещает стандартному decodebin GStreamer автоматически выбрать доступный аппаратный декодер.

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

Обычный режим copy

Это рекомендуемая отправная точка. H.264, H.265, AV1 и VP9 копируются, а видео не занимает encoder CPU/GPU.

Совместимость со старым устройством

Перекодируется только кодек текущего файла. Например, H.264 по-прежнему будет передан через copy, а H.265 будет преобразован в H.264 с целевым битрейтом 8000 кбит/с.

Настройки для отдельных UID

conf_uids задаёт отдельный pipeline для конкретного устройства. Параметры профиля не объединяются с основными настройками: неуказанные поля получают стандартные значения. enable, allowed_uids, inactiveMinutes, maxTasks, gst_version и PATH остаются общими.
Для mobile-uid H.265 преобразуется в H.264 4000 кбит/с, не-AAC аудио будет стерео AAC 192 кбит/с, а целевая длительность сегмента составит 6 секунд. tv-uid использует основные настройки.

Установка GStreamer

Windows

Portable MinGW GStreamer уже включён в модуль, дополнительная установка не требуется. При необходимости установите MinGW x86_64 Runtime с официальной страницы. Укажите корневой каталог в PATH:
Не используйте путь от MSVC-сборки вместе с MinGW-библиотеками модуля.

Linux (Debian/Ubuntu)

Готовый libgsthdrtonemap.so для linux-x64 уже включён. Он требует glibc 2.35+ и GStreamer 1.20+ и проверен на Ubuntu 22.04 и Debian 12. ocl-icd-libopencl1 устанавливает OpenCL loader. Реализацию OpenCL предоставляет драйвер GPU. Если подходящий GPU недоступен, HDR tone mapping автоматически использует CPU.

macOS

Установите GStreamer Runtime с официальной страницы. Готовый native hdrtonemap в модуле поставляется только для Windows x64 и Linux x64. На других платформах hdr_to_sdr может быть недоступен.

HDR в SDR

hdr_to_sdr работает только для распознанного PQ или HLG. SDR-видео не проходит через tone mapping. При useGpu: true модуль сначала пробует OpenCL GPU. Если GPU отсутствует или обработка завершается ошибкой, используется CPU fallback. CPU tone mapping 4K-видео может не успевать в реальном времени. HDR-to-SDR всегда заканчивается перекодированием в H.264, поэтому на него также влияют video_bitrate, hardwareAcceleration и x264Ultrafast. Dolby Vision обрабатывается только при наличии распознаваемого PQ/HLG base layer; динамические RPU metadata не применяются.

Проверка GStreamer

Для системной установки проверьте доступную версию:
В portable Windows эта команда может быть недоступна в обычном терминале: модуль настраивает пути GStreamer только внутри процесса Core. Версия GStreamer, результат проверки аппаратного encoder и доступность HDR backend записываются при запуске Core. Если версия успешно определяется, gst_version вручную задавать не нужно.