LiveCage Audio/Video Streaming Portal

Мультимедійна стрімінгова та конференц-платформа

Платформа соціальних медіа для живого відео/аудіомовлення, розповсюдження медіа за запитом та багатостороннього конференцзв’язку, побудована на Adobe Flash Media Server у часи, коли інфраструктура стрімінгу реального часу для вебу ще тільки формувалася.


Огляд

Галузь: Соціальні медіа / Розваги
Тип продукту: Мультимедійний веб-портал
Архітектура: Монолітний портал із виділеним стрімінговим рівнем (FMS + WMS), PHP backend, Flash-based frontend

LiveCage дозволяв користувачам завантажувати та розповсюджувати особистий відео/аудіоконтент, запускати живі відео- та аудіопотоки, а також брати участь у багатокористувацьких відеоконференціях до 10 учасників. Платформа орієнтувалася на ранніх користувачів, які шукали взаємодію через медіа реального часу до появи WebRTC як повноцінного стандарту. Підтримка мобільного стрімінгу була реалізована як окремий рівень перемикання потоків через несумісність кодеків із пристроями iOS.


Архітектурний контекст

Середовище

  • Flash Media Server (FMS) — основний стрімінговий рушій для RTMP-сесій відео/аудіо
  • Wowza Media Server (WMS) — вторинний рівень перекодування/перепакування для доставки на iOS
  • PHP/MySQL web backend — логіка порталу, управління користувачами, метадані медіа
  • FFMPEG — пайплайн захоплення кадрів для обхідного генерування відео на iPhone 3
  • Епоха розгортання: 2008–2010, до WebRTC, активний конфлікт ліцензування H.264

Стек

  • Frontend: HTML, CSS, JavaScript, Adobe Flash (ActionScript 2.0 / 3.0)
  • Стрімінговий клієнт: ActionScript 3.0 — власні Flash-інтерфейси для мовлення та конференцій
  • Серверна стрімінгова логіка: Server-Side ActionScript (SSAS) на FMS
  • Мобільний міст: Wowza Media Server із HLS-перепакуванням
  • Backend: PHP, MySQL
  • Обробка відео: FFMPEG

Функціональність

  • RTMP живий стрімінг із Flash-based клієнтськими інтерфейсами
  • Багатосторонній аудіо/відеоконференцзв’язок (до 10 учасників)
  • Завантаження медіа за запитом та відтворення
  • iOS-стрімінг через FMS → WMS міст із HLS-виходом
  • Обхідне рішення для відео на iPhone 3: пайплайн камера → відео через захоплення кадрів FFMPEG

Мій внесок

  • Проєктування та реалізація всіх Flash UI-компонентів (панелі мовлення, інтерфейс конференц-кімнати, медіаплеєр) на ActionScript 3.0
  • Розробка повного Server-Side ActionScript рівня на FMS: маршрутизація потоків, управління сесіями, обробка клієнтських подій
  • Побудова FMS → WMS → iOS мост-пайплайну для доставки живих потоків на пристрої iPhone/BlackBerry в обхід ліцензійних обмежень H.264 того часу
  • Реалізація обхідного рішення псевдовідео для iPhone 3: перепрофілювання вбудованої фотокамери на 13 fps, упакування послідовності кадрів у живий відеопотік за допомогою FFMPEG
  • Розширення та рефакторинг наявної PHP-функціональності порталу: користувацькі флоу, управління медіа, API-інтеграції
  • Верстка HTML/CSS-сторінок і підтримка візуальної узгодженості між Flash-вставками та стандартними веб-вью
  • Участь у загальному візуальному дизайні сайту та Flash-компонентів

Інженерні кейси

Обмеження H.264 / iOS-стрімінгу (2009–2010). “Війна H.264” зробила прямий RTMP-to-iOS стрімінг із FMS неможливим. Замість того щоб блокувати мобільну підтримку, я спроєктував архітектуру перемикання потоків: FMS обробляв основний RTMP-потік, WMS виступав вузлом перепакування, конвертуючи його в HLS для споживання на iOS. Це потребувало логіки ретрансляції потоків на рівні SSAS у FMS та конфігурації з боку Wowza для підтримки безперервності потоку та затримки в допустимих межах.

iPhone 3 — відсутня апаратна підтримка відеозахоплення. Пристрій фізично не мав можливості запису відео на рівні ОС. Аналіз першопричин вказував на апаратні/API-обмеження, а не на вирішуваний програмний шлях. Рішення застосувало крос-шарове мислення: перехопити API фотокамери, керувати нею на 13 fps через автоматизацію та подавати сирі кадри у FFMPEG для H.264-кодування та мультиплексування потоку в реальному часі. Результат — повноцінне, хоч і нестандартне, живе відеоджерело з пристрою, який офіційно не вмів записувати відео.

Рефакторинг архітектури класів ActionScript. Наявна Flash-кодова база розросталася без структури. Я переробив ієрархію класів, щоб чітко розмежувати UI-компоненти, мережеву комунікацію та логіку управління потоками — зменшивши зв’язність і дозволивши розробляти нові функції конференцзв’язку без дестабілізації наявного функціоналу мовлення.


Технології

ActionScript 2.0, ActionScript 3.0, Server-Side ActionScript (SSAS), Adobe Flash Media Server (FMS), Wowza Media Server (WMS), FFMPEG, PHP, MySQL, JavaScript, HTML, CSS