
Cloudflare випустив Streamline для налаштовуваних відеопайплайнів
Cloudflare випустив Streamline, тестове середовище з відкритим кодом для створення налаштовуваних пайплайнів, які додають до відео у стрімінгу чи хостингу живі анотації, вбудовані субтитри та фільтри.
Streamline спрощує налаштування відео від Cloudflare
Cloudflare випустив Streamline, тестову та відкриту систему для розробників для створення налаштовуваних відео-досвідів на Developer Platform. Вона показує, як поєднати Workers, Containers та Durable Objects з медіапротоколами для зміни відео та публікації результату як живий стрім або новий хостинг-відео.
Прикладами є прозорі анотації, які змінюються під час обробки, вбудовані субтитри у хостинг-відео, фільтри, режим зображення в зображенні та введення з вебкамери чи заводської камери. Cloudflare також випустила медіа-рушій з відкритим кодом, приклад Worker-застосунку з Astro фронтендом та публічне тестове середовище.
Як працює архітектура Streamline
Розгортання Streamline має два основні компоненти. Працює в Media Engine Container і виконує весь медіа-введення-виведення та обробку. Його контролер — це HTTP-сервер, написаний на Go, а процесор FFmpeg виконує медіа-роботу. Процесор є внутрішньою деталлю, а не частиною API користувача.
Контролер використовує Application Workers і може бути інтерфейсом браузера, агентом або вбудованою системою. Durable Object керує сесіями, життєвим циклом Container та preview-релізом. Рушій може приймати RTMPS з одного введення Stream Live та публікувати в інше, отримувати HLS-маніфести та сегменти Cloudflare Stream, приймати відео або надсилати preview-фрагменти через WebSocket-реліз. При перериванні Worker обробка триває. Максимальна тривалість сесії забезпечує відключення, а активність оновлюється до ліміту.
Конфігурація та запуск медіапайплайнів
API сесії дозволяє застосунку створювати або оновлювати сесію, запускати пайплайн з JSON-конфігурації, отримувати відео-фрагменти, оновлювати PNG-анотацію, отримувати метрики та зупиняти обробку. Конфігурації визначають входи, операції та виходи. Входами можуть бути RTMP-трансляція, HLS-відео або вебкамера. Виходи використовують RTMP або WebSocket preview через реліз Durable Object.
Один приклад додає до живої трансляції прозорий шар зображення та надсилає результат на інший вхід Stream Live. Інший приймає відео Cloudflare Stream, читає вбудовані закриті субтитри, малює на зображенні та надсилає через RTMP. Streamline працює з операціями filter, overlay, subtitle та encode. Рушій виконує їх у фіксованій послідовності, тому порядок записів у конфігурації не змінює виконання.
Безпека, ліміти та розширення
Розгортання власника є приватним через Workers Access. Worker перевіряє сесію Access, прив'язує активну сесію до підтвердженого principal та дозволяє лише одну сесію. Ключі Stream Live Input зберігаються у секреті Worker або сховищі Durable Object тільки для запису в загальних перекриттях і не повертаються через API параметрів чи сховище браузера. Застосунки звертаються до іменованих профілів введення-виведення, які Worker розриває перед підключенням до контейнера.
Публікація preview використовує токен сервісу Cloudflare Access для контейнера та, за потреби, capability, прив'язаний до сесії, для активного релізу. Публічне тестове середовище використовує ідентичність одного контейнера на кожного підтвердженого користувача, одну активну сесію на користувача, глобальний контроль дозволів, обмеження конкурентності та медіа-ліміти, і не дозволяє одному користувачеві замінювати сесію іншого.
Streamline зараз використовує CPU контейнера для обробки, що Cloudflare вважає вузьким місцем для високої якості або частоти кадрів. Можливі розширення включають пайплайни комп'ютерного зору, апаратно прискорену обробку, досвід WebRTC та MoQ, а також нативне кодування-декодування відео у Workers.
SiTech — веброзробка з підтримкою AI
Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.