Свой онлайн-кинотеатр: от файла фильма до просмотра с Catena
Свой онлайн-кинотеатр: от файла фильма до просмотра с Catena
Вы делаете онлайн-кинотеатр под своим брендом. Уже понятно, как будут выглядеть карточки фильмов, какие подписки продавать и что рекомендовать зрителю. Следующая задача — превратить кнопку «Смотреть» в воспроизведение, которое работает на домашнем телевизоре и телефоне, выдерживает интерес к премьере и остаётся управляемым по мере роста видеотеки.
За этой кнопкой несколько связанных операций. Фильм нужно принять, подготовить в подходящих качествах, разместить на серверах, выдать зрителю доступ и направить его туда, где есть готовая копия. Когда фильмов и серверов становится больше, эти операции должны повторяться предсказуемо.
VOD-каталог Catena объединяет этот путь на вашем оборудовании. Команда кинотеатра работает с фильмом в каталоге, а Catena ведёт его файлы, задания обработки, копии и воспроизведение. Витрина и бизнес-логика связываются со стриминговой частью через API.
Как разделяется работа между кинотеатром и Catena
У одного фильма есть две карточки с разными задачами. В вашей витрине — название, описание, постер, возрастная категория и условия покупки. В Catena — файлы этого фильма, их готовность, места хранения и ссылки для плеера. Связью между ними служит постоянный идентификатор ассета.
| Задача | Где она решается |
|---|---|
| Подборки, поиск по жанрам, рекомендации и оформление карточки фильма | Ваша витрина и её система управления контентом |
| Подписка, оплата и решение, кому доступен фильм | Ваш сервис и биллинг |
| Загрузка видео и подготовка качеств | VOD-каталог и задания Catena |
| Хранение копий и выбор сервера для просмотра | Кластер Catena |
| Интерфейс просмотра | Плеер в вашем сайте или приложении, получающий видео от Catena по HLS/DASH |
Такой подход позволяет развивать собственный сервис и пользоваться общей системой подготовки и доставки видео. Кинотеатру не приходится отдельно поддерживать скрипты загрузки, очередь перекодирования и список адресов файлов на каждой машине.
Загрузить фильм и сохранить понятный каталог
В Catena фильм представлен ассетом — записью каталога с одним или несколькими файлами. Например, ключ movies/drama/first-film помогает оператору найти его в дереве папок. У ассета также есть неизменный asset id: его удобно сохранить в карточке фильма вашей витрины.
Человекочитаемый ключ можно переименовать или перенести под другой префикс. Файлы остаются на месте, а ссылки по asset id продолжают работать. Редактор меняет организацию видеотеки, сохраняя связь с опубликованными карточками.

Для первых фильмов достаточно консоли: выберите файлы или перетащите их в каталог. Перед загрузкой задаются имя ассета и шаблон обработки. Catena выбирает доступное хранилище с наибольшим свободным местом; байты идут из браузера прямо на стример. Панель загрузок показывает ход и позволяет перейти в другой раздел консоли, пока файл загружается. Саму вкладку браузера при этом нужно оставить открытой.
Когда контент поступает через собственный редакторский портал, загрузку можно интегрировать через API. Ограниченный upload-токен хранится на сервере портала, а браузер получает разрешение на конкретную загрузку. Это позволяет встроить приём файлов в привычный процесс вашей команды.
Подготовить качества один раз и повторять процесс для всей видеотеки
Один тяжёлый исходник неудобно отдавать всем зрителям. Для телевизора можно подготовить высокое разрешение, для телефона и более медленного соединения — меньшие качества. Плеер с поддержкой адаптивного воспроизведения сможет выбирать подходящий вариант из предложенной лестницы.
В Catena это задаётся шаблоном ассета. В нём выбираются разрешения, кодек и битрейт каждого качества. Например, для пилота можно собрать лестницу 1080p, 720p и 360p; конкретные параметры зависят от исходников, устройств и требований к картинке. Шаблон также определяет, сохранить оригинал или удалить его после обработки.

