mcpField
B
byted-tos-video-process

byted-tos-video-process

github.com/bytedance创意与媒体47745 次安装今天更新
代码仓库

关于 byted-tos-video-process

用于处理存储在 Volcengine TOS 中视频的技能,面向需要检查视频信息或提取片段的工作流。可读取元数据、截取单帧或多帧,并拼接视频片段。

主要功能

  1. 01读取视频格式、时长和分辨率
  2. 02按时间点截取单帧
  3. 03批量按时间点或间隔截图
  4. 04拼接多个视频片段
  5. 05将截图保存回 TOS

适用场景

  1. 01查看视频时长、编码和分辨率
  2. 02提取视频中的指定画面
  3. 03批量生成时间线截图
  4. 04合并存储在 TOS 的视频片段

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/bytedance/agentkit-samples --skill byted-tos-video-process

安装后在 Claude Code 中输入/byted-tos-video-process确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.gitignore
LICENSE
README.md
REFERENCE.md
requirements.txt
WORKFLOWS.md
scripts/
tos_jobs_client.py
video_concat.py
video_info.py
video_snapshot.py
video_snapshots.py

详细介绍

火山引擎 TOS 视频处理

检查视频、提取帧,并拼接存储在火山引擎 TOS 中的视频片段——包括元数据查询、单帧截图、多帧截取、视频拼接,以及将结果持久化到 TOS。

设置(每个环境仅需一次)

首次使用时安装依赖:

cd {baseDir}
pip install -r {baseDir}/requirements.txt

然后使用 Python 3.7+ 运行脚本:

python3 {baseDir}/scripts/<script>.py <args>

如果出现 ModuleNotFoundError,提示找不到 tos,请重新安装依赖。

环境变量

此技能依赖 metadata 块中声明的 TOS 身份信息。常见的运行时变量如下:

环境变量必需说明
TOS_ACCESS_KEY是TOS 访问密钥 ID
TOS_SECRET_KEY是TOS 访问密钥
TOS_ENDPOINT是TOS 端点 URL
TOS_REGION是TOS 区域
TOS_BUCKET是存储视频的源存储桶
TOS_OBJECT_KEY否视频的源对象键。部分脚本支持其他指定方式;video_info.py 和 video_snapshot.py 会从环境变量中读取此值
TOS_SECURITY_TOKEN否使用临时凭证时的 STS 会话令牌
TOS_SAVEAS_BUCKET否保存截图的默认目标存储桶
TOS_SAVEAS_OBJECT_PREFIX否保存截图的默认键前缀

快速开始(常见任务)

# Read video metadata (resolution, duration, codec)
TOS_OBJECT_KEY=demo.mp4 python3 {baseDir}/scripts/video_info.py

# Capture a single frame at 5 seconds
TOS_OBJECT_KEY=demo.mp4 python3 {baseDir}/scripts/video_snapshot.py --time 5000 --output frame_5s.jpg

# Capture multiple frames and save locally
python3 {baseDir}/scripts/video_snapshots.py --key demo.mp4 --timestamps 1000 3000 5000

# Capture multiple frames by interval
python3 {baseDir}/scripts/video_snapshots.py --key demo.mp4 \
  --interval-ms 5000 --duration-ms 60000 --output-dir snapshots

# Capture multiple frames and save to TOS
python3 {baseDir}/scripts/video_snapshots.py --key demo.mp4 --timestamps 1000 3000 5000 --save-to-tos

# Concatenate multiple video clips
python3 {baseDir}/scripts/video_concat.py --key clip1.mp4 --fragments "clip2.mp4,clip3.mp4" --output-key merged.mp4 --wait

可用脚本

脚本用途
scripts/video_info.py读取视频元数据(格式、时长、分辨率、编码格式、帧率)。
scripts/video_snapshot.py在指定时间戳截取单帧。支持保存到本地或将结果持久化到 TOS。
scripts/video_snapshots.py批量截取时间线上的多帧。支持指定时间戳、间隔模式、并发执行,以及将结果持久化到 TOS。
scripts/video_concat.py将多个视频片段拼接为一个视频。使用 TOS 网关的 media_jobs 异步 API,设置 job_type=Concat。支持使用 --wait 轮询直至完成。

video_snapshots.py 和 video_concat.py 支持使用 --key 样式选择对象。video_info.py 和 video_snapshot.py 目前会从环境变量读取 TOS_OBJECT_KEY。video_snapshots.py 也支持通过 --bucket 覆盖存储桶,以便进行多存储桶测试。运行任意脚本并添加 -h,即可查看完整用法。

不在范围内

  • 完整的视频转码流水线(此技能仅涵盖元数据、帧提取和视频拼接)。
  • 仅处理图像或仅处理文档的工作流(请使用 byted-tos-image-process 或 byted-tos-doc-process)。
  • 非 TOS 存储服务提供商。

规则

  • 身份验证:身份验证使用上方 metadata 块中声明的 TOS 身份信息。可通过每个脚本的 --key 覆盖对象选择。
  • 时间戳单位:所有时间戳参数均以毫秒为单位(例如,5000 = 5 秒)。
  • 验证时间戳:确保截图时间戳不超过视频时长。必要时,先使用 video_info.py 读取时长。
  • 保存到 TOS:使用 --save-to-tos 以及 TOS_SAVEAS_BUCKET / TOS_SAVEAS_OBJECT_PREFIX,无需下载到本地即可将截图持久化回 TOS。
  • 参数权威来源:关于完整的 video/snapshot 参数矩阵,以火山引擎 TOS 官方文档为准。如有疑问,请查看 REFERENCE.md。
  • 语言:使用用户偏好的语言回复。

延伸阅读

评论

支持 Markdown