Спортивний телеком: «ДИВИСЬ+»

«Ми продовжуємо наш репортаж!»
Микола Миколайович Озеров


Легендарний телекоментатор Микола Озеров, якому в цьому році виповнилося б 92 роки, перетворив спортивні трансляції в шоу, що притягають до екранів телевізорів мільйони любителів спорту. Технології з тих пір пішли досить далеко, але суть залишається незмінною — не маючи можливості в силу різних обставин особисто бути присутнім на цікавій спортивній події, можна стежити за ними за допомогою телекомунікаційних технологій.

Сьогодні компанія «МегаФон» пішла назустріч любителям спорту і завзятим уболівальникам, випустивши спеціальну телекомунікаційне додаток «ДИВИСЬ+».



Хабрахабр вже публікував декілька статей, присвячених цим додатком:

1. Інтерв'ю-розповідь про програму керівника проекту Андрія Кушнарьова.
2. Барвистий репортаж про відкриття Олімпіади в Сочі і стрес-тесті всій мережі.
3. У травні МегаЛабс провів роботу над помилками та розповів про це всім хабра-жителям.

Але час не стоїть на місці — додаток розвивається і завойовує своїх користувачів. Число завантажень вже перевищила 500 тисяч півмільйона тільки для платформи Чоловічий! (Маркетологи жартують: «півмільйона» звучить більш солідно, але це дійсно привід для гордості). А є ще версія для iOS, де переступили поріг в 100 тис. активних і, сподіваємося, вдячних користувачів.



Сьогодні ми розповімо, що сталося нового за минулі півроку і розкриємо деякі секрети, які ховаються всередині, по іншу сторону комунікаційного каналу. Але перш за все, хотілося б розкрити «таємницю» словосполучення «телекомунікаційне додаток».

Справа в тому, що для комерційної експлуатації подібного сервісу рішуче недостатньо просто накодить додаток — це досить складна інфокомунікаційна система. Вона починається на стадіоні (хокейній арені), виробляє декілька етапів обробки відеосигналу: сигнал насичується додатковою інформацією, готовий відеопотік розподіляється по величезній російській території, і тільки потім користувач зможе захоплено стежити за грою улюбленої команди на своєму гаджеті.

При цьому команда розробки та підтримки, за термін трохи більше одного року напруженої роботи над сервісом, змогла сформулювати, які саме переваги додаток «ДИВИСЬ+» має перед «звичайним» телевізійним мовленням:

По-перше, спортивні заходи найбільш цікаві в режимі реал-тайм «тут і зараз» без можливостей спойлерів і розкриття інтриги гри. Телебачення, справедливості заради, теж так вміє, але в лінійному ТБ є жорстко задана сітка мовлення в межах каналу, а цікаві події можуть відбуватися одночасно і не завжди зручно глядачеві.

По-друге, на відміну від ТБ-серіалів, спортивному вболівальнику потрібна більша кількість інформації — розклад матчів, статистика команд і гравців, коментарі і новини. «Звичайному ТБ» така інформаційна обв'язка технологічно недоступна.

В-третіх, багато що залежить від якості картинки — набагато приємніше спостерігати подія ближче і з подробицями. Наприклад, у мовленні HD-якості ймовірність побачити шайбу і напрямок його польоту набагато вище. І отже — цікавіше дивитися.

В-четвертих, на відміну від «лінійного телебачення» додаток «ДИВИСЬ+» дозволяє не просто записати, а потім переглянути найбільш хвилюючі матчі, але і повторити найбільш цікаві моменти, які відібрали редактори та інші користувачі. Це само по собі підвищує цінність контенту для вболівальників, яким дана функція припала до смаку.

В-п'ятих, додаток, забезпечує доступність відео в будь-якому місці без зависань і перебоїв. Ми дуже намагалися досягти такої якості, при якому наші користувачі не пропустять жодного хвилюючого моменту.

Зазвичай достатньо п'ять пунктів для позначення переваг продукту «над звичайним порошком», але у нас є і в-шостих: тепер можна вибирати коментаторів матчу і point of view камери. Це досить експериментальна функція поки що не до кінця ясним економічним ефектом, і доступна вона тільки для деяких особливо популярних матчів, але ми працюємо над налагодженням цієї функції по всьому ланцюжку виробництва контенту.

