Janus là một mã nguồn mở của webRTC, cung cấp nhiều tiện ích giúp cho việc Chat, Videos/Audio call, Recorder hay streamming. Nó thực sự là một thư viện hữu ích đối với những ai muốn phát triển ứng dụng đựa trên nền tảng webRtc hay websocket.
Trong bài viết này mình xin hướng dẫn các bước cài đặt janus trên môi trường ubuntu/centos cũng như macos.
để biết thêm những tính năng hữu ích của thư viện này, bạn có thể tham khảo nó tại đây :
Cài đặt lib cần thiết
In centos
Chạy lệnh sau để cài đặt:
1 2 3 4 5 | yum <span class="token function">install</span> libmicrohttpd-devel jansson-devel libnice-devel openssl-devel libsrtp-devel sofia-sip-devel glib-devel opus-devel libogg-devel libcurl-devel lua-devel pkgconfig gengetopt libtool autoconf automake |
đôi lúc chúng ta cần cài đặt epel-release
by command yum install epel-release
In ubuntu
1 2 3 4 5 | <span class="token function">aptitude</span> <span class="token function">install</span> libmicrohttpd-dev libjansson-dev libnice-dev libssl-dev libsrtp-dev libsofia-sip-ua-dev libglib2.0-dev libopus-dev libogg-dev libcurl4-openssl-dev liblua5.3-dev pkg-config gengetopt libtool automake |
In macos
1 2 3 4 | brew <span class="token function">install</span> jansson libnice openssl srtp libusrsctp libmicrohttpd libwebsockets cmake rabbitmq-c sofia-sip opus libogg <span class="token function">curl</span> glib pkg-config gengetopt autoconf automake libtool |
Cài đặt lib cho websocket
Libsrtp
1 2 3 4 5 6 | <span class="token function">wget</span> https://github.com/cisco/libsrtp/archive/v2.1.0.tar.gz <span class="token function">tar</span> xfv v2.1.0.tar.gz <span class="token function">cd</span> libsrtp-2.1.0 ./configure --prefix<span class="token operator">=</span>/usr --enable-openssl <span class="token function">make</span> shared_library <span class="token operator">&&</span> <span class="token function">sudo</span> <span class="token function">make</span> <span class="token function">install</span> |
Libwebsockets
1 2 3 4 5 6 7 8 | <span class="token function">git</span> clone git://git.libwebsockets.org/libwebsockets <span class="token function">cd</span> libwebsockets <span class="token function">git</span> checkout v2.4-stable <span class="token function">mkdir</span> build <span class="token function">cd</span> build cmake -DLWS_MAX_SMP<span class="token operator">=</span>1 -DCMAKE_INSTALL_PREFIX:PATH<span class="token operator">=</span>/usr -DCMAKE_C_FLAGS<span class="token operator">=</span><span class="token string">"-fpic"</span> <span class="token punctuation">..</span> <span class="token function">make</span> <span class="token operator">&&</span> <span class="token function">sudo</span> <span class="token function">make</span> <span class="token function">install</span> |
Đến đây coi như xong những thư viện cần thiết, bay giờ bạn cần download janus về để cài đặt trên máy
Install Janus
In linux (ubuntu and centos)
Chạy những lệnh sau đây:
1 2 3 4 5 6 7 | <span class="token function">git</span> clone https://github.com/meetecho/janus-gateway.git <span class="token function">cd</span> janus-gateway sh autogen.sh ./configure --prefix<span class="token operator">=</span>/opt/janus <span class="token function">make</span> <span class="token function">make</span> <span class="token function">install</span> |
Generate config:
1 2 | <span class="token function">make</span> configs |
In Macos
Chạy những lệnh dưới đây:
1 2 3 4 5 6 7 | <span class="token function">git</span> clone https://github.com/meetecho/janus-gateway.git <span class="token function">cd</span> janus-gateway sh autogen.sh ./configure --prefix<span class="token operator">=</span>/usr/local/janus PKG_CONFIG_PATH<span class="token operator">=</span>/usr/local/opt/openssl/lib/pkgconfig <span class="token function">make</span> <span class="token function">make</span> <span class="token function">install</span> |
Generate config:
1 2 | <span class="token function">make</span> configs |
Lưu ý:
prefix
chính là nơi janus sẽ cài đặt vào, bạn có thể tự do thay đổi nơi cài đặt theo ý muốn của mình
Sau khi cài đặt xong thì bạn cần thay đổi một chút file config để có thể videos call được:
Thay đổi trong file /opt/janus/etc/janus/janus.cfg
như sau:
1 2 3 4 5 6 7 8 | stun_server = stun1.l.google.com stun_port = 19302 turn_server = 13.250.13.83 turn_port = 3478 turn_type = udp turn_user = YzYNCouZM1mhqhmseWk6 turn_pwd = YzYNCouZM1mhqhmseWk6 |
thông tin stun
này là của google, bạn có thể dễ dàng tìm trên mạng hoặc có thể cài đặt một server của riêng mình cho bảo mật
Chạy Janus server
Bạn cd
vào thư mục janus đã cài đặt (linux/centos tại/opt/janus
and macos tại /usr/local/janus
)
và chạy command sau:
Đối với môi trương dev:
1 2 | /bin/janus |
Mỗi trường production:
1 2 3 | <span class="token function">export</span> LD_LIBRARY_PATH<span class="token operator">=</span>/usr/lib64<span class="token punctuation">;</span>/opt/janus/bin/janus -d 5 -6 <span class="token operator">></span> 2<span class="token operator">></span><span class="token operator">&</span>1 <span class="token operator">&</span> |
/tmp/janus.log
là file logs, janus sẽ lưu toàn bộ logs vào đây
Ngoài ra janus còn có nhiều cầu hình khác nữa, bạn có thể lên github để xem thêm cấu hình.
janus có yêu cầu nginx
bản rtmp
module để có thể chạy được livestream cũng như những tính năng khác, phần tiếp theo mình sẽ hướng dẫn bạn cài nginx với rtmp module
Cài đặt Nginx with rtmp module
Phần này thì phải tự build riêng, chứ ko chỉ cài một lệnh là xong như nginx thông thường.
Cài đặt libs
1 2 | <span class="token function">sudo</span> <span class="token function">apt-get</span> <span class="token function">install</span> build-essential libpcre3 libpcre3-dev libssl-dev |
Cài đặt ngixn and hls
1 2 3 4 5 6 7 8 9 | <span class="token function">wget</span> http://nginx.org/download/nginx-1.15.1.tar.gz <span class="token function">wget</span> https://github.com/arut/nginx-rtmp-module/archive/master.zip <span class="token function">tar</span> -zxvf nginx-1.15.1.tar.gz unzip master.zip <span class="token function">cd</span> nginx-1.15.1 ./configure --with-http_ssl_module --add-module<span class="token operator">=</span><span class="token punctuation">..</span>/nginx-rtmp-module-master <span class="token function">make</span> <span class="token function">sudo</span> <span class="token function">make</span> <span class="token function">install</span> |
Install the Nginx init scripts.
Phần này để cho có thể sử dụng câu lệnh như service nginx start ...
như bình thường thôi:
1 2 3 4 | <span class="token function">sudo</span> <span class="token function">wget</span> https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx <span class="token function">sudo</span> <span class="token function">chmod</span> +x /etc/init.d/nginx <span class="token function">sudo</span> update-rc.d nginx defaults |
Tham khảo
Và các nguồn khác trên internet