Идея
Есть 2 html страницы.
Страница публикации и просмотра.
Каждая из них меняет в зависимости от цели свой внешний вид.
Цель вписать название трансляции и начать ее
Вид:
поле ввода названия трансляции
кнопка начала трансляции
Цель транслирование
Вид:
окно со своим видео
кнопка "Закончить"
текст в котором вписано количество смотрящих
отключение/включение транслируемого звука
отключение/включение транслируемого видео
выбор камеры (если поддерживается)
Цель вписать название трансляции и посмотреть ее
Вид:
поле ввода названия трансляции
кнопка начала воспроизведения
Цель просмотр трансляции
Вид:
окно с видео трансляции
кнопка "Выход" перебрасывает на Цель "вписать название трансляции и посмотреть ее"
Любой имея камеру и микрофон на десктопе или в мобильном девайсе может зайти на страницу публикации по определенному URL.
Вписывает свое имя (или какую-либо идентифицирующую его информацию). Эта информация присваивается трансляции.
Нажимает на кнопку на странице начинается трансляция его видео и звука.
Любой может зайти на страницу просмотра.
Вписывает название. Нажимает кнопку и, если трансляция с таким названием существует, смотрит ее со звуком.
Правила
Именования трансляций
Публикатор единственный кто может транслировать медиа в своей трансляции. Все кто присоединился к ней только смотрят и слышат.
Выход публикатора из трансляции:
если остаются подписчики, трансляция не пропадает, и у всех подписчиков появляется надпись информирующая о том что публикатор пропал + кнопка выхода
подписчики не отписываются от стрима публикатора чтобы иметь возможность автоматически продолжить его когда пубьликатор начнет заново транслировать в этой же трансляции
если все вышли вслед за публикатором, трансляция перестает существовать и ее имя может занять любой начав транслировать под этим именем
Технические особенности
Медиа публикатора передается через WebRTC на медиа сервер (Kurento).
Сервер "раздает" медиа публикаторов всем подписчикам.
Kurento установлен на VPS.
OS Ubuntu 14.04 x86_64
Медиасервер находится на одном сервере, html страницы на другом. Обращение к медиасерверу как тут
doc-kurento-room.readthed...