【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.rhkb.cn/news/335126.html

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

相关文章

yolo 算法 易主

标题:YOLOv10: Real-Time End-to-End Object Detection 论文:https://arxiv.org/pdf/2405.14458ethttps%3A//arxiv.org/pdf/2405.14458.zhihu.com/?targethttps%3A//arxiv.org/pdf/2405.14458 源码:https://github.com/THU-MIG/yolov10 分析…

Django Web:搭建Websocket服务器(入门篇)

Django Web架构 搭建Websocket服务器(1) - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:htt…

算法之堆排序

堆排序是一种基于比较的排序算法,通过构建二叉堆(Binary Heap),可以利用堆的性质进行高效的排序。二叉堆是一个完全二叉树,可以有最大堆和最小堆两种形式。在最大堆中,父节点的值总是大于或等于其子节点的值…

Linux文本处理三剑客(详解)

一、文本三剑客是什么? 1. 对于接触过Linux操作系统的人来说,应该都听过说Linux中的文本三剑客吧,即awk、grep、sed,也是必须要掌握的Linux命令之一,三者都是用来处理文本的,但侧重点各不相同,a…

kubeadm引导欧拉系统高可用的K8S1.28.X

文章目录 一. 核心组件架构二. 有状态与无状态应用三. 资源对象3.1 规约与状态3.2 资源的分类-元数据,集群,命名空间3.2.1 元数据3.2.2 集群资源 3.3 命名空间级3.3.1 pod3.3.2 pod-副本集3.3.3 pod-控制器 四. Kubeadm安装k8s集群4.1 初始操作4.2 ~~所有节点安装Docker&#x…

Java基础:基本语法(一)

Java基础:基本语法(一) 文章目录 Java基础:基本语法(一)1. 前言2. 开发环境搭建2.1 Java开发工具包下载2.2 环境变量配置2.3 Java程序的运行过程 3. 数据类型3.1 基本数据类型3.2 引用数据类型 4. 常量与变…

maven部署到私服

方法一:网页上传 1、账号登录 用户名/密码 2、地址 http://自己的ip:自己的端口/nexus 3、查看Repositories列表,选择Public Repositories,确定待上传jar包不在私服中 4、选择3rd party仓库,点击Artifact Upload页签 5、GAV Definition选…

SQL面试题练习 —— 连续登录超过N天用户(一)

题目 现有用户登录日志表 t_login_log,包含用户ID(user_id),登录日期(login_date)。数据已经按照用户日期去重,请查出连续登录超过4天的用户ID。 样例数据 样例输出 建表语句 CREATE TABLE t_login_log (user_id VARCHAR(255) COMMENT 用户ID,login_date DATE CO…

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 ~…

大模型中的Tokenizer

在使用GPT 、BERT模型输入词语常常会先进行tokenize 。 tokenize的目标是把输入的文本流,切分成一个个子串,每个子串相对有完整的语义,便于学习embedding表达和后续模型的使用。 一、粒度 三种粒度:word/subword/char word词&a…

qt把虚拟键盘部署到arm开发板上(imx6ull)

分为了qt官方配置的虚拟键盘以及各路大神自己开源的第三方键盘,我本来想尝试利用官方键盘结果一直失败,最后放弃了,后面我用的第三方键盘参考了如下文章: https://blog.csdn.net/2301_76250105/article/details/136441243 https…

代码随想录——找树左下角的值(Leetcode513)

题目链接 层序遍历 思路:使用层序遍历,记录每一行 i 0 的元素,就可以找到树左下角的值 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}*…

深入理解深度学习中的激活层:Sigmoid和Softmax作为非终结层的应用

深入理解深度学习中的激活层:Sigmoid和Softmax作为非终结层的应用Sigmoid 和 Softmax 激活函数简介Sigmoid函数Softmax函数 Sigmoid 和 Softmax 作为非终结层多任务学习特征变换增加网络的非线性实际案例 注意事项结论 深入理解深度学习中的激活层:Sigmo…

使用Ollama和Open WebUI管理本地开源大模型的完整指南

🏡作者主页:点击! 🤖AI大模型部署与应用专栏:点击! ⏰️创作时间:2024年5月27日12点20分 🀄️文章质量:96分 目录 ✨️Open-WebUI介绍 优点 💥部署教程…

软件需求分析和软件原型开发是一会事情吗?

软件需求分析和软件原型开发是软件开发过程中的两个重要环节,它们各自承担着不同的任务,但又紧密相连,共同影响着软件项目的成功。下面将详细解释这两个环节的定义、目的以及它们之间的关系。 一、软件需求分析 定义:软件需求分析…

JAVA系列:NIO

NIO学习 一、前言 先来看一下NIO的工作流程图: NIO三大核心组件,channel(通道)、Buffer(缓冲区)、selector(选择器)。NIO利用的是多路复用模型,一个线程处理多个IO的读…

学习笔记——STM32F103的V3版本——3*3矩阵键盘控制数码管

一.硬件 1.数码管 2.3*3的矩阵键盘(自己做的模块(手残党一枚)) 3.总体连接 二.在Keil5中的部分软代码 test.c中: #include "sys.h" #include "usart.h" #include "delay.h" #include …

面试问题小结

说说你的项目,从里面学到啥了(随便说) CAS 线程池 的各个方面 线程咋创建(4种方式) 说一下聚集索引和非聚集索引 50w男 50w女 ,在B树中咋存储的(类似下面的图,变通一下就行了&a…

DOS学习-目录与文件应用操作经典案例-type

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一.前言 二.使用 三.案例 1. 查看文本文件内容 2. 同时查看多个文本文件内容 3. 合并文…

股票量化交易上手,一个特别简单却长期可用的交易策略,官方接口

股票实现程序化自动化交易的三个基础:获取数据、执行交易、查询账户。 以后说到策略示例的时候就不介绍接口的基础使用方法了,随便一个策略把过程写出来都会很啰嗦,尽量压缩内容吧,这些内容是面向新手的,大佬们忽略细节…