Skip to content

VOD

media.play.vod

Транспорт

HTTP или HTTPS; плейлисты и фрагменты передаются отдельными запросами по TCP.

Поддерживаемые кодеки

Зависят от выбранного протокола выдачи: HLS и DASH. Sapsan упаковывает имеющиеся дорожки; совместимость декодирования проверяйте в целевом плеере.

Sapsan хранит файлы как VOD-ассеты, ведёт их каталог в central и выдаёт их по запросу. Ассету не нужен живой источник. Управление загрузками, хранилищами, шаблонами и заданиями выполняется в консоли central.

Хранилище и загрузка

В конфиге стримера через central задайте именованный VOD root — каталог файлов на диске:

vod:
  roots:
    - name: movies
      path: /srv/vod

Имя root содержит строчные латинские буквы, цифры, _ и -; имена уникальны в конфиге. Убедитесь, что процесс может читать и записывать каталог. Central получает сведения о хранилище и свободном месте из отчётов стримера.

В разделе VOD откройте Загрузки, выберите файлы и ключ ассета. Central выбирает доступное хранилище со свободным местом и выдаёт разрешение на загрузку; сами байты идут прямо на стример. Хранилища показывают доступность и ёмкость. Токены загрузки дают внешнему приложению ограниченный доступ к загрузке; отзыв токена запрещает дальнейшее использование.

Каталог и файлы

  • Ключ: изменяемое имя, например movies/2026/film.mp4; его префиксы образуют дерево каталога.
  • Asset id: постоянный идентификатор, который сохраняется при переименовании ключа.
  • Ревизия: версия состава файлов; меняется при добавлении и удалении файлов.
  • Файлы: видео и другие файлы одного ассета с размером, хешем и сведениями о медиа.

Файлы ассета

Откройте ассет в Каталоге, чтобы увидеть файлы и размещения. Доступный ассет имеет готовое размещение на доступном хранилище. Нечитаемый как медиа файл доступен только для скачивания RAW. Переименовать ключ меняет метаданные, сохраняя файлы и ссылки по Asset id; занятый ключ отклоняется.

Воспроизведение

В карточке файла Play открывает плеер, а HLS, DASH и RAW копируют ссылку. Пользуйтесь ссылкой central для просмотра через кластер:

Формат URL central
HLS /playback/vod/<asset-id>/<file>/index.m3u8
DASH /playback/vod/<asset-id>/<file>/Manifest.mpd
Файл /playback/vod/<asset-id>/<file>

Central выбирает готовое размещение и перенаправляет клиента на стример. Нативный адрес стримера имеет вид /streaming/vod/<root>/<asset-id>/<file>/index.m3u8 (для DASH — Manifest.mpd, для скачивания — без суффикса). Не подменяйте Asset id ключом каталога. Для защищённого просмотра нужен токен, разрешающий этот ассет; отсутствие разрешения возвращает 403, отсутствие ассета или файла — 404. Без доступных размещений central возвращает 503 с Retry-After.

Копии и балансировка

В шаблоне ассета задайте Копии на других серверах. Значение 1 означает оригинал и одну копию на другом стримере. Шаблон без лестницы качеств позволяет копировать готовые файлы без транскодирования. Запустите задание из карточки ассета или назначьте шаблон при загрузке.

Central выбирает онлайн-стримеры с доступным VOD root, читаемым файловым журналом, включённой ролью Копирование и достаточным свободным местом. На одном стримере размещается не более одной копии ассета. Требуется размер файлов плюс резерв vod_min_free_bytes (по умолчанию 1 GiB); из подходящих хранилищ выбирается наиболее свободное. Если кандидатов нет, задание ждёт в очереди.

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

В таблице размещений видны оригинал и копии с ревизией и числом зрителей. Central направляет новые просмотры на готовое размещение с наименьшим числом сессий; после потери связи со стримером и истечения его liveness он исключается из выбора. Ссылка по Asset id остаётся прежней. Перенаправление не переносит уже открытое соединение: при сбое плеер должен подключиться заново.

Удаление

  • Файл: удаляется один файл, ревизия увеличивается; удаление последнего файла удаляет ассет.
  • Ассет: из каталога удаляются ассет и его файлы.
  • Папка: удаляются ассеты под выбранным префиксом ключа.

Каталог меняется сразу. При недоступном хранилище физическое удаление откладывается до восстановления связи. Проверяйте состояние задания и размещений в central; наличие записи в каталоге само по себе не гарантирует готовую копию.

Что дальше