Давайте розберемо схему роботи сервісу докладніше:


Як це працює

«Вибачте, технічні неполадки поза території СРСР»


Саме цю відволікаючу фразу застосовував Микола Озеров, коли під час хокейних матчів починалися бійки. Камера переключалася на нейтрального вболівальника, а коментатор розповідав про події в світі спорту. В одному з репортажів, коли знову була використана «чергова фраза», Микола Миколайович навіть встиг розповісти про зарубіжних гастролях радянського балету.

Але ми не станемо розповідати про балет, а опублікуємо функціональну схему сервісу «ДИВИСЬ+»:

Content is King

Принципова відмінність «ДИВИСЬ+» від порталу з інтернет-телебаченням полягає в самому контенті і спосіб доставки його до глядача. У додатку ми не транслюємо контент будь-якого готового телевізійного каналу, а формуємо сигнал з самого місця події. І це досить складний виробничий процес.

Контент створюється і надходить глядачеві «ДИВИСЬ+» в кілька етапів:

1. Спочатку «картинка» складається з декількох відеопотоків, які йдуть зі всіх камер, які знаходяться на стадіоні або місці проведення спортивного заходу.
2. Далі всі сигнали з камер надходять в пересувну телевізійну станцію (ПТС). У ПТС знаходиться режисер трансляції, який формує так звані вихідний сигнал. Саме такий «живий» сигнал і бачить глядач у кінцевому підсумку.
3. Відеопотоки від ПТС по спеціальним каналам зв'язку (як правило, це VPN-канали з дуже жорсткими вимогами щодо SLA) надходять на розподільчий вузол, з якого в більшості випадків сигнал йде в нашу апаратну для монтажу, накладення на трансляцію графіки, додавання спецефектів і коментаторського звуку. Іноді монтаж коментатора і видеографических ефектів може відбуватися і в ПТС.
4. З центральної апаратної оброблений і готовий до споживання відеопотік повертається на розподільний вузол. На цьому сайті відбувається «роздача сигналу» замовникам — телеканалам і власне платформі «ДИВИСЬ+»
5. І тільки після цього користувачі програми «ДИВИСЬ+» можуть насолоджуватися матчами з спецграфикой і коментаторами.

Весь виробничий процес і процес доставки сигналу ділиться між спеціалізованими партнерами: зйомки і решті продакшн роблять телекомпанії, а доставку сигналу виробляють технологічні партнери. Між компаніями налагоджено цілодобове взаємодія та контроль кожної трансляції. Ми ведемо контроль над кожним матчем і перевіряємо, щоб всі заявлені сигнали йшли по відповідним лініям і з відповідною якістю.

З міркувань безпеки ми не можемо опублікувати фотографії наших пересувних телевізійних станцій — щоб не привертати увагу потенційних вандалів, які можуть нашкодити трансляції. У загальному вигляді ПТС виглядає як звичайний автобус або вантажний автомобіль-фура, де все найцікавіше — всередині. Приблизно такий вигляд має ПТС зовні і всередині:


Обробка відеосигналу
Вище ми вже згадували, що відеосигнал піддається спеціальній обробці — цифрове мовлення має ряд незаперечних переваг перед традиційно-аналоговими способами передачі ТБ-сигналу: наприклад, ми можемо давати картинку тієї якості, яке зможе і захоче отримати глядач. Якщо канали передачі даних в даний конкретний момент у користувача не надто хороші (наприклад, 3G в центрі мегаполіса в ЧНН утилізований досить щільно), або кінцеве обладнання користувача не може обробляти відео в HD-якості, то користувачеві автоматично пропонується «забрати» відеопотік SD-якості. І зворотна ситуація — якщо абонент має достатньо широкий канал (LTE, наприклад, або Wi-Fi у себе вдома) і має сучасний планшет з потужним процесором, то чому б йому і не дивитися трансляцію в максимальній якості?

