Як організувати живу трансляцію

Рекламний блок

У продовження першої частини статті, присвяченій налаштуванні і роботі з сервером передачі потокового відео, сьогодні ми з Вами поговоримо ще про один компонент програмного комплексу «Unreal Media Server». Називається він «Unreal Live Server - сервер живих трансляцій (мається на увазі, що відеотрансляція з камери відбувається в реальному часі).

Отже, встановлюємо компонент «ULive Server» (інсталяція максимально проста, так що на ній не будемо зупинятися). Зверніть увагу на скріншот нижче:




На ньому представлені всі три основні компоненти сервера Unreal, встановлені на одному комп'ютері і згруповані (за замовчуванням) у папці Unreal Streaming.

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

Примітка: візьміть собі за гарне правило, після встановлення більш-менш серйозних додатків заглядати в список служб і дивитися, чи не з'явилося там щось цікаве? :)

Пам'ятаємо, для того щоб швидко отримати доступ до відповідної оснащенні, натискаємо «Пуск» на панелі завдань і вводимо команду services.msc потім «Enter».




На фото вище бачимо, що в списку системних служб з'явилися дві нові записи: «ULive Server» і «UMedia Server», які з'явилися результатом встановлення відповідних компонентів нашого потокового сервера. Як бачимо, вони працюють і мають статус запуску "автоматично" (стартують разом із завантаженням Windows). Саме тому виходить, що наш сервер, як піонер, завжди готовий до роботи :)

Отже, давайте запустимо наш сервер живої трансляції!

Примітка: перед цим, потрібно щоб устрою майбутньої трансляції веб або IP камери були вже підключені і налаштовані на роботу). Адже саме через них і буде здійснюватися "живе" (Live) мовлення в мережу.




Як бачимо на фото вище (в головному вікні сервера трансляції) модель нашої веб-камери була успішно визначена програмою (Labtek WebCam), визначена частота передачі кадрів (15 fps: frame per second - 15 кадрів в секунду), а також оптимальну роздільну здатність 640 на 480 пікселів. Також ми бачимо, що у камери є свій вбудований мікрофон, так що окремий пристрій для оцифровування голоси нам і не знадобиться.

