Безсерверний конвеєр обробки відео за допомогою AWS MediaConvert
Відеоплатформа потребувала масштабованого, економічно ефективного способу обробки змінних навантажень кодування, від періодів низької активності з невеликою кількістю завантажень до пікових періодів із сотнями одночасних завдань.
Обговоріть Ваш Проєкт
Виклик
Інфраструктура кодування з фіксованою потужністю була або надмірно забезпеченою (дорого), або недостатньо забезпеченою (повільно):
- Навантаження кодування були дуже мінливими та непередбачуваними
- У пікові періоди під час запуску контенту обсяг міг зростати у 100 разів порівняно зі звичайним
- Запуск виділених серверів кодування 24/7 був дорогим у періоди низької активності
- Збої завдань потребували автоматичного виявлення та повторної спроби без ручного втручання
Наше Рішення
Ми реалізували безсерверний конвеєр кодування за допомогою тригерів AWS Lambda та AWS MediaConvert для еластичної обробки відео з оплатою за використання.
Архітектура
- Тригер: Функція AWS Lambda, що відстежує події завантаження S3
- Кодування: AWS MediaConvert зі спеціальними шаблонами завдань для партнерів
- Обмін повідомленнями: ActiveMQ/STOMP для асинхронних оновлень статусу завдань
- Моніторинг: Бекенд кодера NestJS, що відстежує прогрес завдань
- Зберігання: AWS S3 для вхідних/вихідних ресурсів
Потік конвеєра
- Подія S3 - Завантаження відео запускає функцію Lambda
- Конфігурація завдання - Lambda зчитує профіль партнера та створює завдання MediaConvert
- Подача - Завдання MediaConvert подається з відповідними налаштуваннями виводу
- Відстеження прогресу - Повідомлення STOMP передають статус бекенду кодера
- Завершення - Вихідні ресурси зберігаються в S3, метадані оновлюються в MongoDB
- Обробка помилок - Невдалі завдання ставляться в чергу для повторної спроби з експоненційною затримкою
Ключові особливості
- Нульова вартість простою - Lambda та MediaConvert стягують плату лише за фактичне використання
- Еластичне масштабування - Обробляє від 1 до 1000+ одночасних завдань кодування
- Партнерські шаблони - Попередньо налаштовані шаблони завдань MediaConvert для кожного партнера
- Керованість подіями - Події S3 автоматично запускають робочі процеси кодування
- Комплексний моніторинг - Відстеження статусу, тривалості та помилок завдань
Результати
Технологічний Стек
caseStudyDetail.more Кейси
Ознайомтесь з іншими нашими технічними впровадженнями
Вставка реклами на стороні клієнта (CSAI) з парсингом маркерів SCTE-35 та інтеграцією багатоплатформного плеєра
Платформа потокового відео потребувала впровадження вставки реклами на стороні клієнта (CSAI) для веб-, мобільних програм та програм для підключених телевізорів — що забезпечує персоналізований рекламний досвід на рівні пристрою з повною підтримкою взаємодії з рекламою (натискні оверлеї, супутні банери, кнопки пропуску), який не може забезпечити вставка на стороні сервера.
Сигналізація маркерів реклами SCTE-35 та конвеєр вставки трейлерів медіа
Компанії зі стрімінгу медіа потрібен був надійний, автоматизований конвеєр для впровадження маркерів реклами SCTE-35 у живі та VOD потоки, а також можливість вставляти промоційні трейлери (pre-roll, mid-roll, post-roll) у точно визначені позиції — що дозволяє монетизувати через канали FAST, живі події та бібліотеки контенту на вимогу.
Часті запитання
MicrocosmWorks розробив архітектуру сегментованої обробки, де Step Functions оркеструє конвеєр: функції Lambda розділяють вихідні відео на сегменти, AWS MediaConvert виконує фактичне транскодування без обмежень за часом виконання Lambda, а фінальна функція Lambda зшиває вихідний результат. Цей гібридний підхід зберігає безсерверну модель витрат, підтримуючи відео будь-якої тривалості.
MicrocosmWorks зафіксував зниження витрат на 70-85% для нерівномірних навантажень обробки відео порівняно з використанням виділених екземплярів EC2 для кодування. Безсерверний конвеєр не несе витрат у стані простою і масштабується до сотень одночасних завдань під час пікових навантажень, а тарифікація AWS MediaConvert за хвилину усуває необхідність виділяти ресурси для пікової потужності.
MicrocosmWorks налаштував AWS Step Functions з політиками повторних спроб для кожного кроку та експоненційним відступом, гарантуючи, що невдалий крок транскодування автоматично повторюється без перезапуску всього конвеєра. Кожен етап записує проміжні вихідні дані до S3, тому відновлення починається з останнього успішного контрольного пункту, замість повторної обробки з вихідного файлу.
MicrocosmWorks оптимізував конвеєр для випадків використання, близьких до реального часу, зі зменшенням затримок "холодного старту" за допомогою заздалегідь виділеної паралельності для критичних функцій Lambda та зарезервованих слотів транскодування MediaConvert. Для живих робочих процесів конвеєр досягає 2-5 хвилинної наскрізної затримки від завантаження до доставки, що підходить для вилучення кліпів та розповсюдження моментів.
MicrocosmWorks створює безсерверну відеоінфраструктуру за ціною $25-$45/год, при цьому повноцінний конвеєр на основі MediaConvert, включаючи оркестрацію Step Functions, управління життєвим циклом S3 та моніторинг, зазвичай потребує 250-400 годин розробки. Модель архітектури "плати за використання" означає, що клієнти сплачують лише витрати AWS, пропорційні їхньому фактичному обсягу обробки.
Готові Трансформувати Свій Бізнес?
Давайте обговоримо, як ми можемо застосувати подібні рішення для ваших завдань.