Документация Flussonic Media Server

Содержание

Транскодер

Транскодирование необходимо для того, чтобы:

  • создать мультибитрейтный поток
  • изменить параметры видео — кодек и битрейт потока, размер картинки
  • наложить логотип.

У Flussonic Media Server есть встроенный транскодер. Он поддерживает транскодирование на графическом процессоре или же с использованием центрального процессора.

Поддерживаются протоколы RTMP, RTSP, MPEG-TS (по HTTP и UDP).

Протокол HLS поддерживается частично — некоторые источники могут не транскодироваться. Работоспособность вашего источника HLS с транскодером необходимо каждый раз проверять самостоятельно.

При транскодировании на NVENC транскодер может обрабатывать потоки с 10-битной глубиной цвета.

Содержание:

Важно

Транскодирование является крайне ресурсоемким процессом (по CPU) и включает в себя следующие этапы:

  1. Декодирование исходного потока.
  2. Обработка и кодирование сырого потока в соответствии с заданными параметрами.

Рассчитывайте от 5 до 20 каналов на один сервер в зависимости от настроек.

Установка транскодера

Для транскодирования на GPU Nvidia NVENC никаких дополнительных пакетов устанавливать не требуется (в актуальных версиях Flussonic).

Но если вы используете для транскодирования центральный процессор (CPU), то нужно установить пакет flussonic-transcoder:

apt-get -y install flussonic-transcoder

Пакет устанавливается из того же репозитория, что и пакет flussonic.

Настройка транскодирования через файл

Настройки транскодирования задаются в настройках потока в конфигурационном файле. Их можно также указать в веб-интерфейсе.

Рассмотрим, как указать их в виде текстовой строки в конфигурационном файле /etc/flussonic/flussonic.conf.

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

Транскодер

  1. Транскодер для входящего потока включается следующим образом:

    stream origin {
      url fake://fake;
      push udp://239.0.0.1:1234;
    }
    stream example {
      url udp://239.0.0.1:1234;
      transcoder vb=2048k size=1280x720 preset=fast ab=128k;
    }
    
  2. Для применения настроек не забудьте выполнить

    service flussonic reload
    

Примеры настройки транскодирования потока

В примерах ниже используются иллюстрации, на которых группы настроек выделяются разными цветами:

  • синим — параметры кодирования видео, которые обязательно нужно указать.
  • желтым — параметры кодирования аудио, которые обязательно нужно указать.
  • белым — необязательные параметры.

Пример настройки параметров одного потока:

Параметры транскодера

Пример:

vb=2048k preset=veryfast ab=128k

Примеры настройки параметров мультибитрейтного потока:

Транскодер

Пример:

vb=2048k preset=fast vb=700k size=720x576 preset=fast vb=300k size=320x240 preset=fast ab=128k

Транскодер

Пример:

vb=copy vb=1600k size=1280x720 preset=fast vb=400k size=640x480 preset=fast ab=copy

Изменения в опциях транскодера

Транскодер поддерживает анаморфные видеопотоки путем учета соотношения сторон пикселя. Это достигается новым смыслом параметра size и параметром sar.

Новые параметры в версиях старше 20.03:

  • size — это размер выходного видео в пикселях для отображения на дисплее, который передается плееру. Размер складывается из дисплейных размеров (которые получает плеер для отображения итогового потока), стратегии ресайза (crop, fit, scale) и цвета фона. Таким образом, установить размер видео можно одним из следующих способов: size=WxH:fit:#ААFFEE, size=WxH:crop:#ААFFEE, или size=WxH:scale.

    Параметр size теперь означает размер окна воспроизведения на экране, которое Flussonic передает плееру, а не размер видео в пикселях внутреннего формата видео. Пиксель может иметь разное соотношение сторон для разных выходных форматов. Ранее size интерпретировался как пиксельный размер, а размер окна воспроизведения зависел от SAR потока или от значения параметра aspect.

  • sar во Flussonic — это соотношение ширины дисплейного представления к ширине пиксельного представления. Ширина дисплейного представления — это количество пикселей на матрице отображающего дисплея, это то, что передается плееру для проигрывания. А ширина пиксельного представления — это количество пикселей в оригинальной YUV.

