【ai】livekit服务本地开发模式及example app信令交互详细流程

  • 文档要安装git lfs
  • 下载当前最新版本1.6.1

在这里插入图片描述

windows版本:启动dev模式

在这里插入图片描述

服务器启动

在这里插入图片描述

(.venv) PS D:\XTRANS\pythonProject\LIVEKIT> cd .\livekit_release\
(.venv) PS D:\XTRANS\pythonProject\LIVEKIT\livekit_release> ls


    Directory: D:\XTRANS\pythonProject\LIVEKIT\livekit_release


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         5/29/2024     11:20       21477249 livekit-cli_1.4.3_windows_amd64.zip
-a----         4/27/2024     03:11       29753856 livekit-server.exe
-a----         5/29/2024     11:17       10440081 livekit_1.6.1_windows_amd64.zip


(.venv) PS D:\XTRANS\pythonProject\LIVEKIT\livekit_release> .\livekit-server.exe -dev        
2024-05-29T11:29:40.070+0800    INFO    livekit server/main.go:208      starting in development mode
2024-05-29T11:29:40.071+0800    INFO    livekit server/main.go:211      no keys provided, using placeholder keys        {"API Key": "devkey", "API Secret": "secret"}
2024-05-29T11:29:40.071+0800    ERROR   livekit hwstats/cpu_null.go:37  CPU monitoring unsupported on current platform. Server capacity management will be disabled
github.com/livekit/protocol/utils/hwstats.newPlatformCPUMonitor
        /home/runner/go/pkg/mod/github.com/livekit/protocol@v1.14.1-0.20240426104403-e7962f444464/utils/hwstats/cpu_null.go:37
github.com/livekit/protocol/utils/hwstats.NewCPUStats
        /home/runner/go/pkg/mod/github.com/livekit/protocol@v1.14.1-0.20240426104403-e7962f444464/utils/hwstats/cpu.go:46
github.com/livekit/livekit-server/pkg/telemetry/prometheus.Init
        /home/runner/go/pkg/mod/github.com/livekit/livekit-server@v1.6.1/pkg/telemetry/prometheus/node.go:119
main.startServer
        /home/runner/go/pkg/mod/github.com/livekit/livekit-server@v1.6.1/cmd/server/main.go:275
github.com/urfave/cli/v2.(*Command).Run
        /home/runner/go/pkg/mod/github.com/urfave/cli/v2@v2.27.1/command.go:279
github.com/urfave/cli/v2.(*App).RunContext
        /home/runner/go/pkg/mod/github.com/urfave/cli/v2@v2.27.1/app.go:337
github.com/urfave/cli/v2.(*App).Run
        /home/runner/go/pkg/mod/github.com/urfave/cli/v2@v2.27.1/app.go:311
main.main
        /home/runner/go/pkg/mod/github.com/livekit/livekit-server@v1.6.1/cmd/server/main.go:185
runtime.main
        /opt/hostedtoolcache/go/1.22.2/x64/src/runtime/proc.go:271
2024-05-29T11:29:40.072+0800    INFO    livekit routing/interfaces.go:110       using single-node routing
2024-05-29T11:29:40.128+0800    INFO    livekit service/server.go:243   starting LiveKit server {"portHttp": 7880, "nodeID": "ND_5fUotUdPwB5P", "nodeIP": "169.254.25.153", "version": "1.6.1", "bindAddresses": ["127.0.0.1", "::1"], "rtc.portTCP": 7881, "rtc.portUDP": {"Start":7882,"End":0}}
2024-05-29T11:29:40.129+0800    INFO    livekit service/server.go:245   Windows detected, capacity management is unavailable
2024-05-29T11:29:40.129+0800    DEBUG   livekit service/signal.go:122   starting relay signal server    {"topic": "ND_5fUotUdPwB5P"}

命令行配置工具启动并创建

在这里插入图片描述