Давайте трохи відвернемося і розберемо саму схему організації живої трансляції. Умовно вона складається з трьох основних частин:

  • Кодувальник (Unreal Live Server), який кодує і відправляє цифровий відеопотік з камери на сервер потокового відео
  • Сервер (Unreal Media Server) приймає потік від кодера і надає доступ до нього для клієнтів
  • Клієнт (Streaming Media Player), що підключається до відеопотоку по мережі і відтворює його на віддаленому ПК

  • Природно, в цілях попереднього тестування можна розмістити всі три компоненти на одному комп'ютері, але, як каже один мій знайомий, "ідейність" полягає в тому, щоб кожен з компонентів перебував на різних вузлах мережі, а все це разом працювало, як єдине ціле.

    Саме так ми з нашим IT відділом і зробили на одній з моїх попередніх робіт. Зробили, можна сказати, вимушено. Тому що розмістити кодіровщік і сервер на одному комп'ютері не виходило. Але зараз не хотілося б відволікатися на цю історію, можливо я окремо розповім про це іншого разу?

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


    Схема организации живой трансляции

    Рухаємося далі! Що нам потрібно зараз зробити? Правильно, направити потік від нашого сервера-кодувальника, до сервера-розповсюджувачу відео. Перед цим на сервері-розповсюджувачі нам потрібно задати ключові параметри цього самого потоку. Заходимо в головне вікно Unreal Media Server (ми детально говорили про нього тут) і натискаємо правою кнопкою миші на розділі «Live Broadcast». Вибираємо опцію «New live broadcast» (нова пряма трансляція).




    Побачимо ось таке вікно, де нам потрібно буде вибрати опцію «Dynamic live broadcast». Натискаємо «ОК».




    З'явиться ще одне "серйозне" вікно, в якому нас будуть цікавити тільки перші кілька полів:

  • Live broadcast Alias - псевдонім, який ми довільно вибираємо для нашої трансляції (як бачите, я просто написав назва своєю веб-камери)
  • Live broadcast password - пароль доступу для підключення до сервера (потрібен для того, щоб якийсь інший комп'ютер в мережі не почав на нього несанкціоновану передачу свого контенту)
  • Live broadcast description - текстовий опис (не обов'язково)



  • Після натискання на кнопку «Set Password» (задати пароль), ми побачимо ось таке віконце:




    Вписуємо в поле довільний пароль, який знадобиться нам для доступу до сервера мультимедіа, підтверджуємо його у другому полі і натискаємо кнопку «ОК».

    Після цих маніпуляцій, знову опинимося в головному вікні сервера і там вже буде присутній "заготовка" для нашої майбутньої трансляції:




    Тепер саме час повернутися до нашого кодировщику (Unreal Live Server) і організувати від нього передачу відео з камери на сервер. Для цього натискаємо правою кнопкою миші на профіль підключення під назвою «01-Default» (він вже створений для нас за замовчуванням) і з появи меню вибираємо «Connect to Media Server» (підключитися до медіа сервера).




    У вікні, без суєти і уважно, потрібно буде вказати всі основні параметри підключення до медіа сервера: 192.168.1.2 - IP адресу, ми надали йому раніше, 5130 - порт, який використовує Live Server, псевдонім «labtek» (про нього ми говорили вище) і - пароль доступу, який ми задали раніше.




    Можете відзначити галочкою пункт «Automatically try to reconnect if connection breaks» (автоматично перепідключитися, якщо з'єднання втрачено). Після цього натискаємо кнопку «Connect» (підключитися).

    Подивіться, на фото нижче (воно - кликабельно). Я навів, для наочності, одночасно два вікна з нашими серверами (кодувальником і, власне, медіасервером).



    На скріншоті (у нижній частині обох вікон) видно, що з'єднання встановлено. Про це "звітує" як наш кодувальник (Live Server), так і основний медіасервер (Unreal Media Server). Уважно придивіться до закладок в нижній частині головних вікон додатків, підберіть для себе найбільш інформативні і орієнтуйтеся по ним надалі.

    Тепер найцікавіше! Давайте спробуємо "зловити" поширюваний сервером потік камери з іншого комп'ютера в мережі. Для цього запускаємо на віддаленій машині Unreal плеєр і з меню «Play» вибираємо пункт «Play live broadcast».




    Поверх вікна плеєра у нас з'явиться віконце, в якому нам треба буде вказати два основних параметри: IP адреса медійного сервера і Alias (заданий нами раніше псевдонім), що є унікальним ідентифікатором для кожної живої трансляції.





    Примітка: як правило, порт тут вказувати не потрібно. Але повторюся: за замовчуванням у програмному комплексі Unreal задіяні порти під номерами «5119» і «5130».

    Натискаємо кнопку «ОК» і... хотів написати "бачимо картинку, що передається з веб-камери", але вирішив поки що втриматися :) Справа в тому, що ми, з досить високою часткою ймовірності можемо побачити вікно, показане на фото нижче:




    На ньому написано наступне: "Не знайдений відео-декодер для декомпресії відео-потоку (інформація про кодек: H264)". Справа, загалом-то, ясна. Кодек H264 є одним з найбільш популярних алгоритмів передачі потокового відео при передачі його через мережу. Саме він за замовчуванням і використовується в сервері Unreal для Live трансляцій.

    Цілком логічно виглядає і те, що операційна система віддаленого комп'ютера (з якого ми підключаємося до потоку) може не мати у своєму розпорядженні даного кодека. У більшості випадків, це саме так і є. Значить, нам його треба встановити! Як вже рекомендував в одному з наших уроків, я користуюся універсальним пакетом кодеків «K-Lite Mega Codec Pack». Його можна абсолютно безкоштовно завантажити з Інтернету і встановити на свій комп'ютер.

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


    Живая трансляция в действии!

    Якийсь я дуже серйозний вийшов на фотографії :)

    Ось, власне, і все! Ми перемогли! Змогли організувати живу трансляцію і підключитися до неї з віддаленого комп'ютера. Схожим чином ми проводили відео-лекції для студентів, коли я працював в одному з навчальних закладів. Ну, про це - наступного разу :)

    Наостанок, хочу звернути Вашу увагу на ще одну корисну можливість даного сервера живих трансляцій. Він може записувати трансльований потік в файл. Робиться це максимально просто: натискаємо правою кнопкою миші на нашому профілі за замовчуванням (01-Default) і з появи меню вибираємо опцію «Start Recording» (почати запис).




    Куди зберігається наш файл? Подивіться на скріншот нижче, там вгорі видно весь шлях до кінцевого архіву з розширенням mp4.




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

    Якщо хочете зупинити запис, просто оберіть відповідний пункт «Stop Recording».




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

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

    У найпростішому варіанті ця задумка може виглядати наступним чином:




    Тут у нас - два посилання (просто для прикладу). Посилання у вигляді тексту і у вигляді картинки, які ведуть на один і той же файл (test.avi), розташований на нашому медіасервері.

    На скріншоті нижче представлений html код цієї заготовки. Адреси, позначені червоним, взяті із прикладів, які ми розглядали в першій частині даної статті.




    Можете завантажити файли прикладу на свій комп'ютер, відкрити текстовим редактором "блокнот" і щось змінити, пристосувавши його під свої потреби. Для перевірки роботи html-файлу, просто перетягніть їх мишею у вікно будь-якого браузера, встановленого на Вашому комп'ютері або розмістіть на своєму веб-сервері. Для максимально простої організації останнього на своєму комп'ютері рекомендую проект Denwer.ru.

    Повторимо, користувач просто натискає на потрібну посилання і у нього відкривається Windows медіа плеєр, за допомогою якого і буде відтворюватися потрібне відео. Правда, перед цим може з'явитися вікно, показане на фото нижче:




    Це підтвердження на запуск медіаплеєра. Тут можемо прибрати "птаха" і натиснути кнопку «Дозволити» (більше це питання з'являтися не буде). Після цього запуститься сам медіаплеєр, в якому відобразиться потрібне нам відео.




    Ось тепер, - дійсно все! Об'ємна вийшла стаття, але, сподіваюся, воно того варте? Напишіть в коментарях був матеріал для Вас корисним? На сьогодні будемо прощатися і - до зустрічі в наступних статтях :)



    Рекламний блок