Agent Skills › openstory-so/openstory › stitch-player

stitch-player

GitHub

用于构建和管理媒体播放序列(视频、静态图、音频),配置剪辑属性、音乐混音及URL协议,支持实时播放与MP4导出。

packages/stitch/skills/stitch-player/SKILL.md openstory-so/openstory

触发场景

构建 PlaybackClip 列表 配置媒体播放序列 导出 MP4 视频

安装

npx skills add openstory-so/openstory --skill stitch-player -g -y
更多选项

非标准路径

npx skills add https://github.com/openstory-so/openstory/tree/main/packages/stitch/skills/stitch-player -g -y

不安装直接使用

npx skills use openstory-so/openstory@stitch-player

指定 Agent (Claude Code)

npx skills add openstory-so/openstory --skill stitch-player -a claude-code -g -y

安装 repo 全部 skill

npx skills add openstory-so/openstory --all -g -y

预览 repo 内 skill

npx skills add openstory-so/openstory --list

SKILL.md

Frontmatter
{
    "name": "stitch-player",
    "description": "Use when wiring @openstory\/stitch, building a PlaybackClip list of stills, dialogue, music and video, or exporting that sequence to an MP4. Covers which sound belongs on a clip, how long a still holds, how music is mixed, and which URLs the player can read."
}

stitch-player

Play PlaybackClip[] in order with StitchedPlayer from @openstory/stitch/react. The package README (node_modules/@openstory/stitch/README.md) has the install and the component example. This file is the contract that example leaves easy to miss.

Clips

A video clip is { videoUrl, posterUrl, cues }. It plays the audio inside the file.

A still is { imageUrl, fallbackImageUrl, durationSeconds, audioUrls, width, height, cues }. audioUrls play back to back from the start of the still. The still lasts the longer of that sound and durationSeconds. width and height are the still's pixel size. durationSeconds stays positive even when the sound is longer.

posterUrl is for a host to show while it waits. The engine and StitchedPlayer do not paint it.

Cue times are seconds from the start of that clip.

Pass the new array through when the list changes. Identity is order plus the media (playbackClipsKey): for a video, videoUrl only; for a still, the image URLs, audioUrls, durationSeconds, width, and height. Cue text is outside that identity, so a wording-only change leaves the engine running. Download writes the cues on the array you passed.

Music

musicUrl is a bed under the whole sequence. musicGainDb changes only that bed. 0 leaves it as recorded. musicEnabled: false mutes the bed. Dialogue stays at its own level.

The player downloads clips whole, in order, up to two past the one playing. Play starts when the current clip is all here, and a stall at a cut lasts until the next clip is. Music still streams. There is nothing to tune.

Bytes

Video, music, and a still's audioUrls need an HTTP URL that answers Range with 206, or a blob: URL whose fetch does. A still's line may be a data: URL.

A cross-origin still with no CORS still displays. Export and picture-in-picture read the canvas, so that still taints it and those two throw SecurityError.

The file

The MP4 comes from exportSequence, downloadSequence, or the player's Download button. It is the same stitch as playback: H.264 and AAC. subtitles is sidecar (a .vtt beside the file), burn-in, or none. The default is sidecar.

Encode in the page.

版本历史

  • 85b16bc 当前 2026-10-18 17:15

同 Skill 集合

.agents/skills/sd25-pe/SKILL.md
.claude/skills/react-patterns/SKILL.md
.claude/skills/update-model-versions/SKILL.md
packages/stitch/skills/stitch/SKILL.md

元信息

文件数
0
版本
85b16bc
Hash
26804823
收录时间
2026-10-18 17:15

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-10-20 00:09
浙ICP备14020137号-1