Подробнее об обработке опций size и sar читайте в списке опций транскодера на этой странице.

Кроме size, изменилось поведение следующих старых параметров: aspect, force_original_aspect_ratio, и crop:

  • Параметр aspect заменен на sar. Почти все типы транскодеров во Flussonic будут интерпретировать его как SAR (не DAR), за исключением Nvidia NVENC.
  • Параметр force_original_aspect_ratio не требуется в большинстве случаев, и, если он требуется, проставляется автоматически.
  • Параметр crop теперь поддерживается почти всеми типами транскодеров (не спутайте его со стратегией изменения размера "crop").

Настройки транскодера, которые вы настроили ранее, останутся такими же и будут обрабатываться прежним методом. Транскодер станет обрабатывать параметры по-новому, только если вы указываете новые параметры — SAR или стратегию изменения размера (или оба) — и при этом не указываете устаревшие параметры (aspect, force_original_aspect_ratio).

Настройка транскодирования с помощью веб-интерфейса

В веб-интерфейсе можно настроить транскодер как для потоков, так и локаций публикации.

Чтобы настроить транскодирование через веб-интерфейс Flussonic:

В меню Media > Streams или Media > Locations выберите канал (поток), который необходимо транскодировать. Откройте вкладку Transcoder и нажмите Enable transcoder.

Чтобы развернуть или свернуть группы настроек, используйте стрелки в правой части страницы.

Flussonic transcoder

Параметры кодирования аудио

transcoding options

  • Copy from input — отметьте, чтобы получить на выходе аудио с теми же характеристиками, что и на входе.
  • Bitrate — битрейт аудио дорожки.
  • Codec (aac|opus|mp2a) — аудио-кодек (по умолчанию используется кодек AAC).
  • Sample rate (bypass|0|8000|16000|32000|44100|48000)
  • Channels — количество аудиоканалов в выходном потоке.

Глобальные настройки транскодера (применяются ко всем выходным дорожкам)

transcoding options

  • Device — выбор вида транскодера. Позволяет включить аппаратное кодирование и задать номер видеокарты, либо использовать ЦП. Аппаратное кодирование позволяет транскодировать значительно больше потоков на одном сервере. Здесь сразу номер видеокарты NVENC.
  • Deinterlace — устраняет чересстрочность. Деинтерлейсинг необходим для комфортного просмотра ТВ на ПК/мобильных устройствах. В этом поле вы видите методы устранения чересстрочности, доступные для выбранного типа транскодера (CPU, Nvidia NVENC, и др.)

    Для Nvidia эта опция представляет две опции в файле конфигурации (deinterlace и deinterlace_rate), которые используются вместе. Существуют следующие отношения между выбранным значением в поле Deinterlace и значениями этих опций в файле конфигурации:

    • off

      deinterlace=false, deinterlace_rate=frame

      Метод деинтерлейса у Nvidia — weave.

    • on

      deinterlace=true, deinterlace_rate=frame

      Метод деинтерлейса у Nvidia — adaptive.

    • on double rate

      deinterlace=true, deinterlace_rate=field

      Метод деинтерлейса у Nvidia — adaptive.

    • adaptive

      deinterlace=adaptive, deinterlace_rate=frame

      Метод деинтерлейса у Nvidia — adaptive.

    • adaptive double rate

      deinterlace=adaptive, deinterlace_rate=field

      Метод деинтерлейса у Nvidia — adaptive.

  • Crop after decoding — Большинства типов транскодера позволяет делать обрезку видео. Обрезка позволяет получить на выходе только часть площади изображения. Введите 4 числа, которые означают следующее: Crop-X и Crop-Y — координаты верхнего левого угла результирующего изображения, относительно исходного (т.е. если (0,0) — это левый верхний угол исходного изображения), Crop-Width — ширина изображения, Crop-Height — высота изображения.

  • GOP size — количество кадров в GOP. Flussonic транскодирует поток, создавая каждый GOP точно такого размера, как указано в этой настройке.

  • FPS — частота кадров (Frames per second).

    Важно! GOP size и FPS теперь указываются для всех дорожек в потоке, а не для каждой дорожки. Однако файл конфигурации поддерживает и новое, и старое поведение: если в файле конфигурации эти параметры следуют за второй или любой последующей видеодорожкой, они применяются только к этой дорожке. Если же эти параметры указаны после самой первой видеодорожки или предшествуют всем дорожкам, они применяются ко всем дорожкам.

  • Improve the transcoder performance by running it as part of Flussonic (use with caution). По умолчанию транскодер на сервере исполняется в отдельном от Flussonic процессе. Такое поведение более надежно обеспечивает бесперебойную работ Flussonic Media Server. Если вы включаете опцию Improve the transcoder performance by running it as part of Flussonic (external=false в файле), то транскодер будет выполняться в одном процессе с Flussonic Media Server. Это ускоряет кодирование, особенно при кодировании аудио или при кодировании с использованием Nvidia. Однако ошибка транскодера может привести к остановке работы Flussonic Media Server.

