Транскодирование
Транскодирование
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 |
Как работает
- Клиент запрашивает видео в неподдерживаемом формате
- Al(co)pac запускает FFmpeg для транскодирования в HLS
- HLS-сегменты отдаются клиенту в реальном времени
- После
IdleTimeoutSecпростоя процесс завершается и временные файлы удаляются
Транскодирование нагружает CPU. Рекомендуется ограничивать
MaxConcurrent в зависимости от мощности сервера.Включение
Через вкладку Плагины в админ-панели или в init.conf.