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

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

Al(co)pac может транскодировать видео-потоки через FFmpeg для совместимости с устройствами, не поддерживающими исходный формат.

Требования

  • FFmpeg установлен на сервере (ставится автоматически при curl-установке)
  • Достаточно CPU и RAM для real-time транскодирования

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

{
  "Transcoding": {
    "Enable": true,
    "FFmpeg": "/usr/bin/ffmpeg",
    "TempRoot": "/tmp/lampac-transcode",
    "IdleTimeoutSec": 300,
    "MaxConcurrent": 2,
    "HLS": {
      "SegmentDuration": 6,
      "ListSize": 10
    },
    "Audio": {
      "Codec": "aac",
      "Bitrate": "128k"
    },
    "Subtitle": {
      "Extract": true
    }
  }
}

Параметры

Поле Описание По умолчанию
Enable Включить транскодирование false
FFmpeg Путь к бинарнику FFmpeg /usr/bin/ffmpeg
TempRoot Директория для временных сегментов /tmp
IdleTimeoutSec Таймаут простоя потока (сек) 300
MaxConcurrent Максимум одновременных потоков 2

HLS-параметры

Поле Описание По умолчанию
SegmentDuration Длительность HLS-сегмента (сек) 6
ListSize Количество сегментов в playlist 10

Аудио

Поле Описание По умолчанию
Codec Аудио-кодек aac
Bitrate Битрейт аудио 128k

Субтитры

Поле Описание По умолчанию
Extract Извлекать субтитры из потока true

Как работает

  1. Клиент запрашивает видео в неподдерживаемом формате
  2. Al(co)pac запускает FFmpeg для транскодирования в HLS
  3. HLS-сегменты отдаются клиенту в реальном времени
  4. После IdleTimeoutSec простоя процесс завершается и временные файлы удаляются
Транскодирование нагружает CPU. Рекомендуется ограничивать MaxConcurrent в зависимости от мощности сервера.

Поддержка HEVC (H.265)

Транскодирование автоматически определяет кодек видео (H.264 или HEVC) и применяет правильный bitstream filter:

  • H.264h264_mp4toannexb
  • HEVC (H.265)hevc_mp4toannexb

Определение происходит через ffprobe при старте потока. Если кодек не удаётся определить, используется H.264 по умолчанию.

Если ранее при транскодировании HEVC-видео (4K контент Mirage и др.) возникала ошибка 502 с сообщением Codec 'hevc' is not supported by the bitstream filter 'h264_mp4toannexb' — обновите сервер, проблема исправлена.

Включение

Через вкладку Плагины в админ-панели или в init.conf.