Я хочу добиться следующего, но пока неясно, возможно ли это.
Текущий сценарий:
Кто-то в потоковом режиме видео со звуком через OBS на медиа-сервер, клиенты подключаются через веб-сайт.
[Поток OBS / Поток видео] -> [Сервис AWS / External Streaming] -> Клиенты
Требуемый сценарий:
захватить этот поток через пользовательский медиа-сервер и манипулировать им, вводя определенные метаданные в определенные моменты во время прямой трансляции . Обратите внимание на важность live .
[OBS Stream / Video Stream] -> [My Custom Node.js Сервер для вставки метаданных] -> [AWS / External Потоковая служба] -> Клиенты
Идея:
Идея состоит в том, что я хочу синхронизировать поток, например, с некоторым всплывающим окном. Поток протокола по умолчанию кажется RTMP от OBS, но, возможно, это можно изменить. В определенный момент времени в прямом эфире видеоплеер html5 на веб-сайте может считывать эти теги из прямого эфира (через некоторую дополнительную библиотеку, такую как video. js) и давать указание приложению JS показать некоторый текст. В конце концов, он сводится к синхронизации видеопотока с текстовым потоком (например, через соединение с веб-сокетом)
Потенциальные решения:
теги ID3 . Я читал о тегах ID3 в файлах MP3, но, похоже, это не то, что я ищу, поскольку ему нужен полный файл .mp3 upfront и он не используется для потоков ( Динамически вводить ID3 в FFMPEG Live Stream ). Я хочу динамически внедрять метаданные в этот поток. Например, в любое время введите идентификатор (динамически выбранный), который, например, должен ссылаться на базу данных.
LTC / линейный временной код / SMPTE возможно ли это как-то встроить в видеопоток с node.js? это позволило бы мне сопоставить тайминги с идентификатором на клиенте.
Возможно ли это сделать при наличии входящего видеопотока со звуком? и если да, то каков формат потока и как вводить метаданные?
EDIT : кажется, что RTMP не поддерживается без fla sh в браузере. Это не go, поэтому мне нужно будет использовать другой формат потока, такой как HLS / FLV?