当前位置: 首页 > news >正文

网站设置高度python做的网站如何部署

网站设置高度,python做的网站如何部署,搜云seo,销售怎么找客户janus-Gateway 需求是前后端的webRTC推拉流#xff0c;但是后端用的是c#xff0c;于是使用了这个库做视频流的推送和拉取#xff0c;记录踩坑过程。 如果你也需要自己部署janus的服务端并在前端拉流测试#xff0c;希望对你有所帮助。 由于janus的服务器搭建需要linux环境…janus-Gateway 需求是前后端的webRTC推拉流但是后端用的是c于是使用了这个库做视频流的推送和拉取记录踩坑过程。 如果你也需要自己部署janus的服务端并在前端拉流测试希望对你有所帮助。 由于janus的服务器搭建需要linux环境源码并不支持windows因此需要准备局域网下的另一台ubantu电脑通过ssh连接。 服务端的搭建本人并不熟悉参考的是newchenxf大佬的这篇文章由于版本更新有些报错的地方会在下文指正。 服务端搭建 1.下载源码 通过 github 下载源码也可以在 官网 查看详细的api和在线demo 。 2.安装Janus依赖库 部分直接命令行安装部分需要通过源码安装。 2.1 命令行安装 sudo 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请注意安装结果如果有某一个安装失败又是官网要求必须装的则需要手动下载安装方法参照下面的源码安装↓ 2.2 源码安装libnice libnice是一个建立ice连接必须的库官方推荐方法依赖比较多需要Python 3 Meson and Ninja我直接用的第二种方法 git clone https://gitlab.freedesktop.org/libnice/libnice cd libnice meson --prefix/usr build ninja -C build sudo ninja -C build install第二种方法下载 libnice_0.1.16.orig.tar.gz下载完后将压缩文件移动到usr/local下 cd /usr/local tar -zxvf libnice_0.1.16.orig.tar.gz cd /usr/local/libnice_0.1.16 ./configure make sudo make install2.3 源码安装libwebsocket webSocket不是必须的但是最好装一下因为websocket也很常用网页Demo也会用。 下载 libwebsockets (蓝奏云)压缩包将压缩文件移动到/usr/local下 sudo tar -zxvf libwebsockets.tar.gzcd /usr/local/libwebsocketsmkdir buildcd build/cmake ..make make install如无报错情况下build/bin目录下将生成 example类文件 此时还需要进入example的源码目录:libwebsockets/minimal-examples-lowlevel/ws-server/minimal-ws-server二次编译。 cd /usr/local/libwebsockets/minimal-examples-lowlevel/ws-server/minimal-ws-servercmake .make./lws-minimal-ws-server终端执行结果应该是这样 此时便可以通过本机ip加7681端口(如果本机ip为1.1.1.1 则访问 1.1.1.1:7681)访问websocket网页查看服务是否启动↓网页应该如下图所示。 在编译 janus 时janus 默认会增加对 WebSocket 的集成或者通过增加编译参数 –enable-websockets 打开 WebSocket 开关。 2.4 源码安装libsrtp 这一个不是绝对必须的因为前面通过命令行也安装了libsrtp-dev。事实上运行起demo是没有问题的如果只跑demo可以跳过。只不过Janus官网建议如果你的libsrtp版本低于1.5建议升级到最新的比如2.2因为之前的版本可能有bug会引入问题。 sudo apt-get install libsrtp-dev如果是按步骤来会提示已经安装过了(安装的是老版本终端执行结果应该是这样) Reading package lists... Done Building dependency tree Reading state information... Done Note, selecting libsrtp0-dev instead of libsrtp-dev libsrtp0-dev is already the newest version (1.4.5~20130609~dfsg-2ubuntu1).安装新版本更新到2.2后不需要pkg-config来修改版本因为这个库名字和老版本不一样叫做libsrtp2不会冲突。如果有libsrtp2Janus会自动选这个库。 wget https://github.com/cisco/libsrtp/archive/v2.2.0.tar.gz tar xfv v2.2.0.tar.gz cd libsrtp-2.2.0 ./configure --prefix/usr --enable-openssl make shared_library sudo make install2.5 源码安装usrsctp 这个也是非必须如果要起Data Channel才需要简单来说就是推拉流运行起来后如果需要文本互相发送会用到。 装好以后编译janus会默认启用他 git clone https://github.com/sctplab/usrsctp cd usrsctp ./bootstrap ./configure --prefix/usr --disable-programs --disable-inet --disable-inet6 make sudo make install3. 编译Janus 依赖都准备好了可以编译janus了 git clone https://github.com/meetecho/janus-gateway.git sh autogen.sh ./configure --prefix/opt/janus --enable-websockets make sudo make install如果还想生成帮助文档可以加一个–enable-docs编译前还需要装一下doxygen等辅助工具可选 aptitude install doxygen graphviz执行configure ./configure此时终端的执行结果应该为 ↓ 没有配置Data Channel不影响demo运行 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): yesWebSockets: yesRabbitMQ: noMQTT: noUnix Sockets: yesNanomsg: no Plugins:Echo Test: yesStreaming: yesVideo Call: yesSIP Gateway: yesNoSIP (RTP Bridge): yesAudio Bridge: yesVideo Room: yesVoice Mail: yesRecordPlay: yesText Room: yesLua Interpreter: noDuktape Interpreter: no Event handlers:Sample event handler: yesWebSocket ev. handler: yesRabbitMQ event handler:noMQTT event handler: noNanomsg event handler: noGELF event handler: yes External loggers:JSON file logger: no JavaScript modules: no4. 运行Janus Janus运行需要参数配置安装目录(/opt/janus/etc/janus/)已经有配置的sample。 进入以后发现有很多jcfg.sample文件比如janus.jcfg.sample janus.transport.websockets.jcfg.sample。 需要把这些都复制成可被读取的文件即去掉.sample结尾要全部复制。 所以需要复制第一个文件名称替换命令里面的名字执行命令再复制第二个文件名称替换命令里面的名字再执行…直到复制完文件夹下的十几个.sample文件。 文件名均为 xxx.jcfg.sample 后面的文件名就是xxx.jcfg即 前面的删掉 .sample sudo cp -rf 文件名 文件名去掉最后的sample所以假如复制的文件名为 janus.jcfg.sample 命令就是 ↓ 这条 sudo cp -rf janus.jcfg.sample janus.jcfg全部完成后需要生成ssl证书。 5. ssl证书 Janus默认的配置是没有enable SSL的意味着https和wss不支持。而有些浏览器要拉起摄像头必须是加密协议下的。所以如果你Demo运行不起来可以服务端配置一下SSL。 cd ~ mkdir ssl cd ssl # Gen ssl certs: openssl req -new -newkey rsa:4096 -nodes -keyout key.pem -out cert.csr openssl x509 -req -sha256 -days 365 -in cert.csr -signkey key.pem -out cert.pem chmod 600 cert.csr chmod 600 cert.pem chmod 600 key.pem生成的过程中会让你输入信息姓名密码之类的直接enter跳过即可不能跳过的随便填。 注意如果填密码的时候是输入了密码的那么要记住它改配置文件需要填密码。 这个是私人证书访问时会报不安全如果公司性质的需要另外申请。 5.1 配置文件修改ssl信息 打开刚才改.sample文件的目录 /opt/janus/etc/janus/ 使用文本编辑janus.jcfg注意这里的证书路径需要在文件夹中找一下不同的用户生成不同 比如我的是root用户我的ssl证书生成在/root/ssl 并且由于我填密码时enter跳过了所以pwd为空 注意前面的#要去掉填完之后前面三行复制即可 certificates: {cert_pem /root/ssl/cert.pemcert_key /root/ssl/key.pemcert_pwd #dtls_accept_selfsigned false#dtls_ciphers your-desired-openssl-ciphers#rsa_private_key false }再编辑同目录下的janus.transport.http.jcfg把https改为true去掉secure_port的注释#certificates配置跟上面一样 general: {#events true # Whether to notify event handlers about transport events (defaulttrue)json indented # Whether the JSON messages should be indented (default),# plain (no indentation) or compact (no indentation and no spaces)base_path /janus # Base path to bind to in the web server (plain HTTP only)http true # Whether to enable the plain HTTP interfaceport 8088 # Web server HTTP porthttps true # Whether to enable HTTPS (defaultfalse)secure_port 8089 # Web server HTTPS port, if enabled}certificates: {cert_pem /root/ssl/cert.pemcert_key /root/ssl/key.pemcert_pwd #ciphers PFS:-VERS-TLS1.0:-VERS-TLS1.1:-3DES-CBC:-ARCFOUR-128 }再编辑同目录下的janus.transport.websockets.jcfg把wss改为true去掉wss_port的注释#certificates配置跟上面一样 general: {ws true # Whether to enable the WebSockets APIws_port 8188 # WebSockets server port#ws_interface eth0 # Whether we should bind this server to a specific interface only#ws_ip 192.168.0.1 # Whether we should bind this server to a specific IP address onlywss true # Whether to enable secure WebSocketswss_port 8989 # WebSockets server secure port, if enabled }certificates: {cert_pem /root/ssl/cert.pemcert_key /root/ssl/key.pemcert_pwd #ciphers PFS:-VERS-TLS1.0:-VERS-TLS1.1:-3DES-CBC:-ARCFOUR-128 }注意改的这三个文件均为.jcfg结尾的文件刚才4. 运行Janus时转化的如果改到了.sample结尾的文件配置就不生效了。 6. 运行 所有的准备和配置都搞定了接下来就是启动服务。 /opt/janus/bin/janus --debug-level7终端的执行结果 libwebsockets logging: 0 Websockets server started (port 8188)... Using certificates:/root/ssl/cert.pem/root/ssl/key.pem Secure Websockets server started (port 8989)... Admin Websockets server disabled Secure Admin Websockets server disabledJANUS WebSockets transport plugin initialized! ---JANUS websocket初始化Version: 1 (0.0.1)[janus.transport.websockets] JANUS WebSockets transport pluginThis transport plugin adds WebSockets support to the Janus API via libwebsockets.Plugin API version: 8Janus API: enabledAdmin API: disabledWebSockets thread started ---JANUS websocket启动成功如果是这样说明启动成功了 检查运行端口 lsof -i | grep janus终端运行结果 janus 32306 chenxiaofeng 5u IPv6 887081 0t0 UDP *:rfe janus 32306 chenxiaofeng 6u IPv6 887082 0t0 UDP *:5004 janus 32306 chenxiaofeng 13u IPv6 884414 0t0 TCP *:omniorb (LISTEN) janus 32306 chenxiaofeng 16u IPv6 884415 0t0 TCP *:8089 (LISTEN) janus 32306 chenxiaofeng 21u IPv4 884417 0t0 TCP *:8188 (LISTEN) janus 32306 chenxiaofeng 24u IPv4 884418 0t0 TCP *:8989 (LISTEN)8089是https 8188是ws 8989是wss(websocket secure) STUN server警告 [WARN] Janus is deployed on a private address (192.168.1.107) but you didnt specify any STUN server! Expect trouble if this is supposed to work over the internet and not just in a LAN...启动的时候还会有STUN警告信息对于我们运行Demo是没问题的。因为一般运行在局域网没有P2P打通的需要。 但如果你是正式使用则需要解决这个警告需要安装STUN server 也就是coturn。 打开/opt/janus/etc/janus/janus.jcfg修改配置 nat: {#stun_server stun.voip.eutelia.it#stun_port 3478 ..#turn_server myturnserver.com#turn_port 3478#turn_type udp#turn_user myuser#turn_pwd mypassword安装coturn git clone https://github.com/coturn/coturn cd coturn ./configure make sudo make install安装coturn服务器不一定和janus一起也可以一起。总之装好后把信息写到janus的配置文件中。 7. 在线demo 我们可以在服务端通过http-server将demo的html发布到本地服务器方便我们使用 首先我们需要在ubantu中安装nodejs参考ubantu下nodejs安装 安装完成后全局安装http-server npm -g install http-server安装好以后进入janus源码的html目录。 cd /usr/local/janus-gateway/html然后执行http-server 注意web的demo默认都是走http的这在有些环境下的浏览器是无法拉起摄像头的权限问题推荐使用https 这里/root/ssl是ssl证书生成的目录 http-server --ssl --cert /root/ssl/cert.pem --key /root/ssl/key.pem启动后访问即可由于是私人ssl证书浏览器会有警告继续前往即可。 此时就可以访问在线的demo了。 服务端的部署到这里就结束了接下来是前端模块
http://www.yutouwan.com/news/153251/

