为 webrtc 实现 Janus 网关

Posted

技术标签:

【中文标题】为 webrtc 实现 Janus 网关【英文标题】:implement janus gateway for webrtc 【发布时间】:2014-07-21 13:47:43 【问题描述】:

我正在按照 janus 文档构建视频 mcu 系统。我根据自述文件安装了它的所有依赖项。 http://janus.conf.meetecho.com/docs/

之后,当我使用 sh install.sh 运行脚本时,出现以下错误

In file included from test.c:1:0:
../websock/src/websock.h:55:26: fatal error: event2/event.h: No such file or directory
 #include <event2/event.h>
                          ^
compilation terminated.
make[1]: *** [test.o] Error 1
make[1]: Leaving directory `/home/gayan/MyDetails/MyApplications/virtualClassRoomTest/janus-gateway/wstest'
make: *** [wstest] Error 2

The installer couldn't find the libwebsock lib, which is needed for WebSockets
You can install version 1.0.4 (required!) with the following steps:
    wget http://paydensutherland.com/libwebsock-1.0.4.tar.gz
    tar xfv libwebsock-1.0.4.tar.gz
    cd libwebsock-1.0.4
    ./configure --prefix=/usr && make && sudo make install

    [Note: you may need to pass --libdir=/usr/lib64 to the configure script if you're installing on a x86_64 distribution]

If you're not interested in WebSockets support, you can disable them passing nowebsockets to the install script:
    ./install.sh nowebsockets

我也按照上面的步骤安装了libwebsock,但是还是报错。 event2 目录不在 janus-gateway 代码中。这是所有源代码的 github 链接。 https://github.com/meetecho/janus-gateway.git 任何形式的帮助将不胜感激。

【问题讨论】:

我猜 libwebsocket 不在你的路径中......另外,你清理并重新制作了吗? 感谢本杰明的评论。 libwebsocket 按照文档说明位于 janus-gateway 文件夹内。我也做了 make cleanmake 了。但结果是一样的。正如我之前提到的,event2 文件夹和 event.h 文件也不在源代码中。 您没有 64 位操作系统?我已经完成了您所做的事情,并且在 Debian Jessie x86 上运行良好。此外,LibWebsocket 不能在 janus-gateway 文件夹中......它应该被安装并位于您的 PATH 中。很可能是 /usr/lib/ 中的 lib 文件和 /usr/include/ 中的包含文件。 @BenjaminTrent 你能看一下this吗?不胜感激。 【参考方案1】:

让 websockets 工作的完整安装步骤(Ubuntu 14)是:

mkdir -p ~/build

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 libini-config-dev libcollection-dev libwebsockets-dev pkg-config gengetopt automake libtool doxygen graphviz git cmake

sudo apt-get install libavformat-dev

echo "Start installing libwebsockets"
cd ~/build
git clone git://git.libwebsockets.org/libwebsockets
cd libwebsockets
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr  -DLWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT=ON ..
make && sudo make install

echo "Start installing Janus"
cd ~/build
git clone git://github.com/meetecho/janus-gateway.git
cd janus-gateway
sh autogen.sh
./configure --disable-data-channels --disable-rabbitmq --disable-docs --prefix=/opt/janus LDFLAGS="-L/usr/local/lib -Wl,-rpath=/usr/local/lib" CFLAGS="-I/usr/local/include"

make && sudo make install
sudo make configs

如果使用 wss,请确保复制证书,chrome 对这些东西真的很挑剔。如果使用自签名证书,您必须在 chrome 中信任它们(非常直观的过程:)))

sudo cp mycert.pem /opt/janus/share/janus/certs/
sudo cp mycert.key /opt/janus/share/janus/certs/

【讨论】:

【参考方案2】:

我遇到了这个问题,后来解决了

sudo apt-get install libevent-dev

我的系统是ubuntu 14.04 64位

【讨论】:

以上是关于为 webrtc 实现 Janus 网关的主要内容,如果未能解决你的问题,请参考以下文章

Janus WebRTC 安装问题

使用 gdb 调试 janus 网关

Janus-Gateway WebRTC 分辨率

WebRTC笔记之二十一:基于WebSocketPP的Janus客户端

Janus介绍

Janus介绍