文档
开发指南
视频理解最佳实践

视频理解开发指南

阶跃星辰 step-1.5v-mini 模型支持视频理解能力,开发者可以在对话上下文中传入一个视频链接,模型将会自动读取视频中的内容,并基于视频中的内容进行理解,回答用户提出的问题或参与整个上下文的生成。

视频理解 Hello World

通过 Chat API,在 user message 中传入 video_url 格式的视频链接,并写入你希望模型做的事情,即可让大模型理解视频内容,并基于视频内容来完成生成。

暂不支持本地视频文件上传,仅支持网络视频链接。且视频链接需为可直接访问的 mp4 视频地址。

比如,如下是一个简单的基于视频写游记的例子:

curl --location 'https://api.stepfun.com/v1/chat/completions' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $SETP_API_KEY" \
--data '{
    "model": "step-1.5v-mini",
    "messages": [
        {
            "role": "user",
            "content": [
                {
                    "type": "video_url",
                    "video_url": {
                        "url": "https://static.stepfun.com/static/platform-web/vipcase/case1.mp4"
                    }
                },
                {
                    "type": "text",
                    "text": "你是一个文案专家,你善于通过视频分析内容里面的风景和拍摄者的风格,然后以此为基础创作文案,请根据上传的视频写一段文案,要求充满诗意和浪漫,要求文字极简。"
                }
            ]
        }
    ],
    "max_tokens": 1024
}'

大模型会生成如下文字返回给你:

在夕阳的余晖中,他们相依相偎,静享这一刻的宁静与美好。酒杯中的液体在微风中轻轻摇曳,仿佛在诉说着他们甜蜜的时光。这一刻,世界仿佛静止,只有他们的心跳声在回响。

你可以参考上述 cURL 的用法,修改 Prompt 并改成你自己想要实现的目标,来让大模型帮助你完成任务。

视频理解价格预估

视频理解模型的价格会受到 Prompt 长度和视频长度的影响,视频越长,价格越高。这里有一些不同长度的视频在 step-1.5v-mini 下的价格预估供你参考。

视频分辨率视频长度输入 token预估输入价格
3840x216000:1452380.04096 元
4096x216001:02240640.192512 元
引入 Prompt 缓存降低费用

注意事项

  • 在使用时,强烈建议将视频放在指令前,这样可以让大模型获得更好的效果。
  • 视频存在下载和审核的过程,耗时较长,因此在设计产品时,可设计相应的等待交互,帮助用户降低焦虑。
  • step-1.5v-mini 模型暂时不支持 tool_call。
  • step-1.5v-mini 模型暂时只支持 1 个小于 128MB 的 MP4 视频文件 URL,如果你需要上传更大的视频或其他格式,可以使用 ffmpeg (opens in a new tab) 将视频切割为多个小于 128MB 的 MP4 视频,具体操作方式可参考下方说明。
  • 由于视频文件需要从你的服务器下载到阶跃星辰的服务器,所以下载速度将会直接影响最终返回的速度,你可以将视频文件放在可被高速访问的地址(如对象存储),以便于阶跃星辰服务器下载视频用于视频理解。

常见问题

使用 Files API 加速视频理解

在使用视频理解时,如果传入的是外部的 URL,阶跃星辰的服务器将会请求外部 URL,获取视频内容并进行生成。生成的速度将会受到视频下载速度的影响,因此,我们推荐将视频放置在 CDN 或具有较大下载带宽的对象存储上,以便于对视频进行更快的下载。但如果你的视频需要重复使用,比如用来做 Few-shot,则可以考虑将视频使用阶跃星辰 Files API 上传至阶跃星辰文件存储服务上,以避免重复下载,产生持续的流量消耗。

你可以调用上传文件 API,并传入文件,选择 purpose 为 storage,上传完成后所获取的 File ID 则可以在对话过程中使用。在拿到 File ID 后,你需要在 File ID 前拼上 stepfile://,用于标注这个图片从阶跃星辰文件服务中获取,后续模型在推进推理时,将会从阶跃星辰文件存储服务上获取文件,从而降低下载文件所需的时间,提升整体推理的时延。

ffmpeg 视频切割操作指南

切分视频文件

当你要处理的适配文件大于 128MB 时,你可以使用 ffmpeg 将视频切割为多个视频,并通过模型将视频内容总结后,作为上下文传递在对话中,以便于使用完整的视频进行对话。如:将 sample.mp4 切分成若干个 120 秒的视频文件。

ffmpeg -i sample.mp4 -acodec copy -f segment -segment_time 120 -vcodec copy -reset_timestamps 1 -map 0 output_time_%d.mp4

将其他格式转换为 MP4 格式

当你需要将视频从其他格式转换为 MP4 格式时,可以通过 ffmpeg 命令进行转换。如:将 sample.mkv 转换为 sample.mp4 格式可用如下命令:

ffmpeg -i sample.mkv -codec copy sample.mp4