相关文章:

  • 高校网站网页设计河南工程信息网官网
  • 分页网站城乡建设网官方网站
  • 做网站合肥镇江网站排名优化费用
  • 网站开发商业计划书做外贸找客户最好用的网站
  • 哪里做网站比较好短网址在线生成短网址
  • 网站建设这个职业是什么响应式布局设计
  • 电子政务与网站建设工作总结wordpress框架是什么意思
  • 网站开发 作品理念建网站开发国外客户
  • 宁德公司做网站南京网站建设网站
  • 律师做网站推广有用吗笑话网站模版
  • 网站正则表达式怎么做在线制作图片加闪光字
  • 做购物类网站有哪些wordpress如何加联盟广告位
  • 深圳住房和建设局网站融悦居免费建设网站制作
  • 网站搭建心得做废旧哪个网站好
  • 萍乡网站建设公司创新驱动发展战略纲要
  • 网站是否开启gzipsaas系统怎么读
  • VPS如何做网站服务器企业销售网站建设
  • 简述网站制作方案和主要内容网站正在建设中是什么意思
  • 可以上传软件的网站梁山城乡建设局网站
  • 怎么做二手房网站公司网站开发建设
  • 青岛网站优化网页制作培训多钱
  • 专门找建筑案例的网站厦门人才网个人登录
  • 电商网站开发文档网站设计奖
  • 常州做网站优化wordpress留言快速审核
  • 举报的网站是国外的域名和空间北理工网站开发与应用答案
  • 动漫网站开发农产品信息网站建设方案
  • 开封旅游网站建设网页推广我做彩票网站开发彩票网站搭建
  • iis编辑网站绑定陕西网站建设公司哪有
  • 网文网站排名女生学大数据很累吗
  • 买了个网站后怎么做网站做外链的具体步骤