【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安卓调用摄像头拍照确保打…

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

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

重生之 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中打开文件 → 首选项 → 用户代码片段 → 在…

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

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

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

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

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

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

有免费通配符证书吗?哪里可以申请?

市面上的免费SSL证书大多数为单域名证书,如果您的主域名拥有众多子域名,逐一申请单域名SSL证书不太现实,下面为介绍一款永久免费使用的通配符SSL证书申请流程 1 选择免费通配符证书提供商 免费通配符证书申请点击这里直接获取https://www.…

前端渲染页面的原理

之前一直不愿意写一篇关于原理的,因为说起来实在是太繁杂,要写得细,码字梳理,计算下来起码都要差不多三周。以前一直躲避这个事情,现在反正有时间,为了不荒废自己,那就从头捋一遍。也方便自己后…

数据分析项目有哪些实施流程?揭示从数据准备到解决方案全过程

在当今数据驱动的商业环境中,数据分析项目的成功实施对于企业洞察市场趋势、优化产品服务、提升用户体验以及增强竞争力具有至关重要的作用。特别是对于直播类应用软件这样的快速增长领域,如何通过数据分析来扩大付费用户基础、提高用户留存率&#xff0…

音视频开发10 FFmpeg 内存模型-AVPacket, AVFrame

从现有的 Packet 拷贝一个新 Packet 的时候,有两种情况: • ①两个 Packet 的 buf 引用的是 同一数据缓存空间 ,这时 候要注意数据缓存空间的释放问题; • ②两个 Packet 的 buf 引用不同的数据缓存空间 ,每个 Pac…

D2Admin:企业中后台产品前端集成方案的探索与实践

D2Admin:企业中后台产品前端集成方案的探索与实践 摘要:随着企业信息化建设的不断深入,中后台管理系统的前端技术选型与集成方案成为了关键。D2Admin作为一款完全开源免费的前端集成方案,通过采用最新的前端技术栈,提…

惠海半导体 30V-60V-100V-150VMOS管 打火机、加湿器NMOS管 高耐压

MOS管的工作原理 MOS管,即金属-氧化物-半导体场效应晶体管,是一种重要的电子元件,在电路中起着关键的作用。其工作原理主要基于半导体材料的特性以及电场对电荷的控制。 首先,MOS管的基本结构包括源极、栅极和漏极。其中&#xf…

我国赤泥年产量庞大 政策引导下赤泥绿色利用率将不断提升

我国赤泥年产量庞大 政策引导下赤泥绿色利用率将不断提升 赤泥是指从铝土矿中提炼氧化铝后产生的强碱性工业固体废渣,由于含大量氧化铁,表面呈现红色,而得名赤泥。   赤泥通常包含氧化铝、氧化铁、二氧化硅、氧化钙、碱金属及其他微量元素&…

排序专题(常见8种)【思路解析和代码实现】【2w字长文】

排序专题(常见8种) 1.排序的概念及其运用 1.1排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中…

【设计模式】JAVA Design Patterns——Dependency Injection(依赖注入模式)

🔍目的 依赖注入是一种软件设计模式,其中一个或多个依赖项(或服务)被注入或通过引用传递到一个依赖对象(或客户端)中,并成为客户端状态的一部分。该模式将客户的依赖关系的创建与其自身的行为分…