Kurento实战之二:快速部署和体验,Java笔试题编程题

2023-05-16

GitCommit: 269548fa27e0089a8b8278fc4fc781d7f65a939b

runc:

Version: 1.0.0-rc92

GitCommit: ff819c7e9184c13b7c2607fe6c30ae19403a7aff

docker-init:

Version: 0.19.0

GitCommit: de40ad0

  1. 设置镜像加速,否则下载镜像慢并且时常超时,执行以下命令完成镜像加速的设置并使其生效:

mkdir -p /etc/docker

tee /etc/docker/daemon.json <<-‘EOF’

{

“registry-mirrors”: [“https://registry.docker-cn.com”]

}

EOF

systemctl daemon-reload

systemctl restart docker

环境准备完成,接下来安装KMS;

安装KMS

  1. 执行以下命令即可完成KMS安装,下载镜像有些耗时请耐心等待:

docker run -d \

–name kms \

–network host \

kurento/kurento-media-server:6.15

  1. 等待控制台输出完成即代表KMS部署和启动完成,查看容器情况:

[root@centos7 ~]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

4265203b2baa kurento/kurento-media-server:6.15 “/entrypoint.sh” 3 minutes ago Up 3 minutes (healthy) kms

  1. 执行以下命令确认响应是否正常:

curl -i -N \

-H “Connection: Upgrade” \

-H “Upgrade: websocket” \

-H “Host: 127.0.0.1:8888” \

-H “Origin: 127.0.0.1” \

http://127.0.0.1:8888/kurento

  1. 如果控制台响应以下内容,证明KMS已经可以正常服务了:

HTTP/1.1 500 Internal Server Error

Server: WebSocket++/0.7.0

  1. 需要格外注意:从前面的docker run命令的参数可以发现,KMS容器直接使用了宿主机的网卡(–network host),因此,请不要在Mac电脑上执行本篇的的操作,因为Mac电脑的docker不支持host网络模式;
  • 至此,KMS部署完毕(也就是一行命令的事儿),接下来试试如何快速体验官方的多个demo;

关于官方demo

  1. Kurento官方分别基于java和nodejs实现了KMS客户端,并基于这两种客户端分别实现了demo;

  2. 请大家原谅欣宸在nodejs领域的毫无建树,接下来咱们将会体验java版本的demo,重点是如何快速体验这些demo;

  3. java版本demo的地址是:https://github.com/Kurento/kurento-tutorial-java ,如下图,功能非常丰富:

在这里插入图片描述

demo运行环境准备

  1. 由于demo是java版本,所以要安装JDK和Maven,下面是安装步骤;

  2. 请下载Linxu版本的JDK安装包,我这里用的是jdk-8u191-linux-x64.tar.gz,请自行前往Oracle官方下载;

  3. 将jdk-8u191-linux-x64.tar.gz上传到CentOS电脑上,再执行以下命令,将JDK包解压到合适的位置:

mkdir -p /usr/lib/jvm

tar -C /usr/lib/jvm/ -xzf jdk-8u191-linux-x64.tar.gz

  1. 在环境变量中写入JDK相关的信息,并使之生效:

echo ‘export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_191’ >> ~/.bashrc

echo ‘export JRE_HOME=${JAVA_HOME}/jre’ >> ~/.bashrc

echo ‘export CLASSPATH=.: J A V A H O M E / l i b : {JAVA_HOME}/lib: JAVAHOME/lib:{JRE_HOME}/lib’ >> ~/.bashrc

echo ‘export PATH= J A V A H O M E / b i n : {JAVA_HOME}/bin: JAVAHOME/bin:PATH’ >> ~/.bashrc

source ~/.bashrc

  1. 执行java -version看看设置是否已经生效:

[root@centos7 ~]# java -version

java version “1.8.0_191”

Java™ SE Runtime Environment (build 1.8.0_191-b12)

Java HotSpot™ 64-Bit Server VM (build 25.191-b12, mixed mode)

  1. 接下来是maven,执行以下命令,即可完成下载、解压、环境变量设置等所有工作:

wget https://mirrors.bfsu.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

tar -C /usr/local/ -xzf apache-maven-3.6.3-bin.tar.gz

echo ‘export MAVEN_HOME=/usr/local/apache-maven-3.6.3’ >> ~/.bashrc

echo ‘export PATH= M A V E N H O M E / b i n : MAVEN_HOME/bin: MAVENHOME/bin:PATH’ >> ~/.bashrc

source ~/.bashrc

  1. 执行mvn -version看看设置是否已经生效:

[root@centos7 ~]# mvn -version

Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)

