Транскодеры

Транскодеры реализованы как отдельные исполняемые бинарные файлы, которые запускаются из 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).