Параметры кодирования видео

Добавить настройки видеодорожки в транскодер можно тремя способами:

  • Нажмите кнопку Add video track и (опционально) выберите битрейт, чтобы появился диалог настройки параметров видео.

  • Чтобы получить на выходе видео с теми же характеристиками, что и на входе, отметьте Copy from input.

  • Чтобы продублировать указанные вами настройки в новую видеодорожку, кликните Duplicate.

transcoding options

Кроме того, вы можете скопировать все настройки транскодера в другие потоки.

После того, как вы добавили видеодорожку, вы сможете редактировать ее настройки. Чтобы развернуть настройки кодирования дорожки, щелкните стрелку:

transcoding options

Все параметры находятся на одном экране:

transcoding options

  • Width — ширина итогового видео в плеере на экране в пикселях.

  • Height — высота итогового видео в плеере на экране в пикселях.

  • SAR (X:Y) — соотношение ширины дисплейного представления к ширине пиксельного представления. Ширина дисплейного представления — это количество пикселей на матрице отображающего дисплея, это то, что передается плееру для проигрывания. А ширина пиксельного представления — это количество пикселей в оригинальной YUV. Пиксельную ширину входного видео надо умножить на SAR (X:Y), чтобы получить дисплейную ширину. Этот параметр можно использовать (иногда вместе со стратегией изменения размера) если нужно получить видео для отображения на нестандартном дисплее. Фактически меняет параметры анаморфности. Подробнее о SAR в списке опций транскодера

  • Resize — стратегия изменения размеров (ресайза) видео до указанных размеров Height (и Width).

  • Background — цвет фона — области в плеере, не заполненной видео после ресайза. Указывается только для стратегии 'fit'.

  • Bitrate — видео-битрейт дорожки.

  • Codec (H.264|H.265|MP2V) — видео-кодек.

  • Profile (baseline|main|high) — ограничивает выходной поток одним профилем H.264.

  • Interlace — используется для получения потока с чересстрочным кодированием из прогрессивного. Значение progressive соответствует false, interlaced соответствует true, остальные значения — это методы получения видео с черсстрочной разверткой, доступные для выбранного вида транскодера. Подробнее об опции interlace рассказано в списке опций транскодера

  • Preset — влияет на качество и скорость доставки. О пресетах см. в Presets на этой странице.

  • B-frames — значения 0|1|2|3 соответствуют последовательностям кадров: IP|IBP|IBBP|IBBBP.

  • Open GOP — разрешает транскодеру разбивать выходной поток на GOP с немного различающимся количеством кадров, но в районе заданного в опции GOP size. Эта настройка применима только к транскодированию на процессоре. Иногда это помогает уменьшить трафик.

  • Refs — референсные кадры, использующиеся при межкадровой компрессии для ссылок на последующие кадры. Лучшее качество видео будет при большем количестве референсных кадров.

  • Level — может использоваться для совместимости с устаревшими устройствами проигрывания.

  • Logo Чтобы добавить логотип в видео-изображение, укажите путь к файлу с логотипом и затем выберите место размещения логотипа на видео. Чтобы использовать один файл во всех выходных видео-дорожках, укажите его в поле Logo, а транскодер сам изменит его размер с учетом размера выходного видео. Описание опции см. в опциях.

    transcoding options

  • Extended — если требуемых опций нет на экране, добавьте их вручную в разделе Extended:

