Skip to content

Чтение телетекста из VBI

Flussonic позволяет читать EBU Телетекст и субтитры (EBU Teletext subtitle data) из VBI (Vertical Blanking Interval) потоков, полученных с SDI-платы, и передавать их в видео, которое вы отправляете в MPTS или SPTS.

VBI — это перерыв в последовательности строк, который используется в аналоговом телевидении. Во время VBI инфомация об изображениях не передается, это время используется для возвращения в верхнюю часть экрана луча кинескопа в телевизорах с электронно-лучевыми трубками. Область VBI не видна, но она содержит информацию, необходимую для синхронизации изображений. Кроме того, она может содержать такую информацию, как телетекст или скрытые субтитры.

Во время получения видеопотока с SDI-платы Flussonic декодирует полученные данные, сжимая их для последующей передачи по Интернету, а затем преобразует поток в MPEG-TS. При этом он считывает из VBI информацию о телетексте и автоматически упаковывает ее в MPEG-TS поток.

Чтобы получать телетекст, необходимо добавить к настройкам захвата с SDI-платы следующие опции:

  • (только для Stream Labs SDI) vbi_device=/dev/vbiN — из какого /dev/vbi устройства Flussonic будет получать данные телетекста, например vbi_device=/dev/vbi0.
  • (только для карт Decklink) pixel=10 — эта опция включает захват видео с глубиной цвета 10 бит на пиксел. Она нужна для корректного декодирования VBI.

Кроме того, чтобы описать информацию о телетексте в таблице PMT (Program Map Table) итогового MPEG-TS потока, необходимо указать в настройках потока следующую настройку:

ttxt_descriptors=page:lang:type[,page:lang:type]...

, где:

  • page — номер страницы телетекста. Получить информацию о страницах нужно у поставщика потока.
  • lang — язык телетекста. Указывается в соответствии со стандартом ISO 639-2.
  • type — тип страницы телетекста, определённый в соответствии со спецификацией Specification for Service Information (SI) in DVB systems, 6.2.32 Teletext descriptor в EN 300 468 Digital Video Broadcasting (DVB). В таблице PMT поддерживаются следующие типы страниц телетекста: initial (начальная страница телетекста), subtitle (страница с субтитрами) и impaired (страница с субтитрами для людей с нарушениями слуха). Мы не поддерживаем страницы additional и program_schedule, но если они вам нужны, сообщите нам.

Эта настройка указывает на то, что будет прописано в опциях телетекст-трека. Эти данные передаются в таблице PMT потока MPEG-TS. По умолчанию используется значение 0x100:rus:initial.

Пример: ttxt_descriptors=0x100:rus:initial,0x888:rus:subtitle

Flussonic самостоятельно определяет те страницы телетекста, данные с которых должны быть помечены в PMT как субтитры.

Примеры конфигураций для чтения телетекста из разных источников

Ниже указаны примеры конфигураций Flussonic Media Server для чтения телетекста из разных источников:

  • чтение телетекста из потока с карты Stream Labs:
stream example_stream {
    input v4l2:// audio_device=plughw:1,0 ttxt_descriptors=0x100:rus:initial,0x888:rus:subtitle vbi_debug=true vbi_device=/dev/vbi0 video_device=/dev/video0;
}
  • чтение телетекста из потока с карты Decklink:
stream example_stream {
    input decklink://0 pixel=10 ttxt_descriptors=0x100:rus:initial,0x888:rus:subtitle;
}
  • чтение телетекста из потока с карты Decklink с NVENC кодированием:
stream example-stream {
  input decklink://2 pixel=10 ttxt_descriptors=0x100:rus:initial,0x888:rus:subtitle;
  transcoder deviceid=0 external=false hw=nvenc vb=5000k vcodec=h264 open_gop=false preset=veryfast size=3840x2160:fit:#000000 ab=128k split_channels=false;
}

Flussonic по умолчанию считывает телетекст из потока MPEG-TS. Теперь вы можете переписать значение дескриптора телетекста в настройках потока, если это необходимо.

Для этого настройте поток с дорожкой телетекста teletext_stream и укажите новое значение для параметра ttxt_descriptors:

stream teletext_stream {
  input udp://MULTICAST-IP:PORT ttxt_descriptors=0x888:rus:impaired;
}