В якості базового стандарту, нашою платформою використовується стандарт адаптивного мовлення Apple HLS HTTP Live Streaming). Даний протокол дозволяє організувати мовлення на більшість доступних терміналів (абонентських пристроїв). В нашому випадку потрібно забезпечити доступність сервісу на Apple iOS і Android різних версій. Для забезпечення працездатності HLS в поєднанні з системою захисту контенту Verimatrix довелося використовувати сторонній плеєр компанії NEXStreaming. Він був вибраний виходячи з технічних можливостей для забезпечення заданих характеристик роботи плеєра.

Медіабізнес
Спортивні заходи — це досить витратний бізнес, який повинен бути економічно доцільний. Захист контента і використання систем DRM російська версія — найголовніше з вимог численних партнерів, що беруть участь в ланцюжку створення трансляції.

Використання систем захисту авторських прав не дозволяє користувачам робити піратську ретрансляцію матчів. Головним чином через те, що їм її нізвідки робити — платформа «ДИВИСЬ+» самостійно отримує сигнал у точці його формування, потім обробляється (стискаємо, формуємо відеопотоки різної якості, розбиваємо блоки, шифруємо) та розміщується на CDN.

Для шифрування вмісту та верифікації легальних користувачів, платформа «ДИВИСЬ+» використовує рішення Verimatrix. Воно було обрано з декількох причин: по-перше, Verimatrix — світовий лідер в області захисту контенту. А по-друге, рішення Verimatrix забезпечує захист контенту для нашого другого телевізійного/відео проекту «МегаФонТВ». Використання коштів Verimatrix дозволяє швидко пройти аудит безпеки платформи у більшості правовласників, що було дуже важливо в увазі обмежених термінів розробки.

Принцип дії даної системи DRM не предмет цієї статті, але якщо дуже коротко, то він полягає в тому, що в кожну копію програми «ДИВИСЬ+» імплементований унікальний «ключ доступу», який генерується в момент інсталяції програми на пристрої користувача. Далі все просто — якщо до серверів HLS звертається користувач без ключа або з ключем-підробкою, то запит буде відхилено. Алгоритм верифікації «ключ доступу», зрозуміло, не розкривається, але допитливий хабра-читач може, наприклад, звернутися до першоджерела та пошуковим системам.

Доставка сигналу
Процес не зупиняється на тому, щоб сформувати сигнал, зашифрувати його і прийняти користувача. Одним з найважливіших критеріїв якості відеосигналу є якнайшвидша доставка його користувачеві без зволікань і лагів. Для рішення цієї задачі застосовується ціла мережа спеціалізованих серверів CDN.

Більшість читачів Хабра напевно знайомі з концепцією Content Delivery Network, тому дуже коротко і стисло. Якщо читачі зацікавляться конкретикою рішень власної мережі CDN «МегаФона» — ми обов'язково напишемо докладніше.

А CDN у федерального оператора власна. Це рішення дозволяє розподілити навантаження на платформу послуги «ДИВИСЬ+» (і вже згаданої «МегаФонТВ» те ж) при великих піках переглядів користувачами — чим популярніший матч, тим більше користувачів. В особливих випадках мережа «потягне» сотні тисяч абонентів, одночасно переглядають відео, що було підтверджено практикою Сочі-2014. Також це вирішує питання доставки сигналу до регіонів Росії. При цьому, використання цього CDN не впливає на доступність контенту для абонентів інших операторів, так як не залежить від точки доступу до мережі Інтернет на стороні користувача. Ми постійно удосконалюємо сервіс та проводимо тести з новими CDN-партнерами, але в комерційної експлуатації «ДИВИСЬ+» використовується власний CDN.

І ще трохи подробиць
Додаток та інфраструктура його підтримки постійно удосконалюються. Перша версія програми (для Олімпійських ігор) була розроблена на основі готового серверного рішення від зарубіжного партнера. Таке рішення було виправдано, так як необхідний був запуск в короткі терміни. Але додаток не мало 100% функціоналу, які ми хотіли впровадити. В результаті, до вересня поточного року ми повністю переробили і власне додаток, і безліч елементів інфраструктури сервер-сайд. Розробником нової версії виступила команда MC2Software, яка в стислий термін змогла реалізувати новий функціонал програми для запуску під КХЛ, а також підтримати доступ до архівів спортивних подій, запущених раніше.

