# @caprid/moq-core 中文文档

规范地址：https://npmcn.com/package/%40caprid/moq-core/

版本：0\.4\.0
npm 元数据更新时间：2026-11-06T06:43:37.033Z
中文译文更新时间：2026-11-09T17:09:52.699Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40caprid/moq-core
原文对照：https://npmcn.com/package/%40caprid/moq-core/?lang=original
项目主页：https://github.com/caprids/relay-sdks#readme
源码仓库：https://github.com/caprids/relay-sdks

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：469 kB，61 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=24
- 运行依赖：0 个
- 首次发布：2026-10-26T19:48:10.527Z
- 最新版本发布：2026-11-06T06:43:36.667Z
- 近 30 天下载量：2196（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：7（近 12 个月 7 个）

## 中文简介

独立运输 MOQT 轨道原始

## 安装

```sh
npm install @caprid/moq-core
```

也可以使用：`pnpm add @caprid/moq-core`、`yarn add @caprid/moq-core`、`bun add @caprid/moq-core`

## README

# 通用 MoQ 核心

`@caprid/moq-core` 运行带有任意跟踪对象的 MOQT 会话。 它没有运行时间依赖性,也没有 导入中继产品代码或 Video.js.

核心会讲MOQT第22稿,并用选择它的同级词来起草第20稿. 它接收订阅对象超过可靠 流经. 它不执行应用时间,解码,数据克接收,或自动会话恢复.

## 订阅方

`createMoqtSession` 搭乘固定的运输工具 从那时起拥有它 订阅、获取和跟踪状态请求 带回召处理器。 它们通过未经解释的记录生命周期,传递有效载荷和物体特性 通知书. `MoqTrackSource` 被借入会话 `subscribe`, (中文(简体) ), `fetch`,以及 `trackStatus`: 持有者可以 提出请求但无法关闭传输.

## 出版边

`createMoqtPublishSession` 为单独的运输工具提供命名空间及其已注册的轨道。 音轨属性为 明确,所以音轨没有默认的媒体时标 . `createSubgroupWriter` 写入任意对象有效载荷和 元数据。 上面的出版政策,例如 `@caprid/relay`被捆绑的单对象组,属于SDK.

两个发布会的钩子服务于比SDK更能追踪的嵌入器:

-   注册音轨 `getLargestObject` 设置 `LARGEST_OBJECT` 和请求。 会话没有 对象,因此它用填充取来响应非空填充请求,该取取流在FETCH HEADER后重排.
-   `end({ after })` 保留一个音轨的结束,直到最后一组被写入。 它还在有秩序的关闭期间进行.

## 电线助手

套件索引还输出嵌入器需要的线常数和纯辅助器: `TRACK_PROPERTY`, (中文(简体) ), `compareLocations`, (中文(简体) ), `isEmptyFetchRange`, (中文(简体) ), `encodeFetchHeader`, (中文(简体) ), `isRetryableRequestErrorCode`, (中文(简体) ), `isRetryablePublishDoneStatus`, (中文(简体) ), `utf8Decode`,和关闭的界限 `CLOSE_FLUSH_TIMEOUT_MS` 财务报告和审定财务报表 `CLOSE_END_ACK_TIMEOUT_MS`。 。 。 .

## 准备接力

一个对发布会话播放中继器末端的测试需要客户端表面留下的两样东西.

`createMoqtSession(transport, { perspective: 'server' })` 分配服务器的请求ID, 奇数和从 1 开始 , 并且要求对等者为偶(第6.4.2.1节)。 默认, `'client'`,从 0 分配甚至ID,并需要奇数 这些。 一个出版会话总是客户端 并且把每个子CRIBE的请求ID 作为订阅的 Track Alias, 因此,一个服务器预测会话的前两个订阅会得到别名1和3.

`@caprid/moq-core/wire` 导出用于驱动会话字节字节的解码器, 在索引的 semver 下 : `StreamReader` 财务报告和审定财务报表 `utf8Encode`· ; `ControlMessageDeframer`, (中文(简体) ), `decodeControlMessage` 编辑 `ControlMessage` 类型; `encodeSetup`, (中文(简体) ), `encodeSubscribe`, (中文(简体) ), `encodeSubscribeOk`, (中文(简体) ), `encodeSubscribeNamespace`, (中文(简体) ), `encodePublish`, (中文(简体) ), `encodePublishDone`, (中文(简体) ), `encodeRequestError` 财务报告和审定财务报表 `encodeGoaway`· ; `STREAM_TYPE`, (中文(简体) ), `isSubgroupHeaderType`, (中文(简体) ), `readSubgroupHeader`, (中文(简体) ), `readSubgroupObjects` 财务报告和审定财务报表 `readFetchHeader`· ; `encodeVarint` 财务报告和审定财务报表 `decodeVarint`。从中导入 而不是从 `dist/protocol/*`,其布局不属于API.

```ts
import { createMoqtPublishSession, createMoqtSession } from '@caprid/moq-core';
import { encodeSubscribe } from '@caprid/moq-core/wire';

const publisher = createMoqtPublishSession(pair.client);
const relay = createMoqtSession(pair.server, { perspective: 'server' });
// relay.subscribe(...) sends Request IDs 1, 3, 5, ...; a raw SUBSCRIBE from encodeSubscribe needs an odd one too.
```

## 证明

实施及其回归测试来自Video.js,在Apache-2.0下. `UPSTREAM.json` 记录源 修订,原始文件散列, 以及此后所做的所有更改,和 `NOTICE` 携带归属。 视频.js 仍然 拥有自己的这些模块副本。 将 Video.js 移动到这个软件包上是一个单独的步骤.

关于中继应用程序的使用和当地安装,从 [JavaScript 快速启动](https://github.com/caprids/relay-sdks/blob/main/ts/GUIDE.md#first-round-trip)。 。 。 .

## 稳定

在1.0之前,一个小版本可以打破API. 此软件包随 `@caprid/relay` 在同一个版本. 见 [更改日志](https://github.com/caprids/relay-sdks/blob/main/ts/CHANGELOG.md)。 。 。 .

## 常见问题

### @caprid/moq-core 是什么？

独立运输 MOQT 轨道原始

### 如何安装 @caprid/moq-core？

在项目目录运行 npm install @caprid/moq-core，或使用 pnpm add / yarn add / bun add。

### @caprid/moq-core 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @caprid/moq-core 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @caprid/moq-core 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=24。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @caprid/moq-core 可以商用吗？

@caprid/moq-core 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @caprid/moq-core 的下载量有多少？

根据 npm 官方下载统计，@caprid/moq-core 在 2026/10/09 – 2026/11/07 这 30 天内被下载 2,196 次，日均约 73 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @caprid/moq-core 还在维护吗？

最新版本 0\.4\.0 发布于 2026/11/06（3 天前）；至今共发布 7 个版本，其中过去 12 个月发布了 7 个；首次发布于 2026/10/27。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

