Skip to content

Транскодирование

Транскодер Sapsan (на базе FFmpeg) перекодирует входной поток: меняет кодеки, битрейт, разрешение и готовит мультибитрейтную лесенку (MBR) из одного источника.

Настройка

Секция transcoder.output описывает выходные дорожки. Каждая дорожка берет источник (!content video или !content audio) и задает кодек:

streams:
  tv1:
    inputs:
    - udp: {host: 239.0.0.1, port: 5000}
    transcoder:
      output:
      - source: !content video          # 1080p — верх лесенки
        codec: !set h264
        bitrate: 2800000
        params: !video
          gop_size: 28
          gop_structure: ipppb
      - source: !content video          # 720p
        codec: !set h264
        bitrate: 1200000
        params: !video
          gop_size: 28
          gop_structure: ipppb
          resize: !fit
            height: 720
      - source: !content audio
        codec: !set aac

Выбор исходной дорожки

source Что берет
!content video / !content audio дорожку по типу контента
!exact v1 конкретную дорожку по идентификатору
!best_quality video лучшее качество из имеющихся
!language_codec [eng, aac] дорожку по языку и кодеку

Параметр if_missing задает поведение, когда дорожки нет: drop (по умолчанию — выход не создается), blank (пустой сигнал) или substitute (подстановка).

Кодеки и параметры

  • codec: !set <name> — перекодировать (h264, hevc, av1, aac, opus); codec: same — пропустить без перекодирования (например, только перепаковать аудио).
  • Выходы разных кодеков из одного источника держат выровненные таймстемпы и ключевые кадры — лесенка h264/hevc/av1 остается согласованной.
  • gop_size, gop_structure (например, ipppb) — управление структурой GOP, важно для согласованных сегментов MBR.
  • Аудио: перекодирование G.711 → AAC/Opus 48 кГц с сохранением таймлайна — типовой случай для IP-камер.
  • JPEG-дорожки скриншотов проходят сквозь транскодер нетронутыми.

Изменение размера

resize Что делает
!scale точное масштабирование в заданные размеры
!fit вписать с сохранением пропорций (с полями, цвет фона настраивается)
!crop обрезать до заданных размеров

Note

TODO: аппаратное ускорение (Nvenc/Vulkan), деинтерлейс, оверлеи/логотипы, справочник аудио-параметров.

Проверка

Откройте мастер-плейлист http://server/streaming/v/tv1/index.m3u8 — в нем должны появиться все выходные качества.

Что дальше