Skip to content

Decklink SDI

Flussonic Media Server работает с платами Blackmagic: Decklink SDI или Decklink HDMI, а также Decklink Quad 2, у которых 8 портов.

Вы сможете:

Содержание:

Также полезно:

Установка драйвера для платы захвата

  • Вы можете скачать Linux версию драйвера с официального сайта Blackmagic по ссылке

  • Установите пакет:

cd Blackmagic_Desktop_Video_Linux_12.1/deb/x86_64
dpkg -i desktopvideo_12.1a9_amd64.deb

Если у вас установлена другая версия, вы можете удалить ее командой:

dpkg -r desktopvideo

Выполните следующую команду, чтобы проверить, успешно ли завершилась установка драйвера:

BlackmagicFirmwareUpdater status

Если установка прошла успешно, то Вы должны увидеть список доступных устройств для захвата.

После установки драйвера Blackmagic и обновления прошивки, настройте поток таким образом:

stream sdi {
  input decklink://0;
}

Flussonic Media Server подключится к указанному первому устройcтву (0) и запустит на нем автоконфигурацию для поиска активного разрешения.

Некоторые модели Decklink не поддерживают автоматический поиск активного разрешения и для них необходимо указывать режим вручную с помощью опций mode и vinput. Например, для Intensity Pro с подключенным к нему по HDMI источником 720p и 50 fps поток нужно настроить так:

stream sdi {
  input decklink://0;
}

Таблица параметров для decklink://:

Параметры Описание
mode Режим входящего потока. Может принимать одно из следующих значений: 'ntsc', 'nt23', 'pal', 'ntsp', 'palp', '23ps', '24ps', 'Hp25', 'Hp29', 'Hp30', 'Hp47', 'Hp48', 'Hp50', 'Hp59', 'Hp60', 'Hp95', 'Hp96', 'Hp10', 'Hp11', 'Hp12', 'Hi50', 'Hi59', 'Hi60', 'hp50', 'hp59', 'hp60', '2k23', '2k24', '2k25', '2d23', '2d24', '2d25', '2d29', '2d30', '2d47', '2d48', '2d50', '2d59', '2d60', '2d95', '2d96', '2d10', '2d11', '2d12', '4k23', '4k24', '4k29', '4k30', '4k47', '4k48', '4k50', '4k59', '4k60', '4k95', '4k96', '4k10', '4k11', '4k12', '4d23', '4d24', '4d25', '4d29', '4d30', '4d47', '4d48', '4d50', '4d59', '4d60', '4d95', '4d96', '4d10', '4d11', '4d12', '8k23', '8k24', '8k25', '8k29', '8k30', '8k47', '8k48', '8k50', '8k59', '8k60', '8d23', '8d24', '8d25', '8d29', '8d30', '8d47', '8d48', '8d50', '8d59', '8d60', 'vga6', 'svg6', 'wxg5', 'wxg6', 'sxg5', 'sxg6', 'uxg5', 'uxg6', 'wux5', 'wux6', 1945, 1946, 'wqh5', 'wqh6', 'wqx5', 'wqx6', 'rwci', 'rwcc'.
vinput Видеоинтерфейс. Может принимать одно из следующих значений:
1 — Composite,
2 — Component,
3 — HDMI,
4 — SDI,
5 — Optical SDI,
6 — SVideo.
ainput Аудиоинтерфейс. Может принимать одно из следующих значений:
0 — Analog,
1 — Embedded,
2 — AESEBU.
vpts Режим синхронизации для видео. Может принимать одно из следующих значений:
2 — по аудио,
3 — по эталонному сигналу.
apts Режим синхронизации для аудио. Может принимать одно из следующих значений:
1 — по видео,
3 — по эталонному сигналу.
sar SAR входного потока. SAR указывается для анаморфного видео с соотношением сторон не равным 1:1.
Пример: sar=16:11.

Транскодирование видео с плат SDI

Если необходимо транскодировать захваченный поток из Decklink SDI, добавьте директиву transcoder в настройки потока:

stream sdi {
  input decklink://0;
  input fake://fake;
  transcoder vb=3096k ab=64k;
}

Note

Параметр транскодирования external=false теперь используется по умолчанию для SDI, HDMI и других "сырых" видеопотоков, предотвращая чрезмерную нагрузку на сервер, возникающую при external=true. При транскодировании нескольких потоков на Nvidia NVENC убедитесь, что в опции выставлено одинаковое значение на всех потоках.

Параметры транскодирования больше не указываются отдельно для источника input decklink://, так как теперь Flussonic умеет получать видео из SDI в виде сырых кадров. Ранее необходимо было сразу транскодировать SDI-поток опцией enc= в настройках захвата, потому что Flussonic не мог работать с ним в виде некодированного видео.

