大规模使用 Azure AI 视频索引器时要考虑的事项
使用 Azure AI 视频索引器为视频编制索引并且视频存档正在增长时,请考虑缩放。
本文将回答以下问题:
- 是否需要考虑任何技术约束?
- 是否有智能且高效的方法来执行此操作?
- 是否可以防止在此过程中花费太多资金?
本文提供了有关如何大规模使用 Azure AI 视频索引器的六种最佳做法。
考虑通过字节数组使用 URL 上传视频
借助 Azure AI 视频索引器,可以选择从 URL 上传视频,或通过将文件作为字节数组发送来直接上传视频,后者附带一些约束。
首先,文件大小有限制。 使用 URL 时,字节数组文件的大小限制为 2 GB,而上传大小限制为 30 GB。
其次,考虑一些可能会影响性能并因此影响缩放能力的问题:
- 使用多部分发送文件意味着高度依赖网络,
- 服务可靠性,
- 连接性,
- 上传速度,
- 万维网中某个位置丢失了数据包。
使用 URL 上传视频时,只需提供媒体文件位置的路径,其余由视频索引器负责(查看上传视频 API 中的 videoUrl
字段)。
提示
使用上传视频 API 的 videoUrl
可选参数。 此外,可以使用 AzCopy 快速可靠的方法来将内容提交到存储帐户,以便使用 SAS URL 将其提交到 Azure AI 视频索引器。 Azure AI 视频索引器建议使用 只读 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 上传同一视频,并比较获得的见解。