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

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

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Количество сегментов в playlist10

Аудио

ПолеОписаниеПо умолчанию
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.