LiveKit Docs Recording & Composition Custom Recording Template LiveKit 客户端录像模板

自定义录制模板

创建自己的录制布局,以便与RoomComposite一起使用。

概述

由于Egress使用无头Chrome的实例来组合房间,因此您可以使用相同的应用程序代码来设计直播或录制的交互式体验。

与标准LiveKit应用程序相比,有一些不同之处:

  • 不呈现本地参与者-在这种情况下,本地参与者将是记录器实例
  • 当地参与者不应发布任何媒体
  • 房间控制(静音、离开等)不应可见
	/**
     * Add [VideoGrant] to this token.
     */
    fun addGrants(grants: Iterable<VideoGrant>) {
        for (grant in grants) {
            videoGrants.add(grant)
        }
    }
    
	 /**
	 * hide participant from others (used by recorder)
	 */
	class Hidden(value: Boolean) : VideoGrant("hidden", value)

理解流程

1、你发出一个出口。StartRoomComposite向LiveKit发出请求
2、LiveKit分配一个可用的egress实例来处理它
3、出口记录器为您的模板创建必要的连接和身份验证详细信息,包括:

  • LiveKit服务器的URL
  • 一种访问令牌,旨在以记录器的身份加入房间
  • 将所需布局传递给StartRoomCompositeEgress

4、Egress记录器使用启动Chrome浏览器?url=<>模板=<>令牌=<>
5、出口记录器等待webapp记录START_RECORDING以开始录制
6、出口记录器等待webapp记录END_RECORDING以终止流

您不必担心上述细节,我们提供了一个模板SDK来处理与Egress本身的交互。

使用模板SDK

安装

yarn add @livekit/egress-sdk

使用

import EgressHelper from '@livekit/egress-sdk'
import { Room } from 'livekit-client'

const room = new Room({
  adaptiveStream: true,
})

///创建房间后,立即向egress助手注册,以便其可以监听
//事件。
//设置autoEnd后,当所有参与者都离开时,录制将停止。
EgressHelper.setRoom(room, {
  autoEnd: true,
})

//高级功能,如果你想在不同的录音之间切换
//使用EgressService以编程方式进行布局。UpdateLayout,这些更改
//可以在这里处理
EgressHelper.onLayoutChanged((layout) => {
})

//连接到房间,并像往常一样呈现应用程序UI
//EgressHelper提供由Egress服务传入的URL和令牌
await room.connect(
  EgressHelper.getLiveKitURL(),
  EgressHelper.getAccessToken(),
);

//渲染视图后,调用此命令开始录制
EgressHelper.startRecording();

身份验证

LiveKit将使用Egress记录器生成的访问令牌对会话进行身份验证。它将为其分配一个以EG_开头的随机生成的用户身份。

如果在没有正确访问令牌的情况下访问网页,则无法连接。

要使用自己的系统进行身份验证,您可以将任何其他URL参数附加到传递给Egress的baseUrl。例如,您可以附加一个唯一的身份验证密钥https://your-template-url.com/?authkey={}作为您的基本URL。

测试您的模板

为了加快录制模板的开发周期,我们在CLI中提供了一个方便的实用程序。test-express模板将启动一些虚拟发布器,然后模拟它们加入您的房间。它还会将浏览器实例指向您的本地模板,并填写正确的URL参数。

这里有一个例子:

lk egress test-template
  --base-url http://localhost:3000 \
  --url <LIVEKIT_INSTANCE>
  --api-key <KEY>
  --api-secret <SECRET>
  --room <ROOM_NAME> --layout <LAYOUT> --publishers 3

此命令将启动指向的浏览器http://localhost:3000,同时模拟3个发布者发布到您的livekit实例。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值