10
16

More than 3 years have passed since last update.

WebRTC janus-gateway を使って自作ビデオチャットサーバーを作る。

Last updated at Posted at 2019-10-25

概要

今やLINEだろうと、Skypeだろうと、slackだろうと当たり前についているビデオチャット機能。
自分で新しく作るアプリケーションにもその機能を作りたい。

ニコニコ生放送、YoutubeLive、TwitchみたいなStreamServiceを自分で作りたい。
そんなニッチな需要に答える記事となります。

世に出ているこういったサービスはWebRTCという技術を使っています。

WebRTC - Web Real-Time Communication の略で、ブラウザどうしがプラグイン無しで直接通信し、映像や音声、データをリアルタイムにやりとりすることを可能にする技術。

今回はWebRTCのライブラリ Janus を使って以下のような構成を実現して、ビデオチャットサーバーを作ります。

アーキテクチャ

Janusサーバーの構築

今回の前提環境(Windows Subsystem for Linuxでいけました)

OS ubuntu 16.04

ライブラリ群のインストール

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install libmicrohttpd-dev libjansson-dev libnice-dev \
libssl-dev libsrtp-dev libsofia-sip-ua-dev libglib2.0-dev libopus-dev \
libogg-dev libcurl4-openssl-dev pkg-config gengetopt libtool \
doxygen graphviz libconfig-dev libavutil-dev libavformat-dev automake

websocketのインストール

cmake がなかったら事前にapt install cmake

$ git clone https://github.com/warmcat/libwebsockets.git
$ cd libwebsockets
$ mkdir build
$ cd build
$ cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_C_FLAGS="-fpic" ..
$ make && sudo make install

libsrtp2.0をインストール

$ cd ~
$ wget https://github.com/cisco/libsrtp/archive/v2.0.0.tar.gz
$ tar xfv v2.0.0.tar.gz
$ cd libsrtp-2.0.0
$ ./configure --prefix=/usr --enable-openssl
$ make shared_library && sudo make install

janusのインストール

$ cd ~
$ git clone https://github.com/meetecho/janus-gateway.git
$ cd janus-gateway
$ sh autogen.sh
$ ./configure --enable-post-processing --enable-docs --prefix=/usr/local
$ make
$ make install
$ make configs

configure , make , make installは結構処理長いです。configureで結構warning出ますが気にせず…

janus起動

$ /usr/local/bin/janus &

warningはめっちゃ出ますが起動できます。

Nginxサーバーの構築

Nginxのインストール

$ apt install nginx

janusのデモページのコンテンツを配置してNginxを起動

$ cp -rf ~/janus-gateway/html/* /var/www/html/ 
$ systemctl enable nginx
$ systemctl start nginx

アクセスしてみよう

ブラウザから サーバーのIPにアクセス

demo

こんな感じの画面が出れば成功です。
上のDemos からvideoRoom videocall などなど、いろんなデモが体験できます。
複数のデバイスからつないでお互いにvideochatなどもできます。

ちなみにですが、このデモサイトは公式も公開してくれていて、
https://janus.conf.meetecho.com/

にアクセスすれば同じものが見られます。
demoで配置したhtmlやjsを見ながら自分のwebサイトに配信ページ等を作りましょう。

10
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
16