WebRTC搭建与应用(一)-ICE服务搭建

WebRTC搭建与应用(一)

近期由于项目需要在研究前端WebGL渲染转为云渲染,借此机会对WebRTC、ICE信令协议等有了初步了解,在此记录一下,以防遗忘。

第一章 ICE服务搭建

文章目录

前言

之前工作主要集中于桌面端和前端的轻量化图形渲染与数据组织,服务端相关技术主要是接口调用,没有什么技术积累,本次搭建工作属于摸着石头过河。

最开始在本地测试WebRTC点对点传输没有任何问题,但是跨电脑测试时会提示ICE失败,所以还是得研究一下什么是ICE。

一、ICE是什么?

ICE即交互式连通建立方式(Interactive Connectivity Establishment),ICE并非一种新的协议,而是通过综合运用某几种协议(STUN、TURN等),使之在最适合的情况下工作,以弥补单独使用其中任何一种所带来的固有缺陷。

基于IP的语音、数据、视频等业务在网络中所面临的一个实际困难就是如何有效地穿透各种NAT(Network Address Translator:网络地址转换)以及FW(Fire Wall:防火墙)的问题。对此,SIP(会话初始化协议)以往的解决方法由ALGs(Application Layer Gateway Service:应用层网关)、STUN、TURN等方式。

二、什么是STUN、TURN

STUN(Session Traversal Utilities for NAT)即网络地址转换会话穿越应用程序。STUN提供了一种方式使一个端点能够确定NAT分配的和本地私有IP地址和端口相对应的公网IP地址和端口以及NAT的类型信息。它也为端点提供了一种方式保持一个NAT绑定不过期。NAT绑定过期则表示为相同的内网地址重新分配外网地址也就是端口号。

TURN(Traversal Using Relay NAT)即网络地址转换中继穿越协议。

TURN与STUN的共同点都是通过修改应用层中的私网地址达到NAT穿透的效果,不同点是TURN是通过两方通讯的"中间人"方式实现穿透。

三、Coturn开源框架

Coturn 是一种开源服务器框架用于实现 TURN及STUN协议,用于解决 NAT 穿透问题。它帮助客户端在受限网络环境(例如防火墙或 NAT 后面)中实现双向通信。

环境准备

Coturn主要部署在Linux系统中,本次测试采用华为云服务器Ubuntu 24.04版本。

部署过程

1.Ubuntu开启图形桌面化

之前仅通过FinalShell远程连接过Ubuntu系统的命令行模式,此次是本人第一次操刀服务器使用,说来惭愧,各种坑各种不会,所以好好记录一下一路的曲折。

sudo startx 启动图形用户界面;

如果失败,查看是否安装了图形界面,如果没有,可按下述流程安装:

(1)确保apt源可用并更新源

sudo apt-get update

(2)安装桌面图形化显示

sudo apt-get install ubuntu-desktop

(3)设置默认开启方式为图形化界面显示

sudo systemctl set-default graphical.target

(4)重启

reboot

2.Windows远程连接Ubuntu

对于前端开发人员来说一般都是在Windows环境进行开发,如果想要连接到Ubuntu服务器进行操作和测试,需要进行一些配置。

Windows的远程桌面使用的协议为RDP,首先需要在Ubuntu的操作系统中安装xrdp。

sudo apt-get install tightvncserver xrdp

安装完成后,在Windows中通过远程桌面连接输入Ubuntu的ip以及用户名、密码即可实现远程连接。

3 安装Coturn

安装过程请参考:

https://blog.csdn.net/yushangyong/article/details/129973873

切记:listening-port设置的监听端口一定要将TCP和UDP都开放,min-port和max-port设置的端口一定要将UDP开放对外,否则会无法连接。

以下是中文版TURN服务测试地址

https://docs.wildfirechat.cn/webrtc/trickle-ice/

总结

以上步骤如果都正确完成以后,那恭喜你WebRTC的长征迈出了坚实的一步,下面就要开始研究点对点通信以及WebRTC推流了,后续有时间在尝试一下使用docker部署Coturn,我们下一章继续WebRTC之旅。

相关推荐
Leventure_轩先生19 小时前
[展示]Webrtc NoiseSuppressor降噪模块嵌入式平台移植
webrtc
科技小E19 小时前
EasyRTC:基于WebRTC与P2P技术,开启智能硬件音视频交互的全新时代
网络·网络协议·小程序·webrtc·p2p·智能硬件·视频监控
EasyNVR2 天前
EasyRTC智能硬件:实时畅联、沉浸互动、消音护航
运维·服务器·网络·安全·音视频·webrtc·p2p
EasyNVR2 天前
EasyRTC:全平台支持与自研算法驱动的智能音视频通讯解决方案
运维·服务器·小程序·音视频·webrtc·p2p·智能硬件
Black蜡笔小新2 天前
AI大模型驱动的智能音视频通信:视频通话SDK工具EasyRTC在嵌入式设备中的应用探索
人工智能·语言模型·大模型·音视频·webrtc·rtc
科技小E2 天前
EasyRTC:轻量化SDK赋能嵌入式设备,开启智能硬件音视频通讯新篇章
网络·网络协议·音视频·webrtc·视频监控
Black蜡笔小新3 天前
WebRTC嵌入式视频通话SDK:EasyRTC从免插件到轻量级带来的音视频通话技术
音视频·webrtc·sdk·rtc·webp2p
EasyNVR3 天前
EasyRTC:开启智能硬件与全平台互动新时代
网络·音视频·webrtc·p2p·智能硬件·视频监控
EasyGBS3 天前
从开发到部署:EasyRTC嵌入式视频通话SDK如何简化实时音视频通信的集成与应用
音视频·webrtc·实时音视频·视频监控
EasyNVR4 天前
智能硬件新时代,EasyRTC开启物联音视频新纪元
运维·服务器·音视频·webrtc·p2p·智能硬件·视频监控