ccinject

1. Сводка
Вставляет дорожки субтитров или скрытых субтитров в выходной видеопакет без перекодирования картинки. Узел мультиплексирует CEA-608/708, телетекст или текстовые потоки субтитров рядом с видеодорожкой, так что мультиплексор ниже по потоку отдаёт единую поставку, несущую оба.
2. Когда использовать
- Добавление сайдкар-субтитров в лестницу HLS или DASH для соответствия требованиям доступности.
- Вставка скрытых субтитров CEA-608/708 в вещательную поставку MP4, MOV, MXF или MPEG-TS.
- Объединение сгенерированной ИИ транскрипции (например, дорожки субтитров Whisper) с исходным видео в субтитрированную доставку.
3. Входы
Video—core.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. Одна или несколько дорожек субтитров или скрытых субтитров для мультиплексирования рядом с видео.Совместимые узлы выше по потоку:
4. Выходы
Video—core.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. Параметры

Форма «Настройки» выводит только общий идентификатор узла; поведение мультиплексирования полностью определяется подключёнными пинами.
Node Label (
string, по умолчанию пусто)Произвольное имя, отображаемое на плитке узла на холсте.
- Что задаёт. Подпись над плиткой; на поведение субтитрирования не влияет.
- Когда менять. Задавайте, когда в одном графе несколько узлов ccinject — например, один путь вставляет сгенерированную ИИ транскрипцию, а другой пропускает исходную дорожку скрытых субтитров, — чтобы каждый был узнаваем с одного взгляда.
6. Пример

Полный разбор — переменные, настройка каждого узла и ожидаемый результат — смотрите в 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, чтобы передать существующую дорожку.
- Забытые языковые метаданные. Дорожки субтитров без языковых тегов принимаются мультиплексором, но показываются как безымянные в селекторе плеера. Подтвердите, что источник выше по потоку несёт языковые метаданные, или задайте их явно на производящем узле.