Maven home: /usr/local/apache-maven-3.6.3

Java version: 1.8.0_191, vendor: Oracle Corporation, runtime: /usr/lib/jvm/jdk1.8.0_191/jre

Default locale: zh_CN, platform encoding: UTF-8

OS name: “linux”, version: “3.10.0-1160.11.1.el7.x86_64”, arch: “amd64”, family: “unix”

  1. 为了提高二方库的下载速度,建议配置阿里云仓库,打开文件/usr/local/apache-maven-3.6.3/conf/settings.xml,找到mirrors节点,在里面增加以下内容:

nexus-aliyun

central

Nexus aliyun

http://maven.aliyun.com/nexus/content/groups/public

  1. 保存退出,环境设置已经完成,接下来可以下载demo源码了;

下载官方demo

  1. 现在咱们把官方demo下载下来,用于稍后的体验;

  2. 为了确保demo的稳定,就不下载最新代码了,而是已经归档的6.15.0版本,执行以下命令完成下载和解压:

wget https://github.com/Kurento/kurento-tutorial-java/archive/6.15.0.tar.gz

tar -xzf 6.15.0.tar.gz

  1. 解压后是个名为的文件夹,里面是前面截图中的那些demo:

[root@centos7 ~]# tree -L 1 kurento-tutorial-java-6.15.0/

kurento-tutorial-java-6.15.0/

├── kurento-chroma

├── kurento-crowddetector

├── kurento-group-call

├── kurento-hello-world

├── kurento-hello-world-recording

├── kurento-hello-world-repository

├── kurento-magic-mirror

├── kurento-metadata-example

├── kurento-one2many-call

├── kurento-one2one-call

├── kurento-one2one-call-advanced

├── kurento-one2one-call-recording

├── kurento-platedetector

├── kurento-player

├── kurento-pointerdetector

├── kurento-rtp-receiver

├── kurento-send-data-channel

├── kurento-show-data-channel

├── LICENSE

├── NOTICE

├── pom.xml

└── README.md

18 directories, 4 files

  • 至此,运行官方demo前的准备工作已经完成,开始体验精彩的官方demo吧!

运行官方demo前,先梳理一下数据流

  1. 简单看看当前情况,现在的情况如下图所示,CentoOS电脑上运行着KMS:

在这里插入图片描述

  1. 一旦咱们运行一个demo,就会变成下图的样子:

在这里插入图片描述

  1. 然后,咱们会在另一台电脑上用浏览器访问demo应用的网页,以kure

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享

nto-hello-world这个demo为例,基本流程如下(省略了WebRTC的复杂流程):

在这里插入图片描述

  1. 上面就是一个最基本的demo所涉及的数据流向,当然了,每个demo都有其特殊性,例如直播的demo是多个浏览器连接到KMS,不过整体上与上面的流程图类似;
  • 做了这么多准备工作还没开始运行demo,可能您已经很愤怒了,好吧我不继续逼逼了,咱们立即开始运行demo;

  • 再多说一句:运行浏览器的电脑上请备好摄像头和麦克风,不然很多demo功能无法体验;

demo之一:本人本地预览+实时播放

  1. 进入demo源码的子目录kurento-hello-world,执行以下命令即可启动demo应用,并且,将控制台信息转存到~/kurento-hello-world.log:

nohup mvn -U clean spring-boot:run \

-Dspring-boot.run.jvmArguments="-Dkms.url=ws://localhost:8888/kurento" \

~/kurento-hello-world.log \

