Транскодеры¶
Транскодеры реализованы как отдельные исполняемые бинарные файлы, которые запускаются из pstreamer как отдельные процессы.
Поддерживаются конфигурации типа 1toN, т.е. с одного decoder можно получить несколько потоков с разными настройками encoder.
В исходном потоке необходимо наличие видео и аудио, варианты без видео или без звука не поддерживаются.
Реализованы кодеки:
Video SW decoder: mpeg2, h.264, hevc (h.265)
Video NW decoder: mpeg2, h.264, hevc (h.265)
Video SW encoder: mpeg2, h.264, hevc (h.265)
Video NW encoder: h.264, hevc (h.265)
Audio decoder - mpeg (layer 1,2,3), aac, ac3
Audio encoder - mpeg (layer 2), aac
Есть режим транскодирования Video Passthrough - без транскодирования видео, обрабатывается только звук. Используется транскодер SW.
Примечание
Для транскодирования необходимо сконфигурировать два стрима (или более, если энкодеров несколько). Декодер и энкодер должны быть в разных стримах.
Для настройки инстанса транскодера необходимо:
Источник - добавить в stream output transcoder (decoder). В настройке выбрать тип - SW, NV или Video Passthrough.
Выходной поток - добавить в stream input transcoder (encoder). В настройках выбрать источник-decoder.
Повторить, если надо несколько выходных потоков на один decoder.
Настройки input transcoder (encoder)¶
Encoder Type - кодек видео.
Align Total Bitrate - битрейт стаффинга потока (заполнение null пакетами). Важно это задать, если поток будет использоваться для DVB вещания. Битрейт должен быть гарантированно больше битрейта видео и все звуковых дорожек.
Video Profile - для H.264 можно выбрать профиль кодирования.
Video Bitrate - битрейт видео потока в kbps. Кодирование всегда использует режим CBR. Суммарный битрейт будет больше из-за звуковых дорожек.
Speed Preset - предустановки опций кодирования, значения от 1 до 7. Значение меньше - больше качество и больше требуемых ресурсов. По умолчанию 4.
GOP Interval - интервал в фреймах для GOP (этот параметр соотв. Key Frame Interval). По умолчанию 25 (1 секунда для 25p), рекомендуемое значение если проигрыватели используют рандомный старт.
BFrame - включить для повышения качества. Рекомендуемое значение 3.
Lookahead - включить для повышения качества. Рекомендуемое значение 20 - 50 фреймов.
Resize - изменение размера картинки.
Вставка crop (пустые поля по краям картинки) не поддерживается. Задание произвольного размера картинки не поддерживается, так как это может привести к искажению пропорций.
Для resize доступны опции:
Пропорционально уменьшить размер на 2 и 4.
Сделать формат Wide SD 16:9 с пересчетом Aspect Ratio.
Задать ширину. Высота будет пропорционально пересчитана.
Задать высоту. Ширина будет пропорционально пересчитана.
Какие-то параметры могут оказаться несовместимыми с заданным транскодером. Ошибки можно увидеть в логах транскодера.
Для корректной работы транскодера требуется, чтобы исходный поток соответствовал определенным требованиям и в некоторых случаях это можно исправить. Эти настройки не конвертируют поток, они работают как подсказки для корректной работы тракскодера.
Для коррекции данных входного потока в Transcoder Output имеются настройки:
Fix PAR - исправить Pixel Aspect Ratio. Задается как дробное число в формате N/D. Например, для Wide SD это 16/9.
Fix Framerate - явно указать framerate. В некоторых потоках framerate в SPS может отсутствовать и в логе транскодера будет соотв. ошибка. В этих случаях надо явно указать framerate. Задается как дробное число в формате N/D.
Примеры значений framerate:
PAL - 25/1
NTSC - 30/1 или 30000/1001
Cinema - 24/1 или 24000/1001
Обработка звука¶
По умолчанию все звуковые дорожки передаются со входа на выход без обработки. Ненужные дорожки можно убрать настройкой PID фильтров в stream.
Если надо транскодировать звук, то это можно настроить правилами отдельно для каждого звукового кодека. Опция skip - убрать звуковую дорожку с этим кодеком.
Если в выходном потоке не окажется звуковых дорожек, то будет ошибка, см. в логах транскодера.
Статус работы транскодеров¶
При наличии проблем в работе транскодера (нет потока с encoder) надо смотреть логи в разделе Transcoders, тут отображается список инстансов (каждая строка - отдельный инстанс, decoder + N encoders) и, при клике на нужный инстанс, открывается диалог статуса логов. Отображается текущий лог и лог от предыдущего запуска. Для подробного лога надо включить trace в настройках output (decoder).