Видео чат с помощью WebRTC
Продолжаю серию статей о WebRTC. 
Предыдущая статья: Простой чат через WebRTC DataChannel

За основу возьмем код чата, и немного изменим, вместо канала данных будем создавать трансляцию. Серверный скрип остается без изменений. Напомню только, будет работать в соседних вкладках браузера, т.к. используется сессия для хранения данных, а не база данных.
Демо видео чат 

HTML страница и немного стилей.
<style type="text/css">
     #local {
          position: fixed;
          bottom: 0px;
          right: 0px;
     }
</style>
<div>Инструкция: Открыть в одной вкладке, нажать New. Открыть во второй вкладке, выбрать чат.</div>
<button onclick="createChat();">New</button>
<div id="chats"></div>
<video id="remote" autoplay></video>
<video id="local" autoplay width="200"></video>
Схема действий точно такая же, создаем чат по кнопке New открываем в другой вкладке в #chats отображается список чатов. В #remote видео собеседника. В #local ваше видео, отображается в нижнем правом углу.

Переменные и подписки те же самые, но теперь нет необходимости в создании createDataChannel и подписки на ondatachannel. В место этого подписка на появления трансляции.
RTC.onaddstream = function (event) {
     GCF.Q('#remote').src = URL.createObjectURL(event.stream);
};
Как только появится трансляция, установим её в видео собеседника.

Все остальные основные функции без изменений. Исчезли функции связанные с сообщением.
После загрузки страницы, до получения каких либо инструкций(createOffer, createAnswer), необходимо получить доступ к медиа устройствам.
navigator.getUserMedia({video: true, audio: true}, function(stream) {
     RTC.addStream(stream);
}, err);

navigator.getUserMedia({video: true}, function(stream) {
     GCF.Q('#local').src = URL.createObjectURL(stream);
}, err);
Сначала получим трансляции с видео и звуком и добавим addStream в наше соединение. Для отображения себя в углу получим трансляцию еще раз, то только одно видео, что бы самих себя не слышать.

Видео чат готов. Скоро продолжение данной темы...

Полезное:
Доступ к камере из Javascript