zoukankan      html  css  js  c++  java
  • janus-gateway webRTC服务器编译安装与Demo测试

    主要步骤参考官网,加上一些错误和额外的包安装。官网地址:https://github.com/meetecho/janus-gateway

    一、安装依赖

    安装官网指定依赖时,先安装额外命令包

    包安装

    aptitude install libmicrohttpd-dev libjansson-dev 
        libssl-dev libsrtp-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

    额外安装 aptitude 

    sudo apt install aptitude    #安装
    sudo aptitude upgrade    #更新

    一大波的包,最后 libsrtp-dev 始终没安装成功,不过好像没影响,可能是因为后面有单独安装 libsrtp

    源码安装 libnice

    git clone https://gitlab.freedesktop.org/libnice/libnice
    cd libnice
    meson --prefix=/usr build && ninja -C build && sudo ninja -C build install

    额外安装 git  

    sudo apt-get install git

    额外安装 meson,会安装 python 和 python 的包管理工具 pip。pip 对应 python2.XX ,pip3 对应 python3.XX

    sudo apt install python3-pip 
    sudo pip3 install meson

    额外安装 ninja ,在安装ninja之前,需要安装其依赖re2c

    sudo apt install re2c
    re2c --version    #查看版本、是否成功
    git clone https://github.com/ninja-build/ninja.git
    cd ninja
    ./configure.py --bootstrap    #编译,如果成功会生成ninja可执行文件
    sudo cp ./ninja  /usr/bin

    可能需要在编译 Janus 之前设置环境变量 PKG_CONFIG_PATH

    export PKG_CONFIG_PATH=/path/to/libnice/lib/pkgconfig

    源码编译安装libsrtp

    让Janus webrtc server中的RTP支持SSL

    git clone https://github.com/sctplab/usrsctp
    cd usrsctp
    ./bootstrap
    ./configure --prefix=/usr --disable-programs --disable-inet --disable-inet6
    make && sudo make install

    源码编译usrsctp

    非必须,这个库是让Janus webrtc server支持 Data Channels ,支持文本互相发送。

    git clone https://github.com/sctplab/usrsctp
    cd usrsctp
    ./bootstrap
    ./configure --prefix=/usr --disable-programs --disable-inet --disable-inet6
    make && sudo make install

    源码安装libwebsocket

    非必须,Janus web rtc server 默认使用HTTP REST API,安装这个作为替代,可以更好的支持web浏览器音视频会议,websocket 还能完成IM等双向通信功能。Demo也会用

    git clone https://libwebsockets.org/repo/libwebsockets
    cd libwebsockets
    # If you want the stable version of libwebsockets, uncomment the next line
    # git checkout v3.2-stable
    mkdir build
    cd build
    # See https://github.com/meetecho/janus-gateway/issues/732 re: LWS_MAX_SMP
    # See https://github.com/meetecho/janus-gateway/issues/2476 re: LWS_WITHOUT_EXTENSIONS
    cmake -DLWS_MAX_SMP=1 -DLWS_WITHOUT_EXTENSIONS=0 -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_C_FLAGS="-fpic" ..
    make && sudo make install

    额外安装 cmake

    sudo apt-get install cmake
    sudo apt-get autoremove cmake    #卸载

    二、获取代码、编译

    git clone https://github.com/meetecho/janus-gateway.git
    cd janus-gateway
    sh autogen.sh
    ./configure --prefix=/opt/janus
    make && sudo make install

    编译时默认开启支持的(装好了依赖的)所有插件,可以传参数配置

    ./configure --prefix=/opt/janus --enable-websockets    #开启
    ./configure --disable-websockets --disable-data-channels --disable-rabbitmq --disable-mqtt    #禁用

    编译完成会有类似配置打印信息( /configure --prefix=/opt/janus --disable-rabbitmq --disable-mqtt )

    Compiler:                  gcc
    libsrtp version:           2.x
    SSL/crypto library:        OpenSSL
    DTLS set-timeout:          not available
    Mutex implementation:      GMutex (native futex on Linux)
    DataChannels support:      yes
    Recordings post-processor: no
    TURN REST API client:      yes
    Doxygen documentation:     no
    Transports:
        REST (HTTP/HTTPS):     yes
        WebSockets:            yes
        RabbitMQ:              no
        MQTT:                  no
        Unix Sockets:          yes
        Nanomsg:               yes
    Plugins:
        Echo Test:             yes
        Streaming:             yes
        Video Call:            yes
        SIP Gateway:           yes
        NoSIP (RTP Bridge):    yes
        Audio Bridge:          yes
        Video Room:            yes
        Voice Mail:            yes
        Record&Play:           yes
        Text Room:             yes
        Lua Interpreter:       no
        Duktape Interpreter:   no
    Event handlers:
        Sample event handler:  yes
        WebSocket ev. handler: yes
        RabbitMQ event handler:yes
        MQTT event handler:    yes
        Nanomsg event handler: yes
        GELF event handler:    yes
    External loggers:
        JSON file logger:      no
    JavaScript modules:        no

    创建默认配置文件,执行一次,如果修改过配置,再执行,会被覆盖掉

    make configs

    如果还想生成帮助文档,可以加一个–enable-docs,编译前,还需要装一下doxygen等辅助工具

    aptitude install  doxygen graphviz

    三、运行

    Janus 参数配置(已创建默认配置),目录在:/opt/janus/etc/janus/

    进入以后,有很多 ***.jcfg.sample 文件,同样的有一份 ***.jcfg ,是 make configs 全部复制了一遍,根据需要修改

    修改ssl信息

    打开 /opt/janus/etc/janus/janus.jcfg ,修改 certificates 项,配置ssl路径

    打开 /opt/janus/etc/janus/janus.transport.http.jcfg , 修改 generals 和 certificates ,启用https

    再打开 /opt/janus/etc/janus/janus.transport.websockets.jcfg , 修改 generals 和 certificates ,启用wss

    运行服务

    /opt/janus/bin/janus

    会有类似启动信息。好几个错误,没能解决,demo运行很容易崩了 感觉可能是 libsrtp-dev 没安装起的缘故。。

    其中包含有

    JANUS VideoRoom plugin initialized #视频会议插件
    WebSockets thread started #websocket支持
    HTTP webserver started (port 8088, /janus path listener) #http 服务

    STUN server警告

    不影响运行 Demo 。因为 Demo 一般运行在局域网,没有P2P打通的需要。但如果是正式使用。则需要解决这个WARNING

    安装 STUN server ,选择安装 coturn

    git  clone https://github.com/coturn/coturn
    cd  coturn
    ./configure 
    make
    sudo make install

    安装coturn服务器不一定和janus一起,装好后把信息写到 janus 的配置文件中

    打开 /opt/janus/etc/janus/janus.jcfg 修改 nat 项以下内容

    查看 janus 运行情况

    lsof -i | grep janus

    运行demo

    网页端的demo,在janus源码根目录的html目录下。把这个html发布出来,从而让外部的浏览器,能够访问

    sudo apt-get install nodejs
    sudo npm -g install http-server

    进入到 http 目录

    http-server

    打开 http://192.168.1.107:8080 即可访问

    添加 ssl

    http-server --ssl --cert /home/ssl/cert.pem --key /home/ssl/key.pem

    参考:https://blog.csdn.net/newchenxf/article/details/110451532 

  • 相关阅读:
    JQuery使用总结
    JS应用总结
    Base64数据转成Excel,并处理Excel的格式
    HTTP压缩
    谷歌开发工具解析
    .Net LIst排重
    MySql日志系统
    .Net生成PDF流
    Mysql MVCC
    JAVA期末综合课程设计
  • 原文地址:https://www.cnblogs.com/jiayouba/p/15248228.html
Copyright © 2011-2022 走看看