【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> lsDirectory: D:\XTRANS\pythonProject\LIVEKIT\livekit_releaseMode                 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.mzph.cn/pingmian/18690.shtml

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

相关文章

css-表头筛选的特定样式

背景 饿了么的表头筛选样式比较简单,如图1,产品觉得不够醒目(觉得用户可能不知道这是筛选,我表示不理解) 要求改进筛选的样式,达到图2的效果,主要是状态列,既希望这列的宽度固定&a…

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

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

Python基础学习笔记(九)——字符串(下)

目录 前言一、字符串的编码、检测和比较1. 编码与解码2. 字符检测与判断3. 字符串的比较 二、占位符与格式化1. %型格式化2. {}型格式化3. 浮点格式化4. f-string 格式化4.1 对象调用4.2 数字格式4.3 字符串格式4.4 功能增强 三、字符驻留机制 前言 本篇将更深入地介绍字符串的…

高边坡监测常用的主要仪器设备

随着人类的发展,近几年由于人类生活生产的破坏,地球环境不断恶化。鉴于这一现象,监测行业也随之应运而生。常见的监测类型有:边坡监测,地灾监测,水库监测,大坝监测,矿山监测&#xf…

Linux完整版命令大全(十三)

git(gnu interactive tools) 功能说明:文字模式下的文件管理员。 语  法:git补充说明:git是用来管理文件的程序,它十分类似DOS下的Norton Commander,具有互动式操作界面。它的操作方法和Norton Commander几乎一样&a…

重生之 SpringBoot3 入门保姆级学习(01、Hello,SpringBoot3)

重生之 SpringBoot3 入门保姆级学习(01、Hello,SpringBoot3)) 1、快速体验1.1 创建项目1.2 导入 SpringBoot3 依赖1.3 导入 SpringBoot3 Web 依赖1.4 代码编写1.5 浏览器测试 1、快速体验 场景:浏览器发送 /hello 请求…

Balabolka-一款完全免费的电子书朗读及文本转语音软件

下载地址:Balabolka Balabolka能够进行简单的文本转语音任务,支持各种语言包,该软件可以读取剪贴板的内容, 可以查看AZW,CHM,DjVu,DOC,EPUB,FB2,LIT&#xff…

Centos安装nvm管理node版本(让安装变得可控又快捷)

Centos安装nvm管理node版本(让安装变得可控又快捷) 没有找到一个对的人,有可能是你没有走对那条路,也有可能是你没有睁开眼睛,而更大的可能是,你根本就没有出发去找。 安装说明 nvm安装目录:/us…

PG TOAST技术

1.Toast简介: Toast是超长字段在PG的一个存储方式,对于用户来说不用关注这一技术的实现,完全是透明的,它会将大字段值压缩或分散为多个物理行来存储,与Oracle的CLOB,BLOB类似。 2.Toast的存储方式&#xf…

vscode: console.log快捷键设置

webstorm 编辑器自带一个 console.log 的快捷方式,即 .log 然后按回车键就可以了,但是webstorm 用着用着就得找解码,还是 vscode 好啊 那 vscode有类似的方法吗,答案是必然的 在VScode中打开文件 → 首选项 → 用户代码片段 → 在…

JavaScrip四种输出

window.alert()&#xff1a; 使用警告框来显示数据 如&#xff1a; <!DOCTYPE html> <html> <body> <script>window.alert("我来了"); </script></body> </html> 浏览器打开就会显示一个弹窗“我来了” innerHTML&…

人工智能在乳腺癌领域的最新进展|【医学AI·文献速递·05-29】

小罗碎碎念 2024-05-29&#xff5c;文献速递 今天分享的文章&#xff0c;主题是AI乳腺癌。 第三篇文章&#xff0c;个人觉得是今天最有借鉴价值的——临床故事接地气&#xff0c;工科算法赶潮流。这篇文章主要做的事情是利用多模态多组学&#xff0c;去区分乳腺腺病和乳腺癌&a…

Oracle JSON 函数详解与实战

Oracle 数据库提供了丰富的 JSON 函数集&#xff0c;使得开发者可以高效地处理 JSON 数据。本文将详细介绍这些函数&#xff0c;包括它们的语法、使用场景、具体示例&#xff0c;以及在实际项目中的应用。 文章目录 JSON_VALUE语法参数说明示例 JSON_QUERY语法示例 JSON_TABLE语…

AttributeError: ‘Upsample‘ object has no attribute ‘recompute_scale_factor‘

我在运行yolov5 6.0版本的detect.py时遇到该错误&#xff0c;后经调研发现是pytorch版本问题&#xff0c;当我把pytorch1.13版本换到2.2.0版本时&#xff0c;再运行detect.py时没有报错&#xff0c;正常运行。 pip install torch2.2.2 torchvision0.17.2 torchaudio2.2.2 --in…

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

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

编程应用怎么使用编程语言:深入探索与实战指南

编程应用怎么使用编程语言&#xff1a;深入探索与实战指南 在数字化时代&#xff0c;编程语言如同魔法语言&#xff0c;赋予了编程应用无限的可能性。然而&#xff0c;对于许多初学者来说&#xff0c;如何有效地使用编程语言来构建应用却是一个充满困惑与挑战的过程。本文将从…

etcd学习笔记

博客参考&#xff1a;K8s组件&#xff1a;etcd安装、使用及原理&#xff08;Linux&#xff09; 分布式系统架构中对一致性要求很高&#xff0c;etcd就满足了分布式系统中的一致性要求&#xff0c;实现了分布式一致性键值对存储的中间件。etcd完整的集群至少需要3台&#xff0c…

Netty-读写原理

归档 GitHub: Netty-读写原理 读原理 参考&#xff1a;选择器-监听-原理 sign_o_002 主要看 NioByteUnsafe#read() 相当于读取底层信道中的字节 io.netty.channel.nio.AbstractNioByteChannel.NioByteUnsafe 下游链处理参考&#xff1a;处理器链-读流程 protected class Ni…

记录——随时更新

姓名&#xff1a;保密 生日&#xff1a;1998.01.09 民族&#xff1a;汉 爱好&#xff1a;吃 以下是我看过的&#xff0c;其中喜欢的&#xff0c;收集起来&#xff0c;以后有喜欢的还会添加&#xff0c;部分遗忘 电视剧 毒牙 非自然死亡(日剧) 校阅部女孩河野悦子(日剧) 失恋…

玩转STM32-直接存储器DMA(详细-慢工出细活)

文章目录 一、DMA介绍1.1 DMA简介1.2 DMA结构 二、DMA相关寄存器&#xff08;了解&#xff09;三、DMA的工作过程&#xff08;掌握&#xff09;四、DMA应用实例4.1 DMA常用库函数4.2 实例程序 一、DMA介绍 1.1 DMA简介 DMA用来提供外设与外设之间、外设与存储器之间、存储器与…