Сохранение настроек

Чтобы сохранить новые значения, нажмите Save.

Чтобы удалить все настройки и отключить транскодер для этого потока, нажмите Disable transcoder.

Копирование настроек транскодера в другие потоки

Чтобы скопировать настройки в другие потоки:

  1. Перейдите на вкладку Transcoder потока, в котором вы уже настроили параметры транскодера.
  2. Нажмите Copy settings
  3. Перейдите на вкладку Transcoder потока, где вы хотите применить те же настройки, и нажмите Enable and paste settings. Если в потоке уже настроен транскодер, кнопка будет Paste settings.

Аппаратное ускорение

С помощью аппаратного транскодера можно серьезно увеличить количество транскодируемых потоков на одном сервере.

Flussonic Media Server поддерживает Nvidia NVENC и Intel Quick Sync технологии.

Один видео-поток можно транскодировать с использованием только одного вида транскодера.

Подробнее про установку и настройку аппаратного ускорения описано в разделах Аппаратное транскодирование на Nvidia NVENC и Intel Quick Sync Video.

Наложение логотипа

Flussonic Media Server может накладывать логотип на видео:

Транскодер

Пример:

vb=2048k preset=fast logo=/storage/logo.png@10:10 ab=128k

10:10 — это координаты от левого верхнего угла экрана. Для размещения в других частях экрана может понадобиться написать немного более сложную формулу.

Для размещения в центре:

vb=2048k preset=fast logo=/storage/logo.png@(main_w-overlay_w-10)/2:(main_h-overlay_h-10)/2 ab=128k

Для размещения в левом нижнем углу:

vb=2048k preset=fast logo=/storage/logo.png@10:(main_h-overlay_h-10) ab=128k

Для размещения в правом верхнем углу:

vb=2048k preset=fast logo=/storage/logo.png@(main_w-overlay_w-10):10 ab=128k

Для размещения в правом нижнем углу:

vb=2048k preset=fast logo=/storage/logo.png@(main_w-overlay_w-10):(main_h-overlay_h-10) ab=128k

Внимание! Flussonic Media Server может накладывать логотип только при кодировании на CPU и NVENC.

Выбор пресета

Preset — это набор оптимальных параметров, влияющих скорость кодирования и качество. Чем лучше качество, тем дольше по времени кодируется файл, и наоборот.

Это означает, что лучшего качества при кодировании можно достичь используя более медленный preset, но кодирование займет больше времени. Используйте «медленные» пресеты, если для вас важнее качество, а не скорость.

Для транскодирования с использованием ЦП поддерживаются следующие значения (в порядке убывания скорости):

  • ultrafast
  • superfast
  • veryfast
  • faster
  • fast
  • medium
  • slow
  • slower
  • veryslow
  • placebo

По умолчанию используется medium. Пресет placebo не слишком полезен, его не нужно использовать.

При кодировании с использованием Nvidia NVENC поддерживается следующий набор пресетов:

default, slow, medium, fast, hp, hq, bd, ll, llhq, llhp, lossless, losslesshp.

При кодировании с использованием Intel QuickSync набор пресетов следующий:

veryfast, faster, fast, medium, slow, slower, veryslow.

Плавная смена источника

Транскодер Flussonic умеет правильно обрабатывать смену характеристик входного видеопотока. Плавная смена источника означает, что транскодер не потеряет ни одного кадра, если на входе произошла смена источника потока с изменением media information. Частая ситуация — смена размера изображения у нового источника, на который произошло переключение. Например, когда в телеканал врезана реклама с другой шириной и высотой изображения или когда вы транскодируете серверный плейлист, состоящий из разных видео-потоков и файлов. Потерю кадров можно наблюдать в результирующем потоке как мигание или появление иных артефактов.

