Медиа.маги Документация

Last updated

ccinject

ccinject, мультиплексирующий текстовую дорожку, сгенерированную Whisper, в видеопакет.

1. Сводка

Вставляет дорожки субтитров или скрытых субтитров в выходной видеопакет без перекодирования картинки. Узел мультиплексирует CEA-608/708, телетекст или текстовые потоки субтитров рядом с видеодорожкой, так что мультиплексор ниже по потоку отдаёт единую поставку, несущую оба.

2. Когда использовать

  • Добавление сайдкар-субтитров в лестницу HLS или DASH для соответствия требованиям доступности.
  • Вставка скрытых субтитров CEA-608/708 в вещательную поставку MP4, MOV, MXF или MPEG-TS.
  • Объединение сгенерированной ИИ транскрипции (например, дорожки субтитров Whisper) с исходным видео в субтитрированную доставку.

3. Входы

  • Videocore.VideoTrack. Закодированный или скопированный видеопоток, который понесёт субтитры в выходном контейнере.

    Совместимые узлы выше по потоку:

    • copy — копирует входной видеопоток без перекодирования.
    • x264 — программно кодирует видео H.264/AVC.
    • x265 — программно кодирует видео H.265/HEVC.
    • avcintra — кодирует видео профилями AVC-Intra.
    • ni264 — использует аппаратно-ускоренное кодирование H.264.
    • qsv264 — кодирует H.264 через Intel Quick Sync Video.
  • Text[]core.TextTrack. Одна или несколько дорожек субтитров или скрытых субтитров для мультиплексирования рядом с видео.

    Совместимые узлы выше по потоку:

    • map/text — выбирает потоки субтитров/скрытых субтитров для выхода.
    • whisper — транскрибирует речь в текст движком STT.

4. Выходы

  • Videocore.VideoTrack. Исходный видеопоток в паре со вставленными дорожками субтитров, готовый для мультиплексора или потокового упаковщика.

    Совместимые узлы ниже по потоку:

    • mp4 — упаковывает потоки в файл MP4 (ISO-BMFF).
    • mov — упаковывает потоки в контейнер QuickTime MOV.
    • mxf — упаковывает потоки в контейнер MXF.
    • ts — упаковывает потоки в транспортный поток MPEG-2.
    • dash — упаковывает выход для потоковой передачи MPEG-DASH.
    • hls3 — упаковывает выход для HLS с плейлистами v3.
    • hls5 — упаковывает выход для HLS с плейлистами v5.
    • prores — кодирует видео в профили Apple ProRes.
    • xdcam — создаёт MXF-пакет, совместимый с XDCAM.

5. Параметры

Форма «Настройки» узла ccinject.

Форма «Настройки» выводит только общий идентификатор узла; поведение мультиплексирования полностью определяется подключёнными пинами.

  • Node Label (string, по умолчанию пусто)

    Произвольное имя, отображаемое на плитке узла на холсте.

    • Что задаёт. Подпись над плиткой; на поведение субтитрирования не влияет.
    • Когда менять. Задавайте, когда в одном графе несколько узлов ccinject — например, один путь вставляет сгенерированную ИИ транскрипцию, а другой пропускает исходную дорожку скрытых субтитров, — чтобы каждый был узнаваем с одного взгляда.

6. Пример

Adaptive streaming with HLS, DASH and captions

Полный разбор — переменные, настройка каждого узла и ожидаемый результат — смотрите в Adaptive streaming with HLS, DASH and captions.

7. Где используется

  • Adaptive streaming with HLS, DASH and captions — мультиплексирует сгенерированную Whisper дорожку WebVTT рядом с закодированным видео H.264, так что выходы HLS v3, HLS v5 и DASH все идут со встроенными субтитрами.

8. Антипаттерны

  • Вставка субтитров, которые мультиплексор ниже по потоку не может нести. Не каждый контейнер или упаковщик обрабатывает каждый формат субтитров; сочетание дорожки CEA-608 с мультиплексором, отдающим только сайдкар WebVTT, например, молча роняет субтитры. Подтвердите поддержку дорожек субтитров целевым мультиплексором перед подключением этого узла.
  • Дублирование субтитров, уже присутствующих в источнике. Когда исходное видео уже несёт встроенные CEA-608/708, добавление ccinject поверх даёт две дорожки субтитров, отправленные плееру. Используйте map/text, чтобы передать существующую дорожку.
  • Забытые языковые метаданные. Дорожки субтитров без языковых тегов принимаются мультиплексором, но показываются как безымянные в селекторе плеера. Подтвердите, что источник выше по потоку несёт языковые метаданные, или задайте их явно на производящем узле.
Медиа.маги Документация