Что это даёт:

  • Повышение качества видео. Мы избегаем двойного транскодирования в потоках с несколькими источниками и транскодированием, поскольку все источники потока транскодируются теперь один раз согласно параметрам, указанным в transcoder.
stream sdi {
  input decklink://0;
  input fake://fake;
  transcoder vb=3096k ab=64k;
}
  • Экономия ресурсов (по той же причине).

  • "Бесшовное" переключение между SDI и другими источниками потока.

  • Удобство настройки SDI источника через UI — теперь не нужно указывать опции транскодера отдельно для SDI источника, нет необходимости редактировать файл flussonic.conf и затем применять конфигурацию.

  • Это позволит использовать аппаратные транскодеры для кодирования видео, полученного из Decklink SDI (в будущих версиях Flussonic).

Caution

Если вы не укажете настройки транскодирования в transcoder, то поток работать не будет.

Устранение чересстрочности в прогрессивных потоках

Flussonic может устранять чересстрочность в прогрессивных потоках для улучшения качества видео. Для этого следует использовать метод деинтерлейсинга CUDA yadif:

stream test {
  input decklink://1 vinput=4;
  transcoder vb=4000k hw=nvenc preset=slow fps=50 deinterlace=yadif ab=128k;
}

Захват SD видео с плат SDI (20.09)

Flussonic поддерживает видео с неквадратными пикселями (анаморфное видео) при захвате с SDI карт. Зачастую это видео SD (standard definition) качества.

Например, при захвате каналов в формате PAL, в выходном потоке может появиться искажение пропорций изображения если соотношение сторон пикселя не 1:1. Подавляющее большинство устройств ожидает, что соотношение сторон пикселя 1:1.

Чтобы Flussonic сохранил пропорции в выходном видео без искажения картинки, следует указать sar входящего потока:

stream test {
  input decklink://1 vinput=4 sar=16:11; 
}

Flussonic исходя из sar вычисляет разрешение выходного видео. В примере с sar=16:11 входящее анаморфное видео 720x576 пройдет внутри Flussonic с разрешением 1048x576.

Эта настройка работает при захвате с плат Decklink и StreamLabs.

Flussonic Media Server может не только захватывать, но и передавать поток на плату захвата и вывода Decklink SDI или HDMI.

Для вывода на Decklink укажите параметр push decklink://:

stream test {
  input udp://239.0.0.1:1234;
  push decklink://0 size=720x576 fps=50 deinterlace=true;
}

Flussonic декодирует и затем передает поток на указанный номер устройства или порт на самой карте (например, 0). При необходимости можно указать опцию deinterlace=true для устранения чересстрочности. Максимальный уровень громкости (volume) — 1.0.

Для управления выводом на Decklink Вы можете указать в параметрах URL:

Параметры Тип значения Описание Пример
dthreads целое неотрицательно число Определяет количество подпроцессов в декодере для распараллеливания вычислений. Один подпроцесс задействует одно ядро. По умолчанию значение параметра равно 4, но Вы можете выставить его равным количеству ядер Вашего процессора. dthreads=8
scale строка Определяет алгоритм масштабирования. Выберите один из предложенных: fast_bilinear | bilinear | bicubic | experimental | neighbor | area | bicublin | gauss | sinc | lanczos | spline. Допустимо использование только одного алгоритма за раз. Если размер кадра выходного потока совпадает с размером кадра потока-источника, то параметр scale по умолчанию применяется алгоритм fast_bilinear. Если же размер кадра выходного потока не совпадает с размером кадра потока-источника, по умолчанию применяется алгоритм bicubic. Если параметр scale указан явно, то он применяется для любых форматов кадра. scale=neighbor

Дуплексный режим работы

Чтобы указать для карты Decklink SDI режим работы Duplex, позволяющий выбрать направление input или output, используйте следующую конфигурацию в глобальных настройках Decklink.

Flussonic 20.11 и новее:

decklink 0 {
  profile two_half;
}

decklink 1 {
  profile two_half;
}

Flussonic 20.10 и старее:

decklink {
  card 0 profile=two_half;
  card 1 profile=two_half;
}

В зависимости от модели Decklink карты, поддерживаются следующие режимы:

  • one_full - bmdProfileOneSubDeviceFullDuplex
  • one_half - bmdProfileOneSubDeviceHalfDuplex
  • two_full - bmdProfileTwoSubDevicesFullDuplex
  • two_half - bmdProfileTwoSubDevicesHalfDuplex
  • four_half - bmdProfileFourSubDevicesHalfDuplex