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