Если вы транскодируете на CPU или Nvidia NVENC, то плавная смена источника происходит автоматически, это поведение по умолчанию. Начиная с версии Flussonic 20.07, эти транскодеры умеют не терять ни одного кадра при изменении характеристик входного потока.

Однако для других аппаратных транскодеров (Intel Quick Sync) может потребоваться настроить плавную смену источника. С помощью опции seamless=true транскодер "бесшовно" переключается на другой исходный формат без потери кадров. При изменении размера изображения это достигается за счет транскодирования всех источников с одинаковым размером, который вы указали в опции size. Если size не указан, то размер будет как у самого первого источника, который был получен на вход транскодера.

Пример (для транскодеров, кроме CPU и NVENC):

stream STREAM_NAME {
  udp://239.0.0.1:5000;
  transcoder vb=3000k size=320x200 ab=copy hw=qsv seamless=true;
}

Опции транскодера

Опции видео

vb

vb (video bitrate) — параметр, задающий битрейт видео дорожки. Задаётся в виде числового значения (1000k, 1500k, 2000k и т.д.). Значение должно обязательно заканчиваться на k. Каждое указание опции vb создает новую видео дорожку в выходном потоке.

Пример:

vb=2048k ab=128k

Опция vb=copy сохраняет параметры оригинального потока, то есть просто копируется в исходящий поток.

preset

preset — аналог encoder preset из стандартного набора ffmpeg. Влияет на качество и скорость загрузки. Указывается отдельно для каждого видеопотока. По умолчанию — medium.

Пример:

vb=2048k preset=fast ab=128k

Подробнее о пресетах ниже.

size

size — задает размеры видео на дисплее, где оно будет отображаться. Используется вместе со стратегией ресайза (crop, fit, scale) и цветом фона той части окна плеера, которую не заполнит видео.

Пример:

vb=2048k size=1280x720:fit:#000000 ab=128k

Параметр size теперь означает размер окна воспроизведения на экране, которое Flussonic передает плееру, а не размер видео в пикселях. Ранее size интерпретировался как пиксельный размер, а размер окна воспроизведения зависел от SAR потока или от значения устаревшего параметра aspect.

logo

logo — позволяет наложить логотип. Логотип добавляется до изменения размера изображения видео нашим транскодером. Это значит, что при значительном изменении размера выходного видео логотип может заметно исказиться.

Пример:

vb=2048k size=1280x720 logo=/storage/logo.png@10:10 ab=128k;

Подробнее о параметрах наложения логотипа ниже на этой странице.

alogo

alogo — позволяет наложить логотип. Логотип добавляется после изменения размера изображения видео нашим транскодером. Это предотвращает растягивание логотипа, которое может произойти при добавлении логотипа при помощи опции logo. Для каждого выходного разрешения видео вам нужно подготовить и указать отдельный файл логотипа.

Пример:

vb=2048k size=1280x720 alogo=/path/to/file.png@10:10 ab=128k

Подробнее о параметрах наложения логотипа ниже на этой странице.

vcodec

vcodec — позволяет задать видео кодек. По умолчанию используется H.264. Flussonic Media Server позволяет кодировать в H.265 (hevc) или mp2v. Указывается отдельно для каждого видеопотока.

Кодек mp2v недоступен при использовании аппаратного кодирования.

Пример:

vb=2014k vcodec=mp2v ab=128k

fps

fps — задает частоту кадров. Указывается отдельно для каждого видеопотока.

Пример:

vb=2048k fps=24 ab=128k

deinterlace

deinterlace — устраняет чересстрочность. При интенсивной смене кадров в некоторых видеоплеерах могут наблюдаться продольные горизонтальные полосы. Деинтерлейсинг необходим для комфортного просмотра ТВ на ПК/мобильных устройствах. Указывается один раз и действует сразу на все видеопотоки.

Пример:

vb=2000k deinterlace=true deinterlace_rate=frame ab=128k

В UI этой опции соответствует поле Deinterlace.

deinterlace_rate

