Azure Video Analyzer Edge SDK库用于Python
项目描述
Azure Video Analyzer Edge客户端库用于Python
已弃用。我们正在淘汰Azure Video Analyzer预览服务,建议您在2022年12月1日之前将应用程序从Video Analyzer迁移出来。此SDK不再维护。
Azure Video Analyzer是Azure应用AI服务,为您提供一个平台,可以构建智能视频应用程序,该应用程序可以跨越边缘和云基础设施。该平台提供捕获、录制和分析实时视频的能力,并将结果、视频和视频分析发布到边缘或云中的Azure服务。它被设计成一个可扩展的平台,使您能够连接不同的视频推理边缘模块,例如认知服务模块或使用开源机器学习或Azure机器学习训练的自定义推理模块。
使用视频分析边缘客户端库以
- 简化与Microsoft Azure IoT SDKs的交互
- 以编程方式构建管道拓扑和实时管道
包(PyPI) | 产品文档 | 直接方法 | 管道 | 源代码 | 示例
入门
安装包
使用pip安装Python的Video Analyzer Edge客户端库
pip install azure-media-videoanalyzer-edge
先决条件
-
要使用此包,需要Python 2.7、3.6或更高版本。
-
您需要一个有效的Azure订阅以及用于此包的IoT设备连接字符串。
-
要与Azure IoT Hub交互,您需要运行
pip install azure-iot-hub
-
您需要使用与您使用的Video Analyzer Edge模块版本相对应的SDK版本。
SDK 视频分析边缘模块 1.0.0b3 1.1 1.0.0b2 1.0 1.0.0b1 1.0
创建管道拓扑和发送请求
请访问示例以获取入门代码。
关键概念
管道拓扑与实时管道
一个管道拓扑是创建实时管道的蓝图或模板。它使用占位符作为参数值的定义。一个实时管道引用管道拓扑并指定参数。这样,您就可以拥有多个引用同一拓扑但参数值不同的实时管道。有关更多信息,请访问管道拓扑和实时管道。
CloudToDeviceMethod
CloudToDeviceMethod
是azure-iot-hub SDK的一部分。此方法允许您向IoT hub中的设备发送单向通知。在我们的情况下,我们希望与各种直接方法(如PipelineTopologySetRequest
和PipelineTopologyGetRequest
)进行通信。要使用CloudToDeviceMethod
,您需要传递两个参数:method_name
和payload
。
第一个参数,method_name
,是您发送的直接方法请求的名称。请确保使用每个方法预定义的method_name
属性。例如,PipelineTopologySetRequest.method_name
。
第二个参数,payload
,发送整个序列化的管道拓扑请求。例如,PipelineTopologySetRequest.serialize()
示例
创建管道拓扑
要创建管道拓扑,您需要定义源和汇。
#Parameters
user_name_param = ParameterDeclaration(name="rtspUserName",type="String",default="testusername")
password_param = ParameterDeclaration(name="rtspPassword",type="SecretString",default="testpassword")
url_param = ParameterDeclaration(name="rtspUrl",type="String",default="rtsp://www.sample.com")
#Source and Sink
source = RtspSource(name="rtspSource", endpoint=UnsecuredEndpoint(url="${rtspUrl}",credentials=UsernamePasswordCredentials(username="${rtspUserName}",password="${rtspPassword}")))
node = NodeInput(node_name="rtspSource")
sink = VideoSink(name="videoSink", inputs=[node], video_name="video", local_media_cache_path="/var/lib/videoanalyzer/tmp/", local_media_cache_maximum_size_mi_b="1024");
pipeline_topology_properties = PipelineTopologyProperties()
pipeline_topology_properties.parameters = [user_name_param, password_param, url_param]
pipeline_topology_properties.sources = [source]
pipeline_topology_properties.sinks = [sink]
pipeline_topology = PipelineTopology(name=pipeline_topology_name,properties=pipeline_topology_properties)
创建实时管道
要创建实时管道,您需要有现有的管道拓扑。
url_param = ParameterDefinition(name="rtspUrl", value=pipeline_url)
pass_param = ParameterDefinition(name="rtspPassword", value="secret_password")
live_pipeline_properties = LivePipelineProperties(description="Sample pipeline description", topology_name=pipeline_topology_name, parameters=[url_param])
live_pipeline = LivePipeline(name=live_pipeline_name, properties=live_pipeline_properties)
调用直接方法
要在您的设备上调用直接方法,您需要首先使用Video Analyzer Edge SDK定义请求,然后使用IoT SDK的CloudToDeviceMethod
发送该方法请求。
set_method_request = PipelineTopologySetRequest(pipeline_topology=pipeline_topology)
direct_method = CloudToDeviceMethod(method_name=set_method_request.method_name, payload=set_method_request.serialize())
registry_manager = IoTHubRegistryManager(connection_string)
registry_manager.invoke_device_module_method(device_id, module_d, direct_method)
要尝试使用SDK的不同管道拓扑,请参阅官方的示例。
故障排除
- 在通过IoT Hub的
CloudToDeviceMethod
发送方法请求时,请记住不要直接输入方法请求名称。相反,使用[MethodRequestName.method_name]
。 - 在传递给
CloudToDeviceMethod
之前,确保序列化整个方法请求。
下一步
贡献
此项目欢迎贡献和建议。大多数贡献都需要您同意贡献者许可协议(CLA),声明您有权并且实际上确实授予我们使用您贡献的权利。有关详细信息,请访问https://cla.microsoft.com。
如果在使用过程中遇到任何问题,请在我们GitHub上创建一个issue。
提交pull request时,CLA-bot会自动判断您是否需要提供CLA,并适当地装饰PR(例如,标签、注释)。只需遵循bot提供的说明。您只需在整个使用我们的CLA的仓库中执行此操作一次。
本项目已采用微软开源行为准则。如需更多信息,请参阅行为准则FAQ,或通过opencode@microsoft.com发送任何额外的问题或评论。
发布历史
1.0.0b4(2022-04-29)
其他更改
已弃用。我们正在淘汰Azure Video Analyzer预览服务,建议您在2022年12月1日之前将应用程序从Video Analyzer迁移出来。此SDK不再维护。
1.0.0b3(2021-11-09)
- 为ONVIF启用设备添加了设备发现和设备详情请求。
- 添加了远程设备适配器配置,用于在私有网络中摄取视频。
- 为VideoSink添加了保留策略。
1.0.0b2(2021-05-19)
- 更新了软件包的标题和描述。
1.0.0b1(2021-05-19)
初始发布
项目详情
哈希值 for azure_media_videoanalyzer_edge-1.0.0b4-py2.py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1df1fba04dafbc6ebc8a924a772555caa4cf537d5f58fd4bab247c57cd1f70f7 |
|
MD5 | 3d48eb0602c02de9e550a44004860326 |
|
BLAKE2b-256 | d7dbcb646d3407876e50c99f2a3189cc9f82b12c8fd0aa5a36a07ef0bc63965e |