Ми маємо намір продовжувати розробку, удосконалювати якість і доповнювати функціонал сервісу. Однією з цілей написання цієї статті є збір ідей і потреб Хабражителей — не соромтеся в коментарях. Ми не тільки уважно прочитаємо весь фідбек, але і складемо вішліст нових функцій і функцій програми. І обов'язково напишемо про їх реалізацію.

Серверна магія
На цьому опис внутрішньої кухні «ДИВИСЬ+» не закінчується — поступово ми підбираємося до найцікавішого — «а що всередині» та деяких організаційних подробиць.

Джерела контенту
Любителі спорту — не домогосподарки, які просто спостерігають за живими картинками на екрані — це активні вболівальники, яких у процесі використання програми дуже цікава додаткова інформація: спортивна статистика, результати матчів, склад команд, інформація про гравців і ще тисяча дрібних, але важливих інформаційних повідомлень.

«ДИВИСЬ+» радикально відрізняється від більшості реалізованих проектів інтернет-мовлення — всі необхідні спортивні дані ретельно збираються, обробляються і надаються користувачам вже у вигляді кінцевого візуального (?) продукту. Зрозуміло, як технологічна компанія, «МегаФон» не є визнаним експертом в області спортивних подій — збиранням первинних даних, їх обробкою займаються спеціально навчені люди у наших партнерів-постачальників. І, як виявилося, вибір постачальника спортивної інформації — нетривіальна задача, яка ще й накладається на технологічні обмеження програмних рішень.

Спочатку вибір постачальника спортивних даних проводився за критеріями вартості, типу і якості API, якості документації, швидкості оновлення даних і т. д. В результаті було вибрано рішення Opta Sport (Perform Group), компанії — світового лідера в області збору та аналізу інформації про спортивні події в режимі реального часу.

За активної участі наших партнерів ми розробили структури даних таким чином, щоб вони, з одного боку, вміщували всю потрібну хокейну (йдеться насамперед про КХЛ) статистику, а з іншого — були достатньо гнучкими і расширяемыми для інших сезонів та видів спорту.

На етапі практичної реалізації схеми імпорту даних, налагодження, запуск і написання десятків листів постачальнику, які починалися з фрази: «ось тут у вас неправильно, виправте, будь ласка», виникла проблема гнучкої адаптації та редагування даних «на льоту». І «ДИВИСЬ+» обзавівся власною системою підготовки та публікації контенту, а так само професійним редакторським відділом.

Тут є цікавий момент. Дані, які ми отримуємо від Opta, редактор може частково виправити. Наприклад, багато імена гравців приходять нам в транслитерированном вигляді. Редактор може написати нормальне ім'я, і воно не буде перетерто наступним імпортом з Opta, але, наприклад, статистика гравця буде оновлена.

Проштовхування
Наступним цікавим моментом сервер-сайд магії є механізм отримання оновлень даних. Справа в тому, що на відміну від «лінійного ТВ», де ведеться ординарне мовлення потоків, платформа «ДИВИСЬ+» генерує величезну кількість повідомлень для додатка — спортивна статистика, повідомлення коментаторів, у тому числі текстові, події на спортивному майданчику — все, що описувалося в попередньому розділі статті. Всі ці події пересилаються серверної стороною додатком в режимі «проштовхування». Додаток не може знати, коли відбудеться подія, але має негайно відреагувати на нього в разі виникнення.

Зазвичай більшість додатків отримують події методом періодичної посилки http-запитів GET — спочатку посилає запит на сервер, виходить відповідь, потім їм заповнюється екран. Такий механізм простий у використанні і програмуванні, але при цьому в Мережі виникає велика кількість безглуздого трафіку — додаток робить запит, а сервер відповідає на нього «нічого не сталося». І так кілька разів в секунду. Уявімо собі, що таким чином ведуть себе сотні тисяч користувачів, і масштаб лиха постає на повний зріст.