(.venv) PS D:\XTRANS\pythonProject\LIVEKIT\livekit_release> .\livekit-cli.exe create-token   --api-key devkey --api-secret secret  --join --room my-first-room --identity user1 --valid-for 24h
valid for (mins):  1440
token grants
{
  "roomJoin": true,
  "room": "my-first-room"
}

access token:  eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MTcwNDAyNTUsImlzcyI6ImRldmtleSIsIm5hbWUiOiJ1c2VyMSIsIm5iZiI6MTcxNjk1Mzg1NSwic3ViIjoidXNlcjEiLCJ2aWRlbyI6eyJyb29tIjoibXktZmlyc3Qtcm9vbSIsInJvb21Kb2luIjp0cnVlfX0.7Dp4eEO6PL-wgfohVYpk5PikMe-ANTnVzz9FCxwxQqA
(.venv) PS D:\XTRANS\pythonProject\LIVEKIT\livekit_release> 

有example app 做测试

  • test with example app
  • 输入一个访问token:
access token:  eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MTcwNDAyNTUsImlzcyI6ImRldmtleSIsIm5hbWUiOiJ1c2VyMSIsIm5iZiI6MTcxNjk1Mzg1NSwic3ViIjoidXNlcjEiLCJ2aWRlbyI6eyJyb29tIjoibXktZmlyc3Qtcm9vbSIsInJvb21Kb2luIjp0cnVlfX0.7Dp4eEO6PL-wgfohVYpk5PikMe-ANTnVzz9FCxwxQqA

  • 然后connect 到 自己的服务器 。

Head over to our example app and enter a generated token to connect to your LiveKit server. This app is built with our React SDK.
Once connected, your video and audio are now being published to your new LiveKit instance!

  • 服务器的地址填啥啊:

在这里插入图片描述

wss://127.0.0.1:7880

在这里插入图片描述

测试服务只有http端口:ws://127.0.0.1:7880

在这里插入图片描述

连接成功

在这里插入图片描述

connecting to ws://127.0.0.1:7880/rtc?access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MTcwNDAyNTUsImlzcyI6ImRldmtleSIsIm5hbWUiOiJ1c2VyMSIsIm5iZiI6MTcxNjk1Mzg1NSwic3ViIjoidXNlcjEiLCJ2aWRlbyI6eyJyb29tIjoibXktZmlyc3Qtcm9vbSIsInJvb21Kb2luIjp0cnVlfX0.7Dp4eEO6PL-wgfohVYpk5PikMe-ANTnVzz9FCxwxQqA&auto_subscribe=1&sdk=js&version=2.1.5&protocol=13&adaptive_stream=1 

在这里插入图片描述

ping

在这里插入图片描述

连接到livkit服务

在这里插入图片描述

房间

在这里插入图片描述

音频track

-在这里插入图片描述

视频track

在这里插入图片描述

屏幕共享

在这里插入图片描述

收到了服务端发来的offer

在这里插入图片描述

"v=0
o=- 3539670089777133376 1716954452 IN IP4 0.0.0.0
s=-
t=0 0
a=msid-semantic:WMS*
a=fingerprint:sha-256 45:14:D4:79:B6:18:BA:9B:34:F1:CF:DA:66:AA:EA:07:83:5B:A3:5A:C5:46:47:D8:94:DB:26:F5:CD:B7:4C:E3
a=extmap-allow-mixed
a=group:BUNDLE 0
m=application 9 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 0.0.0.0
a=setup:actpass
a=mid:0
a=sendrecv
a=sctp-port:5000
a=ice-ufrag:gSTaoeYEXVclkirW
a=ice-pwd:eiWMcXuxMaLrXfPGjLYwBvZwejtSHAZE
"

在这里插入图片描述

设置本地SDP

在这里插入图片描述

发送answer

在这里插入图片描述
在这里插入图片描述

