【音视频】WebRTC 开发环境搭建-Web端

一、开发环境搭建

1.1 安装vscode

下载VSCode:https://code.visualstudio.com/,下载后主要用于开发Web前端页面,编写前端代码

安装完成后下载Live Server插件,用于本地开发,实时加载前端页面

在这里插入图片描述

1.1.1 前端代码测试

下面是一个简单的前端代码,使用了htmlJavaScript

<!DOCTYPE html>
<html><body><h2>Body 中的 JavaScript</h2><p id="demo">一个段落。</p><button type="button" onclick="myFunction()">试一试</button><script>function myFunction() {document.getElementById("demo").innerHTML = "段落已被更改。";}</script></body>
</html>

在这个页面右键选择Open witn Live Server,即可在浏览器查看本地页面

在这里插入图片描述

效果如下:

在这里插入图片描述

1.3 安装node.js

在Ubuntu下,使用wget命令下载node.js的安装包

wget https://nodejs.org/dist/v0.10.16/node-v0.10.16-linux-x64.tar.gz

下载后解压

tar -xvf node-v0.10.16-linux-x64.tar.gz 

为了方便我们启动nodenpm命令,我们可以将安装好的可执行文件的路径,软链接到系统路径/usr/local/bin目录下,这样在任意位置都可以启动这个,类似环境变量的感觉

sudo ln -s /home/liuhang/webrtc/node-v0.10.16-linux-x64/bin/npm /usr/local/bin
sudo ln -s /home/liuhang/webrtc/node-v0.10.16-linux-x64/bin/node /usr/local/bin

配置完成后,测试一下是否可以执行对应的可执行文件

node -v
npm -v

在这里插入图片描述

1.4 下载coturn

coturn 是一款开源的 STUN/TURN 服务器实现,全称为 “Core TURN Server”,由 RFC 5766(TURN 协议)和 RFC 5389(STUN 协议)的主要作者之一开发,是目前 WebRTC 实时通信场景中最常用的 STUN/TURN 服务器解决方案。

克隆github的仓库,下载coturn源码

git clone https://github.com/coturn/coturn

下载完成后,进入到coturn文件夹下

cd coturn

监检测前环境、生成Makefile,然后就可以执行编译、安装指令了

./confuture
sudo make -j8 && sudo make install

1.4.1 测试coturn服务器

按照下述指令,启动我们的服务器,添加&表示后台启动

sudo nohup turnserver ‐L 0.0.0.0 ‐a ‐u liuhang:123456 ‐v ‐f ‐r nort.gov &

然后使用lsof -i命令查看出3478端口被占用的情况,如果出现LISTEN字段,说明服务器启动起来的

sudo lsof -i:3478

在这里插入图片描述

如果搭建在公网的话,还可以使用下述官方网址进行测试,由于我这里是搭建在虚拟机,所以就不测试了

测试网址:https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

更多资料:https://github.com/0voice

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/91247.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/91247.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣54:螺旋矩阵

力扣54:螺旋矩阵题目思路代码题目 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 思路 思路很简单创建一个二维数组然后按照箭头所示的顺序一层一层的给二维数组相应的位置赋值即可。难点是我们是一层一层的赋值…

【CSS】设置表格表头固定