deinterlace_rate — для Nvidia NVENC можно удалять второе поле, получившееся после устранения чересстрочности, предотвращая тем самым повышенный битрейт.

  • deinterlace_rate=frame — fps остается прежним,
  • deinterlace_rate=field — fps увеличивается после транскодирования в два раза.
Пример:
vb=2000k deinterlace=true deinterlace_rate=frame ab=128k

В случае использования Nvidia NVENC обе опции (deinterlace и deinterlace_rate) добавляются в файл конфигурации при выборе вами какого-либо значения в поле Deinterlace. Существуют следующее соответствие между выбранным значением в поле Deinterlace и значениями опций в файле конфигурации:

  • off

    deinterlace=false, deinterlace_rate=frame

    Метод деинтерлейса у Nvidia — weave.

  • on

    deinterlace=true, deinterlace_rate=frame

    Метод деинтерлейса у Nvidia — adaptive.

  • on double rate

    deinterlace=true, deinterlace_rate=field

    Метод деинтерлейса у Nvidia — adaptive.

  • adaptive

    deinterlace=adaptive, deinterlace_rate=frame

    Метод деинтерлейса у Nvidia — adaptive.

  • adaptive double rate

    deinterlace=adaptive, deinterlace_rate=field

    Метод деинтерлейса у Nvidia — adaptive.

refs

refs — количество референсных кадров. Указывается отдельно для каждого видеопотока.

Пример:

vb=2000k refs=6 ab=128k

bframes

bframes — позволяет отключить b-frames. Это может понадобиться, например, при вещании в RTSP. Указывается один раз и действует сразу на все видеопотоки.

Пример:

vb=2000k bframes=0 ab=128k

hw

hw — включает аппаратное кодирование. Указывается в настройках потока.

Пример:

vb=2048k hw=nvenc deviceid=1 ab=128k

crop

crop — позволяет обрезать видео.

Использование: crop=x:y:width:height, где:

  • x:y — координаты левого верхнего угла выходного видео в пределах размеров входного видео,
  • width — ширина выходного видео
  • height — высота выходного видео.
Пример:
vb=2048k hw=nvenc deviceid=1 crop=0:0:100:100 ab=128k

sar

sar — изменяет соотношение сторон видео. Применяется, чтобы из анаморфного видео получить не-анаморфное. Используется вместо устаревшего aspect, но с отличиями.

SAR в терминах Flussonic — это соотношение ширины дисплейного представления к ширине пиксельного представления. Ширина дисплейного представления — это количество пикселей на матрице отображающего дисплея, это то, что передается плееру для проигрывания. А ширина пиксельного (внутреннего) представления — это количество пикселей в оригинальной YUV.

В пользовательском интерфейсе sar представлен в расширенных опциях видео.

Старый параметр aspect обрабатывается как SAR. Для транскодера на Nvidia NVENC aspect интерпретируется как DAR (cоотношение размеров окна плеера) и обрабатывается как в более ранних версиях Flussonic.

Важно! Изменение соотношения сторон не поддерживается для аппаратного кодирования с использованием Intel QuickSync (hw=qsv).

Пример:

vb=2048k sar=12:5 ab=128k

Flussonic исходя из sar вычисляет разрешение выходного видео. Видео с внутренней пиксельной шириной 720 и sar=16:11 будет на выходе из Flussonic иметь дисплейную ширину 1048. Картинка такой ширины, в пикселях дисплея, будет при воспроизведении в плеерах.

force_original_aspect_ratio (не использовать)

force_original_aspect_ratio=true — сохраняет соотношение сторон видео путем добавления черных полос. Опция полезна если вы хотите сохранить разрешение на выходе при переключении между разными источниками.

Пример:

vb=2048k size=1280x720 force_original_aspect_ratio=true

g

gop=150 — устанавливает количество кадров в одном GOP. Flussonic транскодирует поток, создавая каждый GOP точно такого размера, как указано в этой настройке.

Пример:

vb=2048k fps=25 size=1280x720 gop=150

Чтобы разрешить делать GOP не обязательно строго одного размера, используйте в дополнение к этой опции опцию disable_cgop.

disable_cgop