"v=0
o=- 8490693211729429077 2 IN IP4 127.0.0.1
s=-
t=0 0
a=extmap-allow-mixed
a=msid-semantic:  WMS
a=group:BUNDLE 0
m=application 9 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 0.0.0.0
a=setup:active
a=mid:0
a=ice-ufrag:+brm
a=ice-pwd:g3FGDMFwFFY2tLEzG3v+WKOh
a=fingerprint:sha-256 37:9B:7C:99:8D:13:69:06:B5:D5:66:C0:67:3E:C0:BC:21:B3:A7:68:7C:B1:03:E5:8C:24:C0:52:06:B9:F7:28
a=ice-options:trickle
a=sctp-port:5000
"

pc状态改变:从new 到连接ing

在这里插入图片描述

主要pc状态改变

在这里插入图片描述

pc状态从connecting到connectd

在这里插入图片描述

主要pc状态改变2

在这里插入图片描述

更新track的订阅权限

在这里插入图片描述

datachannel1 : reliable

在这里插入图片描述
在这里插入图片描述

datachanel3 : lossy

在这里插入图片描述

room event : 状态改变为connected

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

发布一个track publishing track

在这里插入图片描述

收到了track发布应答 received trackPublishedResponse

在这里插入图片描述

更新发布信息 、track信息

在这里插入图片描述
在这里插入图片描述

发布音频:携带编码信息

在这里插入图片描述

开始协商

在这里插入图片描述

开始 munged 本地描述

在这里插入图片描述

发送offer

在这里插入图片描述

"v=0
o=- 8396030922318899904 2 IN IP4 127.0.0.1
s=-
t=0 0
a=extmap-allow-mixed
a=msid-semantic: WMS 8d171c18-977d-4ba2-b592-97e1a7f62532
a=group:BUNDLE 0 1
m=audio 9 UDP/TLS/RTP/SAVPF 111 63 9 0 8 13 110 126
c=IN IP4 0.0.0.0
a=rtpmap:111 opus/48000/2
a=rtpmap:63 red/48000/2
a=rtpmap:9 G722/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:13 CN/8000
a=rtpmap:110 telephone-event/48000
a=rtpmap:126 telephone-event/8000
a=fmtp:111 minptime=10;useinbandfec=1
a=fmtp:63 111/111
a=rtcp:9 IN IP4 0.0.0.0
a=rtcp-fb:111 transport-cc
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid
a=setup:actpass
a=mid:0
a=msid:8d171c18-977d-4ba2-b592-97e1a7f62532 6626e558-44bc-4a1a-a364-173503f39c02
a=sendonly
a=ice-ufrag:Os7Y
a=ice-pwd:uh13Zyrm3ScOX1g1/OpRacbx
a=fingerprint:sha-256 DA:09:84:61:32:BA:B7:99:54:2D:1D:B5:F6:F0:DE:10:45:2F:66:0B:D2:6B:F6:B7:B4:62:7C:19:17:DC:D6:74
a=ice-options:trickle
a=ssrc:3723991868 cname:5f/brAKhc+jUMDn7
a=ssrc:3723991868 msid:8d171c18-977d-4ba2-b592-97e1a7f62532 6626e558-44bc-4a1a-a364-173503f39c02
a=rtcp-mux
m=application 9 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 0.0.0.0
a=setup:actpass
a=mid:1
a=ice-ufrag:Os7Y
a=ice-pwd:uh13Zyrm3ScOX1g1/OpRacbx
a=fingerprint:sha-256 DA:09:84:61:32:BA:B7:99:54:2D:1D:B5:F6:F0:DE:10:45:2F:66:0B:D2:6B:F6:B7:B4:62:7C:19:17:DC:D6:74
a=ice-options:trickle
a=sctp-port:5000
a=max-message-size:262144
"

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MyBatis入门——MyBatis的基础操作(2)

目录 一、打印日志 二、参数传递 常见错误:使用对象接受 小结: 三、增(Insert) 返回主键 四、删(Delete) 五、改(Update) 六、查(Select) 1、起别名…