1.设置thead样式在thead元素中增加样式&#xff1a;position: sticky;top: 0;2.设置table样式在table元素中增加样式&#xff1a;border-collapse: separate; /* 分离边框模式 */ border-spacing: 0;3.设置表头伪元素样式增加样式&#xff1a;th::after {content: ;position: a…

Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现标签条码一维码的检测(C#代码,UI界面版)

Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现标签条码一维码的检测&#xff08;C#代码&#xff0c;UI界面版&#xff09;&#xff09;工业相机使用YoloV8模型实现标签条码一维码的检测工业相机通过YoloV8模型实现标签条码的检测的技术背景在相机SDK中获取图像转换…

如何编写好的测试用例?

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快对于软件测试工程师来说&#xff0c;设计测试用例和提交缺陷报告是最基本的职业技能。是非常重要的部分。一个好的测试用例能够指示测试人员如何对软件进行测试。在…

《Java 程序设计》第 12 章 - 异常处理

大家好&#xff01;今天我们来学习《Java 程序设计》中的第 12 章 —— 异常处理。在编程过程中&#xff0c;错误和异常是不可避免的。一个健壮的程序必须能够妥善处理各种异常情况。本章将详细介绍 Java 中的异常处理机制&#xff0c;帮助大家编写出更稳定、更可靠的 Java 程序…

STM32CubeIDE新建项目过程记录备忘(二) GPIO输出demo:LED闪烁

利用前面创建好的基础模板项目文件&#xff0c;创建第一个应用项目&#xff0c;单片机的hello world&#xff1a;LED闪烁。打开模板文件文件--从文件系统中打开项目&#xff1a;在弹出的窗口中选择之前创建的模板项目文件并打开。复制粘贴新项目 在项目管理器&#xff0c;复制之…

HTML基础P2 | JS基础讲解

什么是JS JS是一个网页的脚本语言&#xff0c;你可以理解为在HTML中写类似于JAVA等高级编程语言的代码&#xff0c;使得网页可以实现一些包含逻辑处理的交互操作 简单上手例子 接下来&#xff0c;给大家一个简单的小例子来感受一下 <!DOCTYPE html> <html lang&qu…

QT笔记(2)——vscode + CMAKE + qtcreate的操作方式

1.vscode 下载cmake&#xff0c;clangd&#xff0c;qtConfigure&#xff0c;cmake tool的相关插件支持 2. qtConfigure插件配置 根据自己下载的qt目录下寻找如图的相关工具 3. qt环境变量配置 在系统变量的path中添加qt编译需要的环境变量。 4.下载Cmake支持 CMake下…

sed编程入门

一.sed是啥sed&#xff08;流编辑器&#xff0c;Stream Editor&#xff09;是 Unix/Linux 系统中强大的文本处理工具&#xff0c;常用于对文本进行替换、删除、插入、追加等操作。它逐行处理输入文本&#xff0c;并根据提供的脚本命令修改文本&#xff0c;最后输出结果。二.基本…

知识速查大全:python面向对象基础

目录 一、面向对象的基本概念 二、类和对象 1.类 2.对象 三、属性&#xff08;数据&#xff09;和方法 1.数据 1.1.实例数据 1.2.类数据 2.方法 2.1.实例方法 2.2.类方法 3.数据和方法的综合使用 四、面向对象三大特性 1.封装 2.继承 2.1.单继承 2.2.多继承 2.3.混合类 2.4.方法…

Linux系统编程Day1-- 免费云服务器获取以及登录操作

一、 学生党如何“白嫖”或免费使用云服务器&#xff1f; 作为学生党&#xff0c;资金有限的情况下确实不容易长期负担服务器费用。但好消息是&#xff0c;有多种方式可以“白嫖”或低成本使用云服务器&#xff0c;尤其是针对学生身份、学习用途和开发者计划。 1、使用各大云平…

15.11 单卡训练770M参数模型!DeepSpeed ZeRO-3实战:RTX 4090显存直降6.8GB

单卡训练770M参数模型!DeepSpeed ZeRO-3实战:RTX 4090显存直降6.8GB 实战 DeepSpeed ZeRO-2 和 ZeRO-3 单机单卡训练 为什么需要单机单卡训练场景? 虽然 DeepSpeed 的 ZeRO 技术主要面向分布式训练场景,但单机单卡训练仍然具有重要实践价值: 开发调试:在资源有限情况下…

HTTPS基本工作过程:基本加密过程

HTTPS基本工作过程&#xff1a;HTTPS只是HTTP的基础上引入加密机制1.引入对称加密首先&#xff0c;什么是对称加密和非对称加密&#xff1f;对称加密&#xff1a;使用同一把密钥加密解密非对称加密&#xff1a;有两把密钥&#xff0c;为公钥&#xff08;公开的&#xff09;和私…

ES 文件浏览器:多功能文件管理与传输利器

ES 文件浏览器是一款功能强大的文件管理器软件&#xff0c;支持多种文件传输协议&#xff0c;能够方便地管理手机、平板电脑和电脑中的文件。它不仅提供了丰富的文件管理功能&#xff0c;还支持多种设备之间的文件传输&#xff0c;满足用户在不同场景下的需求。 核心功能 1. 文…

github-idea新建文件就要弹窗提醒-如何关闭-2025.7.30

打开设置 进入 File&#xff08;文件&#xff09; > Settings&#xff08;设置&#xff09;。 导航到版本控制设置&#xff1a; 在左侧导航栏中&#xff0c;展开 Version Control&#xff08;版本控制&#xff09;。 选择 Confirmation&#xff08;确认&#xff09;。修改文…

滚珠导轨在电子制造中的流畅性优势

在电子元件微米级精度要求的搬运与装配环节&#xff0c;传统导轨易因摩擦、磨损导致定位偏差或设备抖动。而滚珠导轨凭借滚动摩擦设计&#xff0c;将滑动阻力降低80%以上&#xff0c;成为高精度电子制造设备的首选传动部件。微米级精度&#xff1a;在贴片机中&#xff0c;滚珠导…

数据结构——单链表1

1. 单链表1.1 概念与结构概念&#xff1a;链表是一种物理存储结构上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接次序实现的。1.1.1 结点与顺序表不同的是&#xff0c;链表里的每节都是独立申请下来的空间&#xff0c;我们称之为“节点/结点…

STM32CubeMX + HAL库:基于DHT11温湿度监测实现

1. 概述1.1 实验目的本实验旨在利用 DHT11 温湿度传感器&#xff0c;每隔 5 秒采集一次环境的温度与湿度数据&#xff0c;并通过串口将数据循环打印输出。所使用的 DHT11 模块硬件结构简单&#xff0c;包含三个接口引脚&#xff1a;电源正极&#xff08;VCC&#xff09;、电源负…

常见排序的特性总结

目录 1.排序的稳定性 2.直接插入排序的特性总结 3.希尔排序的特性总结 4.直接选择排序的特性总结 5.堆排序的特性总结 6.冒泡排序的特性总结 7.快速排序的特性总结 8.归并排序的特性总结 9.计数排序的特性总结 10.总结 1.排序的稳定性 排序的稳定性是说 相同大小的元…

【硬件-笔试面试题】硬件/电子工程师,笔试面试题-49,(知识点:OSI模型,物理层、数据链路层、网络层)

目录 1、题目 2、解答 OSI 七层模型的分层及功能&#xff08;从下到上&#xff09; 1. 物理层&#xff08;Physical Layer&#xff09; &#xff1a;网卡的物理接口、网线、光纤、集线器 2. 数据链路层&#xff08;Data Link Layer&#xff09;&#xff1a;交换机&#xf…