disable_cgop=1 — разрешает транскодеру разбивать выходной поток на GOP с немного различающимся количеством кадров, но в районе заданного в опции gop. Эта настройка применима только к транскодированию на процессоре (а не на аппартном транскодере). Иногда это помогает немного уменьшить трафик.

Пример:

vb=2048k fps=25 size=1280x720 gop
=150 disable_cgop=1

interlace

interlace — используется для получения потока с чересстрочным кодированием из прогрессивного.

Возможные значения опции: interlace=tff|bff|tff_separated|bff_separated|mbaff|true|false

Если просто включить опцию без указания метода получения чересстрочного видео (interlace=true), то будет использован метод по умолчанию (свой для каждого вида транскодера). Можно указать и другой метод.

  • false - это значение по умолчанию, на выходе останется progressive.

  • tff - interlaced, top field first, interleaved field store. Используется c hw=qsv, nvenc.

  • bff - interlaced, bottom field first, interleaved field store. Используется c hw=qsv, nvenc.

  • tff_separated - interlaced, top field first, separated fields. Используется c hw=qsv.

  • bff_separated - interlaced, top field first, separated fields. Используется c hw=qsv.

  • mbaff- interlaced libx264 MBAFF method. Используется только c hw=cpu.

  • true - включить чересстрочную развертку методом по умолчанию для используемого энкодера (метод mbaff используется по умолчанию для hw=cpu, метод tff - для hw=qsv, nvenc).

Примеры:

vb=2048k interlace=bff hw=qsv deviceid=2

Будет использован метод по умолчанию (mbaff для hw=cpu):

vb=2048k interlace=true hw=cpu

rc_method

rc_method - используется для создания выходного видео с постоянным битрейтом, подходящего для трансляции в телевизионные сети.

На самом деле, невозможно кодировать видеопоток с постоянным битрейтом из-за разного размера у разных типов кадров. Однако телевидение требует постоянного битрейта, а также каналы передачи имеют свои требования.

В транскодере Flussonic мы решили ряд проблем по обеспечению совместимости видеопотока с такими требованиями.

Энкодер Flussonic использует комбинацию методов: 1) чтобы все кадры соответствовали разрешенному размеру; 2) если кадры занимают меньше байтов, чем требуется, - чтобы заполнить кадры данными до требуемого размера. Таким образом, Flussonic анализирует поток до каждого отдельного кадра и создает видео, полностью совместимое с DVB-C.

Опция принимает значения:

  • rc_method=cbr - энкодер создаст поток, совместимый с DVB-C.

  • rc_method=vbr - не кодировать поток для совместимости с DVB-C.

Пример:

transcoder vb=2048k rc_method=cbr

На данный момент использование этой опции потребляет много ресурсов (одно ядро ​​ЦП для одного потока MPTS с CBR).

См. также о том, как применять опции rc_method и interlace:

Любые параметры видео

Например, -profile:v high -level 4.1 в конфигурации Flussonic Media Server будет выглядеть так: profile=high level=4.1.

Опции аудио

ab

ab — задает битрейт аудио. Указывается только один раз (даже если у вас мультибитрейтное видео). Значение должно обязательно заканчиваться на k.

Пример:

vb=2048k ab=128k

acodec

acodec — задает аудио кодек. Доступные значения: ac3, mp2a. По умолчанию, все аудиопотоки пережимаются в AAC.

Пример:

vb=2014k vcodec=mp2v ab=128k acodec=mp2a

ar

ar — задает sample rate, частоту дискретизации. Пример: ar=44100.

Пример:

vb=2014k ab=128k ar=44100

ac

— задает количество аудио-каналов.

Пример:

vb=2014k ab=128k ac=1

Другие опции

seamless=true

seamless=true — предотвращает мигание, которое может возникать при изменении источника потока или его media_info, особенно если размер изображения из нового источника не такой, как из предыдущего.

При транскодировании на CPU и на Nvidia NVENC эту опцию со значением true можно не указывать, так как бесшовное переключение происходит по умолчанию.

Подробнее

Пример:

transcoder vb=3000k size=1280x720 ab=copy seamless=true