# @astronautlabs/scte104 中文文档

规范地址：https://npmcn.com/package/%40astronautlabs/scte104/

版本：1\.0\.1
npm 元数据更新时间：2024-01-20T03:03:38.353Z
中文译文更新时间：2026-11-07T01:27:03.240Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40astronautlabs/scte104
原文对照：https://npmcn.com/package/%40astronautlabs/scte104/?lang=original
项目主页：https://github.com/astronautlabs/scte104#readme
源码仓库：https://github.com/astronautlabs/scte104

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

- 包体积（解压后）：193 kB，41 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：4 个
- 首次发布：2020-04-25T07:35:28.185Z
- 最新版本发布：2024-01-20T03:03:38.180Z
- 近 30 天下载量：2438（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：26（近 12 个月 0 个）

## 中文简介

SCTE-104 TCP/IP议定书的执行情况

## 安装

```sh
npm install @astronautlabs/scte104
```

也可以使用：`pnpm add @astronautlabs/scte104`、`yarn add @astronautlabs/scte104`、`bun add @astronautlabs/scte104`

## README

# @scte104 (英语)

[![npm](https://img.shields.io/npm/v/@astronautlabs/scte104)](https://npmjs.com/package/@astronautlabs/scte104)

> **[\* ANSI/SCTE 104 2019r1](https://webstore.ansi.org/Standards/SCTE/ANSISCTE1042019r1)**  
> 自动化系统到压缩系统通信应用程序接口(API)

> \* \* 部分内容 **宇航员实验室广播套件**  
> [@is04 (韩语)](https://github.com/astronautlabs/is04) | [@rfc8331 (法语)](https://github.com/astronautlabs/rfc8331) | [@rtp (韩语)](https://github.com/astronautlabs/rtp) | [@scte104 (英语)](https://github.com/astronautlabs/scte104) | [@scte35 (英语)](https://github.com/astronautlabs/scte35) | [@st2010 (英语)](https://github.com/astronautlabs/st2010) | [@st291 (英语)](https://github.com/astronautlabs/st291)

> 🚀 **生产质量**  
> 该图书馆功能完备,已可投入生产使用.

* * *

以打字机完全执行SCTE-104 TCP/IP协议. 支持客户端和服务器,并包含命令行客户端.

## 内容提要

该图书馆提供低水平、符合要求的执行 自动化系统到压缩系统 TCP/IP 信号传输协议 在SCTE-104中指定。 它可以用来呼叫遵守 SCTE-104"注射器"或自行执行SCTE-104"注射器".

图书馆支持所有关于提供和警报管理的信息, 加密,调度,以及几乎所有在SCTE-104所指定的"简单配置"以外的信件. 未本地支持的信件仍然可以使用自定义执行发送和接收.

用途 [@ 位流](https://github.com/astronautlabs/bitstream) 来处理比特流序列化/去序化.

## 命令行客户端

这个软件包还包括一个简单的命令行客户端,用于向SCTE 104注射器/自定义系统发送快速相接起/端消息.

```
npm install @astronautlabs/scte104 -g
scte104 --server injector.example.com splice-start --immediate --program-id 12345
```

对于完整的一组选项,使用 `scte104 --help`。 。 。 .

## 客户端库

```typescript
import * as SCTE104 from "@astronautlabs/scte104";

async function main(argv : string[]) {
    let client = new SCTE104.Client();
    await client.connect('10.10.10.0');
    await client.init();

    // Signal a spliceStart_normal in immediate mode
    await client.multipleOperations({
        operations: [
            <SCTE104.Splice>{
                opID: SCTE104.MOP.SPLICE,
                splice_insert_type: SCTE104.SPLICE_START_NORMAL,
                splice_event_id: Date.now() / 1000,
                unique_program_id: 22211,
                pre_roll_time: 4000,
                break_duration: 0,
                avail_num: 0,
                avails_expected: 0,
                auto_return_flag: 1
            }
        ]
    })

    // spliceEnd_normal
    await client.multipleOperations({
        operations: [
            <SCTE104.Splice>{
                opID: SCTE104.MOP.SPLICE,
                splice_insert_type: SCTE104.SPLICE_END_NORMAL,
                splice_event_id: Date.now() / 1000,
                unique_program_id: 22211,
                pre_roll_time: 4000,
                break_duration: 0,
                avail_num: 0,
                avails_expected: 0,
                auto_return_flag: 1
            }
        ]
    })
}

main(process.argv.slice(1));
```

## 服务器库

```typescript
import * as SCTE104 from '@astronautlabs/scte104';

let server = new SCTE104.Server();
server.messageReceived.subscribe(event => {

    // For example:
    
    if (event.message.opID == SCTE104.OP.INIT_REQUEST) {
        await event.connection.sendMessage(new SCTE104.InitResponse().with({
            result: SCTE104.RESULT.SUCCESS
        }));
    }
});
server.listen();

```

班级 `event.message` 取决于所发信件的类型. 它可以是一个子类 `SingleOperationMessage` 或类型对象 `MultipleOperationMessage`您可以比较 `opID` 区域 所发现的常数 `SCTE104.OP` 财务报告和审定财务报表 `SCTE104.MOP`,取决于类型 您感兴趣的操作.

`event.connection` 代表发送 留言。 这样你就可以在完成处理后回复 留言.

您( 作为图书馆的调用者) 要提供您自己的应用逻辑 . 服务器类只是暴露了接受104年客户端连接的能力, 订阅从该连接收到信件的通知并发送信件 回来.

## 路线图

-   为 SCTE-104 编码/解码辅助用例提供方便访问 API
-   在顶端提供可选的更高层次、有意见流利的API

## 常见问题

### @astronautlabs/scte104 是什么？

SCTE-104 TCP/IP议定书的执行情况

### 如何安装 @astronautlabs/scte104？

在项目目录运行 npm install @astronautlabs/scte104，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 scte104，可以用 npx scte104 直接运行。

### @astronautlabs/scte104 支持 TypeScript 吗？

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

### @astronautlabs/scte104 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @astronautlabs/scte104 可以商用吗？

@astronautlabs/scte104 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @astronautlabs/scte104 的下载量有多少？

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

### @astronautlabs/scte104 还在维护吗？

最新版本 1\.0\.1 发布于 2024/01/20（2 年前）；至今共发布 26 个版本，其中过去 12 个月发布了 0 个；首次发布于 2020/04/25。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

