API 参考
客户端解码 SDK
在浏览器中直接解码隐写或加密的生成内容
我们的生成 API 返回的某些结果(如 AI 生成的图像)可能内部隐藏或加密了视频等内容。为了查看这些内容,用户不需要将文件重新传回我们的服务器进行解析。
为此,我们提供了一个强大的纯客户端解码 SDK (qxan-decoder-sdk)。它完全在用户的浏览器前端运行,不仅保护了用户隐私,还能节省服务器带宽并提供即时的播放体验。
安装
你可以通过 npm 或 pnpm 安装此 SDK:
npm install qxan-decoder-sdk
# 或
pnpm add qxan-decoder-sdk快速开始 (SS_tools 示例)
以下是如何使用 SSDecoder 从图像文件中提取帧或视频的典型示例。
import { SSDecoder } from "qxan-decoder-sdk";
// 'imageFile' 是通过用户上传或从 API 结果 URL fetch 到的 File/Blob 对象
const result = await SSDecoder.decode(
imageFile,
"optional-password", // 可选的解密密码
{
expect: "image", // 对于 binpng 格式可提取帧 ('image'),或直接提取视频 ('video')
maxFrames: 8,
onProgress: (msg) => console.log("[SS 解码进度]:", msg),
}
);
if (result.type === "video") {
// result.videoUrl 可以直接赋值给 <video src="..."> 标签进行播放
console.log("视频 URL 已就绪:", result.videoUrl);
} else {
console.log("提取的视频帧:", result.frames);
}通用选项配置 (Options)
SDK 中的所有解码器都支持以下 DecodeOptions 配置:
expect ("image" | "video", 必填)
期望输出格式。使用
'video'返回原始可播放的视频文件,使用'image'提取视频的关键帧。
maxFrames (Number, 选填)
当
expect='image'时,最大提取的帧数。默认值:4。
onProgress (Function, 选填)
进度回调函数,用于在界面上展示解码进度。
返回结果 (Result)
解码成功后,将返回一个 DecoderResult 对象,包含以下内容:
type ("video" | "image")
解码后的内容类型。
videoBlob (Blob)
解码后的原始视频 Blob 数据。
videoUrl (String)
视频的本地对象 URL,可以直接用于前端视频播放器。
frames (Array of Strings, 选填)
提取的图像帧的 Blob URLs 数组(仅当
expect='image'时存在)。
metadata (Object, 选填)
视频元数据,包含
duration(时长/秒)、width、height以及基于 16 FPS 估算的estimatedFrames。