2>&1 &

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kurento实战之二:快速部署和体验,Java笔试题编程题 的相关文章

  • C语言-冒泡排序 (数据结构)

    冒泡排序法 基本原理 从将要排序的对象中每次选择一个最小元素 xff08 或最大元素 xff09 xff0c 按照非递减 xff08 从小到大 xff09 xff08 或非递增 xff08 从大到小 xff09 xff09 顺序与相邻元素进
  • python中为什么需要使用“if __name__ == ‘__main__‘”语句

    首先用最简洁的语言来说明一下 if name 61 61 39 main 39 的作用 xff1a 防止在被其他文件导入时显示多余的程序主体部分 先举个例子 xff0c 如果不用 if name 61 61 39 main 39 会发生什么
  • 蓝桥杯 A+B问题(python)

    蓝桥杯A 43 B问题 我看了很多人的代码都大同小异 xff0c 所以我就做个小小的总结 xff0c 大家看完有什么更好的方法可以在评论区告诉我 问题描述 xff1a 时间限制 xff1a 1 0s 内存限制 xff1a 256 0MB 问
  • C# 输入半径,计算圆的面积和周长

    一个课下小作业 输入圆的半径 xff0c 计算圆的面积和周长输出到控制台 输出格式 xff1a 3 14用Math PI代替 代码如下 NET 5 span class token keyword using span System spa
  • 蓝桥杯 成绩统计(Python)

    题目描述 小蓝给学生们组织了一场考试 xff0c 卷面总分为 100 分 xff0c 每个学生的得分都是一个 0 到 100 的整数 如果得分至少是 60 分 xff0c 则称为及格 如果得分至少为 85 分 xff0c 则称为优秀 请计算
  • 计算存款到期后的本息合计金额

    输入年利率 存款数额 存款年限 xff0c 到期后本息合计金额 years 没有使用 xff0c 是准备做把存款日期做选择用 xff0c 但是没写 xff0c 有兴趣可以自己加 if 做选择 代码 span class token keyw
  • 从键盘输入姓名及5门课成绩

    题目 从键盘输入学生姓名及其5门课成绩 xff08 语文 xff0c 数学 xff0c 英语 xff0c 物理 xff0c 化学 xff09 xff0c 输出5门课的总成绩及平均分 方法比较笨 xff0c 首先定义变量 xff08 字符串
  • 解决虚拟机开启后字体和图标过小的问题

    运行虚拟机到开机界面在虚拟机界面 xff0c 鼠标右键 xff0c 选 属性 点 设置 到如下界面 xff1a 将屏幕分辨率调整到图片所示 xff0c 点击 确定 后 xff0c 图标即可放大 可以根据自己的需要调整像素的大小
  • 将你的电脑远程连接树莓派的简单方法

    不使用网线或者显示器 键盘 鼠标等外接设备 xff0c 即可远程建立树莓派与电脑的连接 目录 1 提前准备 1 1 准备硬件 1 2 系统镜像 1 3 准备软件 2 烧录系统 3 使用ssh连接电脑热点 4 VNC远程控制连接树莓派桌面 1
  • DMA简介

    为什么要有 DMA 技术 dma主要是用于读写数据用的 在没有 DMA 技术前 xff0c I O 的过程是这样的 xff1a CPU 发出对应的指令给磁盘控制器 xff0c 然后返回 xff1b 磁盘控制器收到指令后 xff0c 于是就开
  • c语言冒泡法对10个整数进行递增排序

    分析 xff1a 冒泡法排序的思路是 xff0c 第一次排序对n个元素从头到尾反复进行相邻两个数的比较 xff0c 将小的调到前头 xff0c 第一趟冒泡结束后 xff0c 最大的元素就是数组序列中最后一个元素 xff0c 也就是它的最终位
  • 全网最详细的openstack安装教程

    前言 相信很多安装过openstack的人都知道 xff0c openstack的安装过程很麻烦 xff0c 总是需要修改文件 xff0c 并且还有一堆报错信息 xff0c 遇到一些报错也不知道怎么去解决 xff0c 所以这次就记录并分享一
  • 前缀极差

    前缀极差 蒜头君有 n 个数 xff0c 他提出了 q 个问题 xff0c 每个问题是说 xff0c 询问前 x 个数的极差 xff08 最大值减最小值 xff09 你能帮助他解决这 q 个问题吗 xff1f 输入格式 第一行两个整数 n
  • 「数据库SQL」 ‘三小时快速入门’

    目录 写在前面 数据类型 将自动补全改为默认大写字母的方法 视频 0 xff5e 1 39 11 39 30 对应代码及笔记 删除 修改资料 获得资料 创建公司资料库表格 获取公司资料 聚合函数 万用字元 联集 连接 子查询 写在前面 本篇
  • C++:将输出结果写入文件、从文件中读取数据

    应用背景 很多时候我们会使用语句 xff1a cout lt lt lt lt endl 来进行将某个变量的值展示在屏幕上 xff0c 但如果我们希望将这个结果写入文件中 该怎样操作呢 xff1f 下面展示了如何将输出结果写入txt文件之中
  • C++:set的常用用法详解

    1 关于set C 43 43 STL 之所以得到广泛的赞誉 xff0c 也被很多人使用 xff0c 不只是提供了像vector string list等方便的容器 xff0c 更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构
  • 计算分部积分实例:t^2 * e^2t 的积分

  • 采样定理扩展结论

    已知 xff1a x t 的奈奎斯特律为 y t 的奈奎斯特率为 那么有以下结论 x t y t 时域相乘 61 gt 频谱卷积 61 gt 新信号的奈奎斯特率为和的和 x t y t 时域卷积 61 gt 频谱相乘 61 gt 新信号的奈
  • Acwing:合适数对

    今天在补AcWing周赛题目的时候遇到了一道很经典的区间和问题 xff0c 因此写下本篇博客记录下来 原题链接 xff1a 4316 合适数对 AcWing题库 题目描述 输入样例1 xff1a 5 4 5 1 3 4 1 输出样例1 xf
  • 蓝桥杯:统计子矩阵(十三届省赛C++组)

    前言 xff1a 这道题目是矩阵类型题目经典题型 xff0c 解题大体思路是前缀和 43 双指针扫描 xff0c 在我这篇博客中 第十三届蓝桥杯省赛C 43 43 B组题解 第十三届蓝桥杯b组c 43 43 答案 正在黑化的KS的博客 CS

