#WebRTCとJanusについて
簡単にWebRTCとJanusについて説明します。
####WebRTCとは?
WebRTC(Web Real-Time Communication)はブラウザーやクライエント間で直接にリアルタイムで(大体P2P)つながり画像ストリーム、オーディオやデータを送ることが出来る複数のプロトコールとAPIなどの組合です。
WebRTC搭載のブラウザーならディベロパーはブラウザーのAPIを使いリアルタイムアプリケーションを作ることが可能です。
HTTPやWebSocketとの違いとしては、WebRTCの通信はクライエントの間のサーバーがないです。
ですが、サーバーが必要ないわけではないです。サーバーはクライエントたちを最初に見つけてあげる役割などを行います。これをどうやって行うかはとても大きいものなのでこの投稿には説明しません。
####Janusとは?
JanusはWebRTCサーバー、ゲートウェイとして作られたopen sourceサーバーです。
WebRTC間の通信やレガシーRTCテクノロジーと相互作用するようにすることも可能です。
Janusはプラグインを使いアプリケーション用の機能を追加する仕組みです。
詳しいことはjanus-gatewayのgithubを参考して下さい。
#必要環境
- Ubuntu 18.04.4 Server x86_64
#設置
必要なパッケージ
sudo apt-get install libmicrohttpd-dev libjansson-dev \
libssl-dev libsofia-sip-ua-dev libglib2.0-dev \
libopus-dev libogg-dev libcurl4-openssl-dev liblua5.3-dev \
libconfig-dev pkg-config gengetopt libtool automake
libnice (ここがすこし大変です)
sudo apt install python3-pip
#meson-0.52以上をインストールして下さい
pip3 install meson==0.52 ninja --user
PATH="${PATH}:$(python3 -c 'import site; print(site.USER_BASE);')/bin"
export PATH=$PATH:~/.local/
git clone https://gitlab.freedesktop.org/libnice/libnice
cd libnice
meson ~/libice2
#'ubuntu'はユーザー名です
ninja -C ~/libnice2
cd /home/ubuntu/.local/bin/
sudo ./ninja -C /home/ubuntu/libnice2/ install
libsrtp 最新のv2.3.0をインストールして下さい
wget https://github.com/cisco/libsrtp/archive/v2.3.0.tar.gz
tar xfv v2.3.0.tar.gz
cd libsrtp-2.3.0
./configure --prefix=/usr --enable-openssl
make shared_library && sudo make install
Data Channelsを使うためにusrsctpをインストールしましょう
git clone https://github.com/sctplab/usrsctp
cd usrsctp
./bootstrap
./configure --prefix=/usr --libdir=/usr/lib64
make
sudo make install
Janusをコンパイルしましょう。
git clone https://github.com/meetecho/janus-gateway.git
cd janus-gateway
sh autogen.sh
./configure --prefix=/opt/janus
make
sudo make install
#基本設定ファイル
sudo make configs
起動!
/opt/janus/bin/janus
ここでlibniceのエラーなどが有りましたらこちらをやってみて下さい(root権限で)
https://groups.google.com/forum/#!topic/meetecho-janus/fznCh3UYSCg参考しました
cd /etc/ld.so.conf.d
echo 'usr/lib64' > whatever.conf
ldconfig
インストールが終わったあと他の機能(WebSockets,MQTT等)を追加したい場合は必要なパッケージを(libwebsockets,paho.mqtt.c等)をインストールしたあとJanusを再コンパイルして下さい。
cd ~/janus-gateway
make clean
./configure --prefix=/opt/janus
make
make install
#最後に
これからは簡単なWebRTCビデオ会議アプリケーションを作ってみようと思います。