【wiki知识库】03.前后端的初步交互(展现所有的电子书)

📝个人主页:哈__ 期待您的关注 目录 一、🔥今日目标 二、📂前端配置文件补充 三、🌏前端Vue的改造 四、💡总结 一、🔥今日目标 在上一篇文章当中,我已带大家把后端的一些基本工…

最新微信发卡小程序 发卡网卡密系统流支持量主

2024.4更新 1.修复分类介绍报错 2.修改前端UI 3.增加插屏弹出广告 4.禁止PC端使用(PC端小程序没有广告) 免费下载:发卡小程序 卡密系统流支持量主 多种卡密领取模式【亲测】_麦田吧 前端演示地址:扫码查看 源码功能: 小程序系统/多种卡密领…

vscode远程登录阿里云服务器【使用密钥方式--后期无需再进行密码登录】【外包需要密码】

1:windows主机上生成【私钥】【公钥】 1.1生成公钥时不设置额外密码 1.2生成公钥时设置额外密码【给外包人员使用的方法】 2:在linux服务器中添加【公钥】 3:本地vscode连接linux服务器的配置 操作流程如下 1.1本地终端中【生成免密登录…

14.微信小程序之地理定位功能

目录 1.地理定位介绍 1.1 申请开通 1.2 使用方法 2.拒绝授权后的解决方案 3.开通腾讯位置服务 4.LBS 逆地址解析 1.地理定位介绍 小程序地理定位是指通过小程序开发平台提供的 API,来获取用户的地理位置信息。用户在使用小程序时,可以授权小程序获…

MySQL 数据表的基本操作

文章目录 【 1. MySQL 创建数据表 】【 2. MySQL 查看表 】2.1 DESCRIBE/DESC 以表格的形式展示表2.2 SHOW CREATE TABLE 以SQL语句的形式展示表 【 3. 修改数据表 】3.1 修改表名3.2 修改表字符集3.3 添加字段在末尾添加字段在开头添加字段在中间添加字段 3.3 修改/删除字段修…

Nginx的配置与调试

目录 1、安装Nginx 2、Nginx的配置文件结构 2.1 Nginx的全局配置 2.2 HTTP服务器配置 2.3 HttpGzip模块配置 2.4 负载均衡配置 2.5 server虚拟主机配置 2.6 location URL匹配配置 2.7 StubStatus模块配置 1、安装Nginx 在安装Nginx之前,需确保系统已经安装…

【计算机网络】P1 计算机网络概念、组成、功能、分类、标准化工作以及性能评估指标

目录 1 什么是计算机网络2 计算机网络的组成2.1 组成部分上2.2 工作方式上2.3 功能组成上 3 计算机网络的功能3.1 数据通信3.2 资源共享3.3 分布式处理3.4 提高可靠性3.5 负载均衡 4 计算机网络的分类4.1 按分布范围分类4.2 按传输技术分类4.3 按照拓扑结构分类4.4 按使用者分类…

vue项目中使用json编辑器

实现效果&#xff1a; 借助插件json-editor-vue3实现效果如图一&#xff0c;如果嫌丑可以通过类名改一下样式如图二。 实现过程&#xff1a; 安装插件&#xff1a;npm install json-editor-vue3 文档链接&#xff1a;GitCode - 开发者的代码家园 <script setup name&quo…

一次收获颇丰的Google漏洞挖掘旅程

本文由安全专家Henry N. Caga于2024年03月23日发表在InfoSecWrite-ups网站&#xff0c;本文记录了Henry N. Caga的一次漏洞挖掘过程&#xff0c;此次漏洞挖掘的成果得到了Google官方认可&#xff0c;拿到了4133.70美元的漏洞奖金&#xff0c;并让他成功进入了Google名人堂。本文…