随机推荐

  • pyqt 之 QTableView listvview 添加复选框 Checkbox

    目录 简述 常见的实现方式 具体实现 1 自定义模型QAbstractTableModel xff0c 通过flags 函数来实现 2 自定义委托QAbstractItemDelegate xff0c 通过paint 函数来实现 3 QSt
  • 第十四届蓝桥杯模拟赛第三期(Python)

    写在前面 包含本次模拟赛的10道题题解能过样例 xff0c 应该可以AC若有错误 xff0c 欢迎评论区指出本次题目除了最后两题有些难度 xff0c 其余题目较为简单 xff0c 我只将代码和结果给出 xff0c 如果不能理解欢迎私信我 x
  • Acwing: 一道关于线段树的好题(有助于全面理解线段树)

    题目链接 x1f517 xff1a 2643 序列操作 AcWing题库 前驱知识 xff1a 需要理解线段树的结构和程序基本框架 以及懒标记的操作 题目描述 题目分析 对区间在线进行修改和查询 xff0c 一般就是用线段树来解决 xff0
  • 扩展欧几里得算法及其应用

    前言 由于数论的板子真的很抽象 xff0c 也很难背 xff0c 所以特此记录扩展欧几里得算法的板子和它的用途 本篇文章只涉及应用 xff0c 不涉及证明 xff0c 如需理解证明还请各位移步其他优秀的讲解 xff01 扩展欧几里得算法 先
  • 蓝桥杯:Python组再也不怕组合数计数

    有一类题目是是这样的 xff1a 要求我们从n个数中选m个 xff0c 问共有多少种取法 如果是用C 43 43 写的话 xff0c 要应用到Lucas定理 xff0c 暴力阶乘会超时 这里给大家介绍一个Python3 8 math库自带的
  • 模拟角频率和数字角频率的关系

    概念 xff1a 模拟频率f xff1a 每秒经历多少个周期 xff0c 单位Hz xff0c 即1 s xff1b 模拟角频率 xff1a 每秒经历多少弧度 xff0c 单位rad s xff1b 数字角频率w xff08 归一化角频率
  • 对于时不变系统的理解

    来源 xff1a 信号与系统 对 时不变性 判定的一点注记 知乎
  • 「STM32入门」TIM输出比较

    输出比较的简介 输出比较英文写作OC Output Compare 输出比较可以通过比较CNT和CCR寄存器值的关系 xff0c 来对输出电平进行置高或者置低或者翻转的操作 xff0c 用于输出一定频率和占空比的PWM波形常见应用例子如 x
  • 「数字信号处理」MATLAB设计 双音多频拨号系统

    前言 实验目的 xff1a 用Matlab模拟实现双音多频拨号系统 输入 xff1a 一串数字模拟电话号码 输出 xff1a 检测出的电话号码 Matlab版本 xff1a 2021b 系统 xff1a MacOS 实验方法 xff1a 查
  • 「STM32入门」TIM定时中断

    定时器的简介 定时器可以对输入的时钟进行计数 xff0c 并在计数值达到设定值时触发中断 xff0c 在中断内可以执行中断事件不仅具备基本的定时中断功能 xff0c 而且还包含内外时钟源选择 xff0c 主从触发模式 xff0c 输入捕获
  • 二极管反向恢复过程详细解析

    二极管反向恢复过程 xff0c 现代脉冲电路中大量使用晶体管或二极管作为开关 或者使用主要是由它们构成的逻辑集成电路 而作为开关应用的二极管主要是利用了它的通 电阻很小 断 电阻很大 特性 即二极管对正向及反向电流表现出的开关作用 二极管和
  • 性能优化总结

    性能优化关注点 从图中可以看出 xff0c 性能优化的主要关注 xff1a CPU 内存 磁盘IO 网络IO等四个方面 性能指标 每个关注点都有对应的指标 xff0c 吞吐率 响应时间 QPS IOPS TP99 资源使用率是我们经常关注的
  • Python:优先队列的使用及类的自定义比较函数

    Priority queue模块 该模块定义的优先级队列 xff0c 其内部使用了 heapq 模块 xff0c 所以它的时间复杂度和heapq是相同的 当一个对象的所有元素都是可比较的时 xff0c 默认情况下是根据队列中的对象的第一个元
  • 「STM32入门」USART串口通信

    通信 通信的目的 xff1a 将一个设备的数据传送到另一个设备 xff0c 扩展硬件系统 通信协议 xff1a 制定通信的规则 xff0c 通信双方按照协议规则进行数据收发 STM32常见的通信协议 本文将介绍USART 概念解释 TX R
  • 「数字信号处理」采样过程与内插恢复完整图解

    内插与采样的关系 来源 xff1a 数字信号处理 采样与内插 DSP期末知识点题型4 哔哩哔哩 bilibili
  • 配置vscode作为STM32代码的编辑器(替代keil5)。实现:代码自动补全, 编译,下载。nRF52也可以编译。

    STM32CubeMX新建好工程在工程根目录新建文件夹 vscode在 vscode 文件夹内新建文件c cpp properties json 34 configurations 34 34 name 34 34 STM32 34 任意的
  • Python中的字典

    1 字典概念 Python内置的数据结构之一 xff0c 与列表一样是一个可变序列 以键值对的方式存储数据 xff0c 字典是一个无序的序列 xff08 列表是有序的 xff09 字典通过计算key的hash值确定存储位置 xff0c 所以
  • docker中使用cuda

    需要注意的事项 1 注意应用NVIDIA在docker hub上提供的镜像 本次使用的是 nvidia cuda 10 1 cudnn7 devel ubuntu18 04 2 在宿主机安装 nvidia docker2 3 运行时 要加
  • Mysql8.0 忘记密码怎么办

    Mysql8 0 忘记密码怎么办 今天晨雨帮身边小伙伴解决了mysql8 0无法连接上的问题 中间碰到的一些问题和大家分享一下 跳过密码登录时不成功修改密码时不成功navicat连接时报 2000的问题 1 首先先停止mysql服务 可通过
  • Kurento实战之二:快速部署和体验,Java笔试题编程题

    GitCommit 269548fa27e0089a8b8278fc4fc781d7f65a939b runc Version 1 0 0 rc92 GitCommit ff819c7e9184c13b7c2607fe6c30ae19403