@aws-cdk/aws-ivs-alpha

中文文档
2.275.0-alpha.0发布于 2026/10/27Apache-2.0TypeScriptCommonJS零依赖近 30 天下载 3404

AWS::IVS 的 CDK 构造库

中文使用文档
文档目录10 节
  1. 频道
  2. 多轨道视频
  3. 导入已有频道
  4. 流键
  5. 私人频道
  6. 记录配置
  7. 记录的发端
  8. 缩略图生成
  9. 将碎流合并
  10. 将记录配置附加到频道

AWS::IVS 构造库


cdk-constructs: Experimental

本单元中更高层次的构件的API是实验性的并正在积极开发中. 在今后任何版本中,它们都须作非背向相容的修改或去除。 这些是 不适用 语义版本 模型和断开的更改 在发行笔记中宣布. 这意味着虽然你可能使用它们,但可能需要更新 当更新到此软件包的更新版本时,您的源代码.


Amazon Interactive Video Service(亚马逊语:Amazon IVS)是一款有管理的直播流媒体 快速和易于设定的解决方案,以及创建互动 视频体验. 使用流媒体软件将活流发送到 Amazon IVS 服务会做所有你需要做的 低频视频 可供全世界任何观众使用,让你专注于建筑 互动体验与现场视频. 你可以轻松地定制和 通过亚马逊 IVS 播放器 SDK 和定时增强观众体验 元数据 APIs,允许您与您建立更有价值的关系 自己网站和应用程序上的观众.

这个模块是 AWS 云开发套件 项目.

频道

Amazon IVS 频道存储与您的直播相关的配置信息 流线。 您先创建一个频道,然后使用该频道提供视频 频道启动活流的流键 .

您可以创建频道

const myChannel = new ivs.Channel(this, 'Channel');

您可以通过设置高级频道类型 type 属性改为 ivs.ChannelType.ADVANCED_HD 或者说 ivs.ChannelType.ADVANCED_SD。 。 。 .

此外,当使用高级频道类型时,可以设置 页:1 preset 属性改为 ivs.Preset.CONSTRAINED_BANDWIDTH_DELIVERY 或者说 ivs.Preset.HIGHER_BANDWIDTH_DELIVERY。 。 。 .

更多信息见 亚马逊 IVS 流配置。 。 。 .

const myChannel = new ivs.Channel(this, 'myChannel', {
  type: ivs.ChannelType.ADVANCED_HD,
  preset: ivs.Preset.CONSTRAINED_BANDWIDTH_DELIVERY,
});

如果您想要使用 RTMP 摄入, 请设定 insecureIngest 属性改为 true。 。 。 . 默认, insecureIngest 实值 false 这意味着使用 RTMPS 摄入.

注释: RTMP摄入可能会降低你流的安全性. AWS 推荐您使用 RTMPS 来摄取, 除非您有特定且经过验证的用例 。 更多信息见 编码器设置。 。 。 .

const myRtmpChannel = new ivs.Channel(this, 'myRtmpChannel', {
  type: ivs.ChannelType.STANDARD,
  insecureIngest: true, // default value is false
});

多轨道视频

多轨视频是一种由亚马逊互动视频服务(IVS)和使用亚马逊IVS的服务所支持的新的低纬度流媒体模式.

您可以通过设置多轨道视频 multitrackInputConfiguration 属性. 多轨视频既需要一个"标准"频道,又需要"分块"Mp4.

更多信息见 亚马逊 IVS 多轨道视频。 。 。 .

new ivs.Channel(this, 'ChannelWithMultitrackVideo', {
  type: ivs.ChannelType.STANDARD,
  containerFormat: ivs.ContainerFormat.FRAGMENTED_MP4,
  multitrackInputConfiguration: {
    maximumResolution: ivs.MaximumResolution.HD,
    policy: ivs.Policy.ALLOW,
  },
});

导入已有频道

例如,如果需要创建一个 现有频道的流键

const myChannel = ivs.Channel.fromChannelArn(this, 'Channel', myChannelArn);

流键

流键被广播编码器用于启动流并识别 到亚马逊IVS 客户和频道的溪流。 如果你是的话 存储此值,应视同密码.

您可以为给定频道创建流密钥

const myStreamKey = myChannel.addStreamKey('StreamKey');

私人频道

Amazon IVS提供了创建私人频道的能力,允许 您可以通过频道或查看器限制您的溪流。 您控制访问 通过允许在频道上播放播放授权来播放视频 生成已签名的 JSON Web Tokens (JWTs) 用于授权的回放请求.

回放符号是您所签名的 JWT (带有回放授权密钥) ,并在每一次播放中包含对有播放功能的频道的请求 授权已启用 .

为了让Amazon IVS 验证此符号, 您需要上传 用于签名的私人密钥.