Ми пішли іншим шляхом: додаток містить у собі локальну копію бази даних, яка оновлюється при запуску і в фоні, а в активному стані кожна копія отримує оновлення з мінімальною затримкою. Наприклад, при хорошому з'єднанні відеомоменти з'являються в плеєрі вже через кілька мілісекунд після їх створення редактором в системі управління контентом. Цей механізм також дозволяє користуватися частиною функціоналу програми та при розриві сеансу зв'язку, що зовсім не рідкість при використанні мобільного доступу в Інтернет.

Механізм, який називається Server-sent events, змушує додаток отримувати всі елементи новинної стрічки (відеомоменти, голосування, новини і т. д.), ігрові моменти і коментарі з таймлайна, списки матчів, команд і гравців, іншу інформацію по мірі її надходження.

У той же час, статистика для внутрішнього використання збирається звичайним чином (запитом до сервера) і не зберігається локально, щоб не збільшувати значно розмір локальної БД.

Go
Використання механізму «server-sent events» накладає додаткові вимоги до інструментарію, і ми прийшли до висновку, що рішення не стандартних завдань вимагає аналогічного інструментарію. І ми вибрали мову Go.

На Хабре є цілий хаб, присвячений цьому чудовому інструменту, а посилання на першоджерело наводимо за традицією і правилами хорошого тону.

Основна причина вибору даного рішення — механізм отримання оновлень, який тримає постійне відкрите з'єднання. Зробити, наприклад, Ruby або Python було б складно і неидиоматично, а на Java — довше, особливо якщо врахувати, що у нас немає Java-розробників. :)

Використання мови дозволило істотно скоротити час розробки, незважаючи на те, що ми вчили мову «в процесі». Результат ви можете встановити на свій смартфон і протестувати. А ще, ми зробили компонент для відправки push-повідомлень, який здатний відправляти 7000 ios-пушей в секунду на одне з'єднання.

Замість епілогу

«Зараз прозвучить Державний Прапор Радянського Союзу!»
Микола Озеров


Як вже писалося, сервіс «ДИВИСЬ+» працює з лютого, з самої Олімпіади. За результатами отриманої від користувачів зворотного зв'язку була проведена «робота над помилками» і у вересні був запущений наступний реліз продукту. Важливою відмінністю поточної версії від випущеної до Олімпіади є сам контент і генеруються події.

Раніше нам під кожне нове подія доводилося виробляти оновлення даних в магазинах додатків App Store і Google Play), тепер же ми можемо додавати спортивні події без оновлення збірки. Це було одним з основних бізнес-вимог.

За статистикою програми у нас на поточний момент близько 1,3 млн завантажень, але активних користувачів дещо менше. При цьому постійна активна аудиторія сервісу тільки з контентом від КХЛ становить понад 200 тисяч унікальних користувачів щомісяця. Найактивніший місто за переглядами — Новосибірськ, там нас дивляться найбільше.

Плани з розвитку, як зазвичай — грандіозні.

Незабаром ми зробимо функцію «мультикамерности» для деяких матчів КХЛ. Принципово, функція готова власне додатку, але є деякі проблеми організаційного характеру та юзабіліті. «Мультикамерность» повинна дати можливість користувачу при перегляді матчу вибрати одну з декількох камер, які розміщені на стадіоні, що дозволить вболівальнику змінювати точку зору прямо по ходу матчу, а після переглядати певні моменти з різних кутів.

Крім того, є мета додати в додаток елементи гейміфікації. Вболівальники — залучені люди, і ми хочемо вибудувати з ними діалог у вигляді додаткових цікавих подій. Наприклад, проводити більш цікаві конкурси протягом місяця, а в кінці визначати, хто був найактивніший або зібрав найбільше балів і т. п. Також думаємо про доповнення контентом UGC. При цьому ми розуміємо, що для запуску цього функціоналу потрібно не стільки ресурных (фінансових, людських, часових) витрат, скільки важливо наповнення ідей змістом і здоровим глуздом. Головне — це не реалізація «цікавих фіч», а затребуваність функціоналу нашою аудиторією, його реальне використання та необхідність. Ми дуже сподіваємося на вашу допомогу і підтримку і будемо уважно стежити за коментарями.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.