Транскодеры

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

Поддерживается interlaced stream на входе и выходе.

Для H.264 и HEVC decoder поддерживается формат interlace alternate (два отдельных поля в потоке). Он преобразуется в interlace interleaved.

Для HEVC decoder поддерживается профиль Main10 с bt.709 (SDR) и bt.2020 (HDR). Encoder для HEVC всегда использует профиль Main c bt.709.

Для H.264 и HEVC decoder поддерживается формат VBR (Variable Frame Rate), он преобразуется в постоянный frame rate.

  • Audio decoder - mpeg (layer 1,2,3), aac, ac3

  • Audio encoder - mpeg (layer 2), aac

Есть режим транскодирования Video Passthrough - без транскодирования видео, транскодируется только звук. Используется транскодер SW.

Примечание

Для транскодирования необходимо сконфигурировать два или более стрима, с output (decoder) и c input (encoder).

Для настройки инстанса транскодера необходимо:

  • Источник - добавить в stream output transcoder (decoder). В настройке выбрать тип - SW, NV или Video Passthrough.

  • Выходной поток - добавить в stream input transcoder (encoder). В настройках выбрать источник-decoder.

  • Повторить, если надо несколько выходных потоков на один decoder.

Настройки output transcoder (decoder)

  • Convert colors to BT.709 - конвертация форматов SD BT.470-2 (PAL) и SMPTE 170M (NTSC) в BT.709

  • Trace - включить для дигностики подробный лог транскодера.

Для корректной работы транскодера требуется, чтобы исходный поток соответствовал определенным требованиям и в некоторых случаях это можно исправить. Эти настройки не конвертируют поток, они работают как подсказки для корректной работы тракскодера.

Для коррекции данных входного потока имеются настройки:

  • 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

Настройки 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 - изменение размера картинки.

  • Deinterlace - преобразует interlace в progressive.

Вставка crop (пустые поля по краям картинки) не поддерживается. Задание произвольного размера картинки не поддерживается, так как это может привести к искажению пропорций.

Для resize доступны опции:

  • Пропорционально уменьшить размер на 2 и 4.

  • Сделать формат Wide SD 16:9, будет задан нужный Aspect Ratio.

  • Upscale SD->HD. Применяется для источника формата SD PAL/NTSC. Interlace не поддерживается, применяется при необходимости deintelace.

  • Задать ширину. Высота будет пропорционально пересчитана.

  • Задать высоту. Ширина будет пропорционально пересчитана.

Какие-то параметры могут оказаться несовместимыми с заданным транскодером. Ошибки можно увидеть в логах транскодера.

Обработка звука

По умолчанию все звуковые дорожки передаются со входа на выход без обработки. Ненужные дорожки можно убрать настройкой PID фильтров в stream.

Если надо транскодировать звук, то это можно настроить правилами отдельно для каждого звукового кодека. Опция skip - убрать звуковую дорожку с этим кодеком.

Если в выходном потоке не окажется звуковых дорожек, то будет ошибка, см. в логах транскодера.

Формирование PCR и TR 101 290.

MPEG-TS мультиплексор формирует новый PCR. Если правильно задать Align Total Bitrate (более чем сумма битрейтов видео и звука), то PCR должен пройти проверку по стандарту TR 101 290.

Это также можно использовать для случаев, когда надо устранить проблемы PCR в потоках без транскодирования. Для этого надо настроить транскодер в режиме Video Passthrough без транскодирования звука.

Статус работы транскодеров

При наличии проблем в работе транскодера (нет потока с encoder) надо смотреть логи в разделе Transcoders, тут отображается список инстансов (каждая строка - отдельный инстанс, decoder + N encoders) и, при клике на нужный инстанс, открывается диалог статуса логов. Отображается текущий лог и лог от предыдущего запуска. Для подробного лога надо включить trace в настройках output (decoder).