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

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

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 в зависимости от мощности сервера.

Включение

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