简介
多模态检索目前主要由视频入库与视频检索两个功能组成。首先通过视频入库向视频检索库内存入若干数据,随后可通过视频检索从视频检索库中检索和给定检索值接近的视频。
场景一:视频入库
步骤1: 发起视频入库任务
发起视频入库任务,可选使用 URL 方法或者 COS 方法入库视频。可选传入回调地址,当传入回调地址时,任务完成后会将任务结果以 json 格式使用 POST 方法发送到指定的回调地址。API 文档参见 发起视频入库任务。
请求示例
URL 发起视频入库任务示例:
{"InputInfo": {"Type": "URL","UrlInputInfo": {"Url": "http://qq.com/test.mp4"}},"TaskNotifyConfig": {"NotifyType": "URL","NotifyUrl": "http://qq.com:1234/callback"}}
COS 发起视频入库任务示例:
{"InputInfo": {"Type": "COS","CosInputInfo": {"Bucket": "test-bucket","Region": "ap-nanjing","Object": "/movie/test.mp4"}},"TaskNotifyConfig": {"NotifyType": "URL","NotifyUrl": "http://qq.com:1234/callback"}}
说明:
发起入库任务接口中 TaskNotifyConfig 为可选字段,不使用此字段时任务结束后不自动发送任务结果,需要手动调用查询接口查询任务结果。
传入视频需要有音频,暂不支持只有画面没有音频的视频。
响应示例
{"Response": {"TaskId": "251***279-VideoDBEntryTask-60e4ae3***************b7e8af25ec","RequestId": "3c1***19-cfe9-470e-b241-907877d6fb03"}}
向回调地址发送的任务结果示例:
{"Response": {"TaskId": "251***279-VideoDBEntryTask-60e4ae3***************b7e8af25ec","Status": "SUCCESS","VideoDBEntryTaskResults": [{"VideoId": "c928**********7813df05aa6fc3e408"}]}}
说明:
VideoId 为根据入库视频生成的唯一视频ID。
仅当 Status 状态为 SUCCESS 时,VideoDBEntryTaskResults 为非空,当 Status 状态为 FAIL 时,VideoDBEntryTask 为空。
步骤2: (可选)查询视频入库任务状态
请求示例
{"TaskId": "251***279-VideoDBEntryTask-60e4ae3***************b7e8af25ec"}
响应示例
{"Response": {"RequestId": "4fa***e0-880c-43d7-b150-dc3dd80a5995","TaskId": "251***279-VideoDBEntryTask-60e4ae3***************b7e8af25ec","Status": "SUCCESS","VideoDBEntryTaskResults": [{"VideoId": "c928**********7813df05aa6fc3e408"}]}}
说明:
仅当 Status 状态为 SUCCESS 时,VideoDBEntryTaskResults 为非空。Status 可能的状态有 WAITING、PROCESSING、SUCCESS 和 FAIL。
任务状态信息保存7天。
场景二:视频检索
步骤1: 发起视频检索任务
发起视频检索任务,使用检索值对视频进行检索(目前支持文本检索)。可选传入回调地址,当传入回调地址时,任务完成后会将任务结果以 json 格式使用 POST 方法发送到指定的回调地址。API 文档参见 发起视频检索任务。
请求示例
{"SearchValueInput": {"SearchValueType": "Text","TextInput": "喜欢"},"Limit": 5,"TaskNotifyConfig": {"NotifyType": "URL","NotifyUrl": "http://qq.com:1234/callback"}}
说明:
Limit 字段为可选字段,取值范围[1,20],Limit 取 K 的时候返回最接近检索值的前 K 条视频,不传此字段时使用默认值5。
TaskNotifyConfig 为可选字段,不使用此字段时任务结束后不自动发送任务结果,需要手动调用查询接口查询任务结果。
SearchValueType 目前只支持 Text。
响应示例
{"Response": {"TaskId": "251***279-SearchTask-60e4ae3***************b7e8af25ec","RequestId": "40e***9f-3184-4f69-8bed-7c677763d37a"}}
向回调地址发送的任务结果示例
{"Response": {"TaskId": "251***279-SearchTask-60e4ae3***************b7e8af25ec","Status": "SUCCESS","SearchTaskResults": [{"Score": 0.70121, "VideoId": "932fbf**********97a4c0229c889de"},{"Score": 0.68495, "VideoId": "03ac42**********95807370499"},{"Score": 0.68263, "VideoId": "988b0f**********4c229c889de"},{"Score": 0.6748, "VideoId": "058482**********95807370499"},{"Score": 0.67364, "VideoId": "c92846**********13df05a3408"}]}}
说明:
仅当 Status 状态为 SUCCESS 时,SearchTaskResults 为非空,当 Status 状态为 FAIL 时,SearchTaskResults 为空。
Score 字段为视频和检索值的相关度,取值范围[0,1]。越大视频和检索值越相关。
步骤2: (可选)查询视频检索任务状态
请求示例:
{"TaskId": "251***279-SearchTask-60e4ae3***************b7e8af25ec"}
响应示例:
{"Response": {"RequestId": "4fa***e0-880c-43d7-b150-dc3dd80a5995","TaskId": "251***279-SearchTask-60e4ae3***************b7e8af25ec","Status": "SUCCESS","SearchTaskResults": [{"Score": 0.70121, "VideoId": "932fbf**********97a4c0229c889de"},{"Score": 0.68495, "VideoId": "03ac42**********95807370499"},{"Score": 0.68263, "VideoId": "988b0f**********4c229c889de"},{"Score": 0.6748, "VideoId": "058482**********95807370499"},{"Score": 0.67364, "VideoId": "c92846**********13df05a3408"}]}}
说明:
仅当 Status 状态为 SUCCESS 时,SearchTaskResults 为非空。Status 可能的状态有 WAITING、PROCESSING、SUCCESS 和 FAIL。
任务状态信息保存7天。
快速接入
2. 然后,进入媒体处理 API 3.0 Explorer 在线接口调试页面,在左侧选择需要调用的接口,并填写输入参数。输入参数在 API 3.0 Explorer 界面的文档说明选项中可以查看对应接口具体文档。
3. 输入参数支持表单输入和 JSON 输入两种方式。表单输入中未使用到的字段无需填写,可切换为 JSON 方式输入上述示例中请求示例格式的 JSON 数据。
4. 填写输入参数后,选择右上角的代码示例选项,可以看到自动生成的不同编程语言代码(可支持 Java、Python、Node.js、PHP、GO、.NET、C++ 语言),生成代码中的部分字段信息和填写内容是关联的,如需调整传入参数,可在左侧修改参数值后重新生成代码。
此外,选择右上角的在线调用选项卡,单击发送请求可进行真实请求,供您调试、参考。
5. 参考 腾讯云 SDK 安装 SDK,SDK 安装完成后,可以在您的项目代码中参考代码示例中生成的代码进行开发。