C++第二十一弹---vector深度剖析及模拟实现(上)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】 目录 1、基本结构 2、默认成员函数 2.1、构造函数 2.2、析构函数 2.3、拷贝构造函数 2.3、赋值操作符重载 3、数据访问 4、迭代器获取 总结 …

08.tomcat多实例

在加两个tomcat实例 [rootweb01 ~]# ll apache-tomcat-8.0.27.tar.gz -rw-r--r-- 1 root root 9128610 10月 5 2015 apache-tomcat-8.0.27.tar.gz [rootweb01 ~]# tar xf apache-tomcat-8.0.27.tar.gz [rootweb01 ~]# cp -a apache-tomcat-8.0.27 tomcat_8081 [rootweb01 ~…

基于单片机的操作平台数据采集网关设计与实现

摘  要&#xff1a; 由于传统网关无法实现数据实时交换&#xff0c;数据传输速率较低&#xff0c;为此提出基于单片机的操作平台数据采集网关设计与实现研究。首先&#xff0c;结合单片机具有的显著优势对网关结构选型设计&#xff1b;其次&#xff0c;参照一体化设计理念&…

深兰科技获评2024年度人工智能出海先锋奖

5月25日&#xff0c;以“亚洲新势力&#xff1a;创新、融合与可持续发展”为主题的亚洲品牌经济峰会2024深圳会议在深圳益田威斯汀酒店举办。本次活动由中国亚洲经济发展协会指导&#xff0c;亚洲国际品牌研究院主办&#xff0c;旨在搭建品牌创新与经济发展交流平台&#xff0c…

nginx安装部署问题

记一次nginx启动报错问题处理 问题1 内网部署nginx&#xff0c;开始执行make&#xff0c;执行不了&#xff0c;后面装了依赖的环境 yum install gcc-c 和 yum install -y pcre pcre-devel 问题2&#xff0c;启动nginx报错 解决nginx: [emerg] unknown directive “stream“ in…

java版本数字化时代的智能ERP管理系统:引 领企业高 效管理与创新发展

随着数字化浪潮的席卷&#xff0c;现代企业对于高 效、稳定、易于扩展的管理系统需求愈发迫切。为了满足这一需求&#xff0c;我们倾力打造了一款基于Java技术的企业级资源规划&#xff08;ERP&#xff09;管理系统。该系统以Spring Cloud Alibaba、Spring Boot、MybatisPlus、…

[Linux打怪升级之路]-进程和线程

前言 作者&#xff1a;小蜗牛向前冲 名言&#xff1a;我可以接受失败&#xff0c;但我不能接受放弃 如果觉的博主的文章还不错的话&#xff0c;还请点赞&#xff0c;收藏&#xff0c;关注&#x1f440;支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、进程 1…

[UE5]安卓调用外置摄像头拍照(之显示画面)

目录 部分参考文献&#xff08;有些有用的我没标&#xff0c;没放上来&#xff09; 要点 总蓝图 结果 部分参考文献&#xff08;有些有用的我没标&#xff0c;没放上来&#xff09; 【UE】获取USB摄像头画面_虚幻捕获硬件摄像头-CSDN博客 UE4安卓调用摄像头拍照确保打…

C#中结构struct能否继承于一个类class,类class能否继承于一个struct

C#中结构struct能否继承于一个类class&#xff0c;类class能否继承于一个struct 答案是&#xff1a;都不能。 第一种情行&#xff0c;尝试结构继承类 报错&#xff1a;接口列表中的类型"XX"不是接口interface。 一般来说&#xff0c;都是结构只能实现接口&#x…

怎样快速查找网页代码中存在的错误?

计算机很机械&#xff0c;代码中存在微小的错误&#xff0c;计算机就得不到正确的运行结果。比如&#xff0c;一个字母的大小写、比如&#xff0c;个别地方丢掉了一个符号、、、如此等等。这就要求程序员和计算机是心灵相通的&#xff0c;不能有任何的“隔阂”。 但是&#xf…