const keyPair = new ivs.PlaybackKeyPair(this, 'PlaybackKeyPair', {
  publicKeyMaterial: myPublicKeyPemString,
});

然后在创建频道时指定授权属性

const myChannel = new ivs.Channel(this, 'Channel', {
  authorized: true, // default value is false
});

记录配置

亚马逊 IVS 记录配置存储设置,指定频道的活流应如何记录. 您可以配置视频质量,缩略图生成,以及存储在亚马逊S3的录音的地方.

有关IVS记录的更多信息,请参见: IVS 自动记录到 Amazon S3 → 低密度流。 。 。 .

您可以创建录音配置 :

// create an S3 bucket for storing recordings
const recordingBucket = new s3.Bucket(this, 'RecordingBucket');

// create a basic recording configuration
const recordingConfiguration = new ivs.RecordingConfiguration(this, 'RecordingConfiguration', {
  bucket: recordingBucket,
});

记录的发端

当将内容流到一个亚马逊IVS频道时,自动录制到s3使用源视频生成多段递解.

更多信息见 发现记录的发作。 。 。 .

declare const recordingBucket: s3.Bucket;

const recordingConfiguration= new ivs.RecordingConfiguration(this, 'RecordingConfiguration', {
  bucket: recordingBucket,

  // set rendition configuration
  renditionConfiguration: ivs.RenditionConfiguration.custom([ivs.Resolution.HD, ivs.Resolution.SD]),
});

缩略图生成

您可以启用或禁用动态会话的缩略图记录,并修改动态会话生成缩略图的间隔 .

缩略图间隔可能从1秒到60秒;默认情况下,缩略图录制启用,间隔为60秒.

更多信息见 缩略图。 。 。 .

declare const recordingBucket: s3.Bucket;

const recordingConfiguration = new ivs.RecordingConfiguration(this, 'RecordingConfiguration', {
  bucket: recordingBucket,

  // set thumbnail settings
  thumbnailConfiguration: ivs.ThumbnailConfiguration.interval(ivs.Resolution.HD, [ivs.Storage.LATEST, ivs.Storage.SEQUENTIAL], Duration.seconds(30)),
});

将碎流合并

这个 recordingReconnectWindow 属性允许您指定一个时间窗口(以秒计),在此期间,如果您的流被中断并开始一个新的流,亚马逊IVS会尝试录入与上个流相同的S3前缀.

换句话说,如果广播断开,然后在指定的间隔内重新连接,多条流被视作单一广播并合并.

更多信息见 将碎流合并。 。 。 .

declare const recordingBucket: s3.Bucket;

const recordingConfiguration= new ivs.RecordingConfiguration(this, 'RecordingConfiguration', {
  bucket: recordingBucket,

  // set recording reconnect window
  recordingReconnectWindow: Duration.seconds(60),
});

将记录配置附加到频道

要启用频道的录音, 请在创建频道时指定录制配置 :

declare const recordingConfiguration: ivs.RecordingConfiguration;

const channel = new ivs.Channel(this, 'Channel', {
  // set recording configuration
  recordingConfiguration: recordingConfiguration,
});

版本与发布记录

@aws-cdk/aws-ivs-alpha 共发布 380 个版本,首次发布于 2021/10/14;过去 12 个月发布了 64 个版本。

版本发布日期距今
2.275.0-alpha.0latest2026/10/2712 天前
2.274.0-alpha.02026/10/2018 天前
2.273.0-alpha.02026/10/0929 天前
2.272.0-alpha.02026/09/301 个月前
2.271.0-alpha.02026/09/261 个月前
2.270.0-alpha.02026/09/181 个月前

关于 @aws-cdk/aws-ivs-alpha 的常见问题

@aws-cdk/aws-ivs-alpha 是什么?

AWS::IVS 的 CDK 构造库

如何安装 @aws-cdk/aws-ivs-alpha?

在项目目录运行 npm install @aws-cdk/aws-ivs-alpha,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:constructs(^10.5.0)、aws-cdk-lib(^2.275.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@aws-cdk/aws-ivs-alpha 支持 TypeScript 吗?

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

@aws-cdk/aws-ivs-alpha 支持 ESM 还是 CommonJS?

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

@aws-cdk/aws-ivs-alpha 需要什么版本的 Node.js?

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

@aws-cdk/aws-ivs-alpha 可以商用吗?

@aws-cdk/aws-ivs-alpha 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@aws-cdk/aws-ivs-alpha 的下载量有多少?

根据 npm 官方下载统计,@aws-cdk/aws-ivs-alpha 在 2026/10/08 – 2026/11/06 这 30 天内被下载 3,404 次,日均约 113 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@aws-cdk/aws-ivs-alpha 还在维护吗?

最新版本 2.275.0-alpha.0 发布于 2026/10/27(12 天前);至今共发布 380 个版本,其中过去 12 个月发布了 64 个;首次发布于 2021/10/14。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。