使用 Azure AI 视频索引器索引视频时,如果视频存档不断增加,请考虑进行缩放。
本文将回答以下问题:
- 是否需要考虑任何技术约束?
- 是否有智能且高效的方法来执行此操作?
- 是否可以防止在此过程中花费太多资金?
本文提供了有关如何大规模使用 Azure AI 视频索引器的六种最佳做法。
上传视频时,请考虑使用 URL 而不是字节数组。
借助 Azure AI 视频索引器,可以选择从 URL 上传视频,或通过将文件作为字节数组发送来直接上传视频,后者附带一些约束。
首先,文件大小有限制。 使用 URL 时,字节数组文件的大小限制为 2 GB,而上传大小限制为 30 GB。
其次,考虑一些可能会影响性能并因此影响缩放能力的问题:
- 使用多部分发送文件意味着高度依赖网络,
- 服务可靠性,
- 连接性,
- 上传速度,
- 万维网中某个位置丢失了数据包。
使用 URL 上传视频时,只需提供媒体文件位置的路径,其余由视频索引器负责(查看videoUrl
API 中的 字段)。
提示
使用上传视频 API 的 videoUrl
可选参数。 此外,可以使用 AzCopy 快速可靠的方法来将内容提交到存储帐户,以便使用 SAS URL 将其提交到 Azure AI 视频索引器。 Azure AI 视频索引器建议使用 readonly SAS URL。
遵守带宽限制
Azure AI 视频索引器旨在处理大规模的索引编制。 如果想要充分利用它,还应了解系统的功能并相应地设计集成。 你不想发送一批视频的上传请求,只是为了发现某些电影没有上传,并且你收到了 HTTP 429 响应代码(请求过多)。 API 请求限制为每秒 10 个请求,每分钟最多 120 个请求。
Azure AI 视频索引器在 HTTP 响应中添加标头 retry-after
。 标头指定何时应尝试下一次重试。 在尝试下一个请求之前,请确保你遵守此限制。
使用回叫 URL
与其反复查询请求的上传状态,不如添加一个回调 URL,并等待 Azure AI 视频索引器为您更新信息。 上传请求中存在状态更改时,会收到指向你指定的 URL 的 POST 通知。
可以添加一个回叫 URL 作为上传视频 API 的参数之一。 在 GitHub 存储库上查看代码示例。
对于回叫 URL,还可以使用 Azure Functions。 它是一个无服务器架构的事件驱动平台,可以通过 HTTP 触发并实现后续流程。
回叫 URL 定义
回调 URL 用于通知客户(通过 POST 请求)以下事件:
索引状态更改:
属性:
名称 说明 id
视频 ID state
视频状态 示例:https://test.com/notifyme?projectName=MyProject&id=1234abcd&state=Processed
在视频中标识的人:
属性
名称 说明 id
视频 ID faceId
出现在视频索引中的人脸 ID knownPersonId
在人脸模型中唯一的个人 ID personName
人名 示例:https://test.com/notifyme?projectName=MyProject&id=1234abcd&faceid=12&knownPersonId=CCA84350-89B7-4262-861C-3CAC796542A5&personName=Inigo_Montoya
使用适合你的正确索引参数
在进行有关大规模使用 Azure AI 视频索引器的决策时,请查看如何通过适合您需求的参数来最大化其效用。 通过定义不同的参数来思考你的用例,可以节省资金并加快视频的索引过程。 例如,如果你不打算观看视频,请不要将“预设”设置为“流式处理”,如果你只需要音频见解,请不要为视频见解编制索引。
以最佳分辨率,而不是最高分辨率编制索引
你可能会问,为视频编制索引需要怎样的视频质量?
在许多情况下,索引性能几乎没有 HD (720p) 视频和 4K 视频之间的差异。 你最终会获得几乎相似的见解,并获得相同的信心。 上传电影的质量越高,文件大小就越高,导致上传视频所需的计算能力和时间更高。
例如,对于人脸检测功能,较高的分辨率在许多虽小但在情景中很重要的人脸的情况下有帮助。 但是,这会导致运行时出现二次增加,并增加假正的风险。
因此,建议你验证是否获取了正确的用例结果,并首先在本地对其进行测试。 在 720p 和 4K 中上传相同的视频,并比较你获取的见解。