Выберите шаблон при загрузке и оставьте у видео отметку По шаблону. После завершения загрузки Catena сама поставит задание. Оператор видит очередь, исполнителя, прогресс и результат; при ошибке — причину. Готовые файлы появятся в том же ассете рядом с оригиналом, если он сохраняется.
Вместе с качествами создаётся описатель .smil — точка входа для воспроизведения всей лестницы. Плеер получает из него HLS- или DASH-манифест с подготовленными вариантами. Витрине достаточно связать фильм с этой точкой входа, сохраняя технические детали списка файлов в Catena.
В стандартной лестнице аудиодорожки исходника перекодируются в AAC с сохранением языковых меток. Если исходный фильм содержит несколько озвучек, они сохраняются в выходных качествах; выбор языка зависит от возможностей вашего плеера.
Связать кнопку «Смотреть» с правом на просмотр
В карточке ассета можно проверить файл встроенным плеером и скопировать ссылки HLS, DASH или RAW. Это удобно для проверки, что фильм загрузился и воспроизводится. Ссылки из консоли содержат временный билет; для зрителей вашего сервиса билет выдаётся в рамках интеграции.
Путь пользователя выглядит так: он выбирает фильм, ваш сервис проверяет подписку или покупку, затем запрашивает у Catena билет на воспроизведение и передаёт плееру адрес с этим билетом. Для VOD доступ можно ограничить конкретным ассетом. Catena проверяет билет при воспроизведении, а условия продажи остаются в вашем сервисе.
Срок билета задаётся при выдаче. Его нужно выбирать с учётом длительности фильма и ожидаемых пауз: сессия не может продолжаться после истечения билета. Разрешение на просмотр и шифрование контента — отдельные задачи; описанный здесь билет регулирует доступ к видео.
Добавить копии и распределить зрителей между серверами
С одним сервером можно проверить весь сценарий. Для доступности фильма при отказе машины и распределения аудитории нужны копии на других стримерах.
Их число задаётся в том же шаблоне. Одна копия означает оригинал плюс ещё один сервер с файлами. Catena выбирает подходящий стример со свободным местом и создаёт задание копирования. Можно копировать и уже подготовленный контент без повторного транскодирования, используя шаблон только с копированием.
Файлы принимаются и проверяются на сервере копии. Пока весь состав ассета не готов, новое размещение не считается готовой копией. В карточке видны оригинал и копии, их состояние и число зрителей.

Ссылка на фильм сохраняется. При новом обращении Catena выбирает среди доступных готовых размещений сервер с меньшим числом сессий, с учётом настроенных зон доставки. Когда сервер признан недоступным, новые обращения направляются на оставшиеся копии. Уже идущий просмотр автоматически на другой сервер не переносится: при отказе плееру нужно переподключиться.
Для премьеры это даёт конкретный инструмент: заранее подготовить копии фильма и принимать аудиторию несколькими серверами. Число копий, скорость сети и возможности дисков планируются вместе; балансировка использует число сессий, а не измерение дисковых IOPS. Реплики поддерживают доступность, а резервная копия контента хранится отдельно: удаление ассета применяется ко всем его размещениям.
Что команда видит после запуска
Оператор может ответить на рабочие вопросы прямо в консоли:
- Почему фильм ещё не готов? В заданиях видны обработка, ошибка или причина ожидания: например, нет подходящего сервера для копии или свободного места.
- Где лежат файлы? В карточке ассета перечислены оригинал и копии, их готовность и ревизии.
- Как распределился просмотр? У размещений показаны зрители; VOD-сессии также входят в общую картину аудитории на дашборде.
- Как применить новый шаблон к старому фильму? Сохраните шаблон у ассета и отдельно запустите задание: смена шаблона сама по себе не перекодирует уже загруженные файлы.
Это сокращает путь от обращения «фильм не запускается» до проверки конкретного файла, задания или сервера. Стриминговой команде доступно состояние видеотеки целиком, даже когда файлы разложены по нескольким машинам.
Как проверить свой кинотеатр на первом фильме
- Установите Catena по быстрому старту. В настройках стримера добавьте VOD-хранилище и адрес, доступный браузерам для загрузки и воспроизведения.
- Создайте шаблон качеств и загрузите тестовый фильм с этим шаблоном. Дождитесь готовых выходов и проверьте воспроизведение лестницы.
- Свяжите asset id и имя
.smilс карточкой в вашей витрине. Подключите выдачу билетов после проверки доступа пользователя. - Проверьте просмотр в своём плеере на целевых устройствах и соединениях, включая выбор качества и языка, если у фильма несколько аудиодорожек.
- Добавьте второй стример, задайте одну копию и запустите задание. После готовности копии проверьте, как новые просмотры распределяются между серверами и как плеер восстанавливается при отключении одного из них.
На этом пилоте команда проходит весь путь одного фильма: от исходника до разрешённого просмотра с нескольких серверов. Затем те же шаблоны и интеграция применяются к остальной видеотеке.
Расскажите нам, сколько фильмов вы планируете хранить, какие устройства поддерживать и какую одновременную аудиторию принимать. Поможем спланировать стриминговую часть вашего онлайн-кинотеатра на Catena.