跳到主要内容
萤石可编程设备 Python SDK 使用指南 | 极客日志
Python AI
萤石可编程设备 Python SDK 使用指南 综述由AI生成 萤石可编程设备的 Python SDK 功能,包括 SD 卡管理、云台控制、网络配置、媒体录制及告警设置等核心模块。文中提供了格式化 SD 卡、连接 WiFi、云台巡航等典型代码示例,并列举了各接口的入参、返回值及注意事项,旨在帮助开发者快速完成设备集成与功能开发。
二进制 发布于 2026/3/25 更新于 2026/5/28 2.8K 浏览摄像头 SDK 介绍与使用说明
一、SDK 概述
本 SDK 提供摄像头设备的完整控制能力,涵盖 SD 卡管理、云台控制、网络配置、媒体录制、告警管理等核心功能。支持异步操作、参数配置及状态查询,适用于可编程摄像头设备的开发与维护。
二、核心功能模块
1. 存储管理
SD 卡操作
format_sd_card(percentage):异步格式化 SD 卡(百分比范围 [0,90])
get_sd_status():获取 SD 卡状态(返回分区容量、使用率等信息)
文件系统操作
create_directory(path) / create_file(path):创建目录/文件
delete_path(path):删除路径(支持文件或目录)
get_directory_info(path):查询目录下的文件/目录列表
2. 云台控制
基础控制
ptz_rotate(cfg_str):设置云台水平/垂直角度及速度
ptz_stop():立即停止云台转动
position_correct():校准云台初始位置
预置点管理
ptz_add_preset(preset_index) / ptz_del_preset(preset_index):添加/删除预置点
ptz_call_preset(preset_index):调用指定预置点
ptz_del_preset_all():清空所有预置点
巡航控制
ptz_set_cruise(cfg_str):设置巡航路径(支持 1-4 个预置点)
ptz_cruise_enable(enable):开启/关闭巡航模式
3. 网络与 WiFi
WiFi 配置
get_wifi_list(count):获取可用 WiFi 列表(最多 10 个)
connect_wifi_async(cfg_str):异步连接指定 WiFi(需密码及加密方式)
disconnect_wifi():断开当前 WiFi 连接
网络参数
get_network_param():查询当前 IP、网关等网络信息
set_network_parameters(cfg_str):手动设置 IP、DNS 等参数
4. 媒体录制与抓图
视频/图片操作
save_video_by_time(cfg_str):按时间范围保存视频到 SD 或云端
start_media_record(cfg_str) / stop_media_record(cfg_str):开始/停止视频录制
start_local_snapshot(cfg_str):摄像头抓图(支持本地或云端存储)录音功能
start_mic_record(cfg_str) / stop_mic_record(cfg_str):开始/停止录音
5. 告警与 OSD 管理
告警配置
get_alarm_info():查询已启用的告警类型(如人形检测、声音告警等)
set_alarm_status(cfg_str):开启/关闭指定告警类型
get_alarm_events():获取最近 200 条告警事件记录
画面设置
set_wdr(cfg_str):设置宽动态范围(WDR)参数
set_mirror(cfg_str):镜像翻转画面
三、典型使用示例
示例 1:格式化 SD 卡并查询状态
result = format_sd_card(percentage=90 )
if result == 0 :
print ("格式化任务已提交" )
else :
print ("格式化失败" )
sd_status = get_sd_status()
if sd_status != -1 :
print (f"已用空间:{sd_status['used' ]} %, mmc01 剩余空间:{sd_status['free_mmc01' ]} GB" )
示例 2:设置 WiFi 并获取网络信息
wifi_config = {
"ssid" : "TP-LINK_35EB" ,
"password" : "12345678" ,
"security" : 4
}
result = connect_wifi_async(cfg_str=json.dumps(wifi_config))
if result == 0 :
print ("WiFi 连接请求已提交" )
network_info = get_network_param()
if network_info != -1 :
print (f"IP 地址:{network_info['ip_addr' ]} , 信号强度:{network_info['signal_strength' ]} " )
示例 3:云台巡航控制
cruise_config = {
"preset_num" : 2 ,
"preset_no" : [1 , 3 ]
}
result = ptz_set_cruise(cfg_str=json.dumps(cruise_config))
if result == 0 :
ptz_cruise_enable(enable=1 )
四、注意事项
参数范围校验
百分比参数(如 format_sd_card 的 percentage)需在 [0,90] 范围内。
预置点索引需在 [1,12] 范围内。
错误处理
函数返回非 0 值表示操作失败,需检查输入参数或设备状态。
状态查询函数(如 get_sd_status)返回 -1 表示查询失败。
异步操作
格式化 SD 卡、WiFi 连接等操作为异步,需确保设备完成操作后再执行后续步骤。
云存储 ID 查询
涉及云端存储的接口(如 save_video_by_time, ptz_panoramic, start_local_snapshot, start_media_record, start_mic_record)需通过 get_storage_id 或 get_and_clear_all_storages 获取云存储 ID。
JSON 参数格式
所有 JSON 参数需严格遵循文档中的字段定义,确保键名和类型正确。
五、开发建议
模块化设计 :按功能模块(如存储、网络、云台)划分代码,便于维护。
异常重试机制 :对关键操作(如 SD 卡格式化、网络连接)增加重试逻辑。
日志记录 :记录关键 API 的输入、输出及错误信息,便于调试。
如需具体接口的详细用法,请参考对应函数的文档说明。
六、函数说明
1. format_sd_card(percentage)
描述 :异步格式化 SD 卡。
入参 :
percentage (int) - 格式化的百分比 [0,90]。
返回 :0(任务已提交);非 0(操作失败)。
2. create_directory(path)
描述 :在 SD 卡中创建目录。
入参 :
返回 :0(创建成功);非 0(创建失败)。
3. create_file(path)
描述 :在 SD 卡中创建空文件。
入参 :
返回 :0(创建成功);非 0(创建失败)。
4. delete_path(path)
描述 :删除 SD 卡中指定目录或文件。
入参 :
返回 :0(删除成功);非 0(删除失败)。
5. save_video_by_time(cfg_str)
描述 :按时间段保存视频。
返回 :0(成功);非 0(失败)。
入参 :
cfg_str (str) - JSON 字符串:
{
"start_time" : 1638400000 ,
"end_time" : 1638400000 ,
"sd" : 1
}
6. get_sd_status() {
"used" : 1 ,
"total_mmc01" : 102.41 ,
"free_mmc01" : 65.31 ,
"total_mmc02" : 256.00 ,
"free_mmc02" : 180.50 ,
"total_mmc03" : 0.00 ,
"free_mmc03" : 0.00 ,
"total_mmc04" : 0.00 ,
"free_mmc04" : 0.00 ,
"diskStatus" : 0
}
7. get_directory_info(path) {
"num_files" : 4 ,
"num_directories" : 5 ,
"files" : [ "all.pem" , "config.txt" , ...] ,
"directories" : [ "voice" , "certs" , ...]
}
8. get_ptz_capa() {
"pan_angle_min" : -340 ,
"pan_angle_max" : 340 ,
"tilt_angle_min" : -60 ,
"tilt_angle_max" : 60 ,
"speed_min" : 1 ,
"speed_max" : 3
}
9. ptz_rotate(cfg_str)
描述 :云台转动。
返回 :0(操作成功);非 0(操作失败)。
入参 :
cfg_str (str) - JSON 字符串:
{
"pan_angle" : 10 ,
"tilt_angle" : 20 ,
"speed" : 1
}
10. ptz_stop()
描述 :停止云台转动。
入参 :无。
返回 :0(操作成功);非 0(操作失败)。
11. position_correct()
描述 :校准云台位置。
入参 :无。
返回 :0(校准成功);非 0(校准失败)。
12. ptz_add_preset(preset_index)
描述 :新增预置点。
入参 :
preset_index (int) - 预置位索引 [1,12]。
返回 :0(操作成功);非 0(操作失败)。
13. ptz_del_preset(preset_index)
描述 :删除指定预置点。
入参 :
preset_index (int) - 预置位索引 [1,12]。
返回 :0(删除成功);非 0(操作失败)。
14. ptz_del_preset_all()
描述 :清空所有预置点。
入参 :无。
返回 :0(清空成功);非 0(操作失败)。
15. ptz_call_preset(preset_index)
描述 :调用指定预置点。
入参 :
preset_index (int) - 预置位索引 [1,12]。
返回 :0(调用成功);非 0(操作失败)。
16. ptz_get_preset() {
"preset_num" : 1 ,
"preset_index" : [ 1 ]
}
17. ptz_panoramic(cfg_str)
描述 :设置全景图保存路径、命名规则及存储类型。
补充说明 :
生成 12 张图:pic_name1.jpg 到 pic_name12.jpg。
type=1 时可用 get_storage_id 查询云存储 ID。
返回 :0(操作成功);非 0(操作失败)。
入参 :
cfg_str (str) - JSON 字符串:
{
"path" : "/mnt/mmc02/.../pano" ,
"pic_name" : "pano" ,
"type" : 0
}
18. ptz_set_cruise(cfg_str)
描述 :新增/修改巡航路径。
返回 :0(操作成功);非 0(操作失败)。
入参 :
cfg_str (str) - JSON 字符串:
{
"preset_num" : 2 ,
"preset_no" : [ 1 , 2 ]
}
19. ptz_del_cruise()
描述 :删除巡航路径。
入参 :无。
返回 :0(操作成功);非 0(操作失败)。
20. ptz_cruise_enable(enable)
描述 :开启/停止巡航。
入参 :
enable (int) - 1=开启,0=停止。
返回 :0(操作成功);非 0(操作失败)。
21. ptz_get_cruise() {
"preset_num" : 2 ,
"preset_no" : [ 1 , 3 ] ,
"enable" : 1
}
22. set_privacy_enable(enable)
描述 :开启/关闭隐私遮蔽。
入参 :
enable (int) - 1=开启,0=关闭。
返回 :0(操作成功);非 0(操作失败)。
23. get_wifi_list(count)
描述 :获取 WiFi 列表。
入参 :
count (int) - 获取列表个数 (1-10)。
[
{
"ssid" : "TP-LINK_35EB" ,
"mode" : 0 ,
"security" : 4 ,
"channel" : 161 ,
"signal_strength" : 100 ,
"speed" : 150 ,
"ap_address" : "04:f9:f8:f1:35:ed" ,
"rssi" : -35 ,
"res" : 0
}
]
24. connect_wifi_async(cfg_str)
描述 :设置 WiFi 配置。
返回 :0(操作成功);非 0(操作失败)。
入参 :
cfg_str (str) - JSON 字符串:
{
"ssid" : "TP-LINK_35EB" ,
"password" : "12345678" ,
"security" : 4
}
25. disconnect_wifi()
描述 :断开 WiFi 连接。
入参 :无。
返回 :0(操作成功);非 0(操作失败)。
26. get_network_param() {
"ip_addr" : "XXX.XXX.3.1" ,
"gateway" : "XXX.XXX.3.1" ,
"pri_dns" : "XXX.XXX.3.1" ,
"sec_dns" : "" ,
"ssid" : "EZVIZ-11-11" ,
"mode" : 0 ,
"security" : 4 ,
"channel" : 161 ,
"signal_strength" : 100 ,
"speed" : 150 ,
"ap_address" : "04:f9:f8:f1:35:ed"
}
27. set_network_parameters(cfg_str)
描述 :设置网络参数。
返回 :0(操作成功);非 0(操作失败)。
入参 :
cfg_str (str) - JSON 字符串:
{
"ip_addr" : "XXX.XXX.3.1" ,
"gateway" : "XXX.XXX.3.1" ,
"pri_dns" : "XXX.XXX.3.1" ,
"sec_dns" : "XXX.XXX.3.1"
}
28. start_local_snapshot(cfg_str)
描述 :摄像头抓图。
补充说明 :
type=1 时可用 get_storage_id 查询云存储 ID。
返回 :0(操作成功);非 0(操作失败)。
入参 :
cfg_str (str) - JSON 字符串:
{
"type" : 0 ,
"dest_addr" : "/mnt/mmc02/.../xxx.jpg" ,
"resolution" : 0
}
29. led_control(enable)
描述 :开启/关闭 LED 指示灯。
入参 :
enable (int) - 1=开启,0=关闭。
返回 :0(操作成功);非 0(操作失败)。
30. white_led_control(enable)
描述 :开启/关闭白光灯。
入参 :
enable (int) - 1=开启,0=关闭。
返回 :0(操作成功);非 0(操作失败)。
31. infrared_control(enable)
描述 :开启/关闭红外灯。
入参 :
enable (int) - 1=开启,0=关闭。
返回 :0(操作成功);非 0(操作失败)。
32. start_media_record(cfg_str)
描述 :开始视频存储。
补充说明 :
type=1 时可用 get_storage_id 查询云存储 ID。
返回 :0(操作成功);非 0(操作失败)。
入参 :
cfg_str (str) - JSON 字符串:
{
"stream_idx" : 0 ,
"type" : 0 ,
"pack_type" : 1 ,
"dest_addr" : "/mnt/mmc02/.../xxx.mp4"
}
33. stop_media_record(cfg_str)
描述 :异步停止媒体录制。
返回 :0(停止请求已受理);非 0(操作失败)。
入参 :
cfg_str (str) - JSON 字符串(需与开始录制参数一致):
{
"stream_idx" : 0 ,
"type" : 0 ,
"pack_type" : 1 ,
"dest_addr" : "/mnt/mmc02/.../xxx.mp4"
}
34. start_media_preview(cfg_str)
描述 :媒体预览推流。
返回 :0(操作成功);非 0(操作失败)。
入参 :
cfg_str (str) - JSON 字符串:
{
"stream_idx" : 0 ,
"enable" : 0 ,
"url" : "rtmp://xxx.xxx.xxx.xxx/live/xxx"
}
35. start_mic_record(cfg_str)
描述 :开始录音。
补充说明 :
type=1 时可用 get_storage_id 查询云存储 ID。
返回 :0(操作成功);非 0(操作失败)。
入参 :
cfg_str (str) - JSON 字符串:
{
"type" : 0 ,
"dest_addr" : "/mnt/mmc02/.../XXXX.aac"
}
36. stop_mic_record(cfg_str)
描述 :异步停止录音。
返回 :0(停止请求已受理);非 0(操作失败)。
入参 :
cfg_str (str) - JSON 字符串:
{
"type" : 0 ,
"dest_addr" : "/mnt/mmc02/.../XXXX.aac"
}
37. get_storage_id(dest_addr)
描述 :根据存储地址查询云存储 ID。
入参 :
dest_addr (str) - 文件存储地址。
返回 :
storage_id (str) - 文件存储 ID(查询不到时返回空字符串)。
数据来源 :
save_video_by_time, ptz_panoramic, start_local_snapshot, start_media_record, start_mic_record。
38. get_and_clear_all_storages()
描述 :查询所有云存储 ID。
入参 :无。
数据来源 :同 get_storage_id。
{
"/XXX/XXX1.jpg" : "E1$0$11$0$PY4O4B~$N1$BF4904736-1$00$0a81" ,
"/XXX/XXX2.jpg" : "E1$0$12$0$PY4O4B~$N1$BF4904736-1$00$0a86"
}
39. set_wdr(cfg_str)
描述 :设置宽动态使能和等级。
返回 :0(操作成功);非 0(操作失败)。
入参 :
cfg_str (str) - JSON 字符串:
{
"enable" : 0 ,
"level" : 10
}
40. get_wdr() {
"enable" : 1 ,
"level" : 10
}
41. get_alarm_info()
描述 :获取告警状态列表。
入参 :无。
告警标识说明 :
app_video_change(画面变化), app_human_detect(人形告警), app_db_detect(大噪声检测), app_babycry_detect(哭声检测), app_fix_gesture_recognize(手势识别)。
[
{ "appid" : "app_human_detect" , "enable" : 1 } ,
{ "appid" : "app_db_detect" , "enable" : 1 }
]
42. set_alarm_status(cfg_str)
描述 :告警状态设置。
返回 :0(操作成功);非 0(操作失败)。
入参 :
cfg_str (str) - JSON 字符串:
{
"appid" : "app_db_detect" ,
"enable" : 1
}
43. get_alarm_status(cfg_str) {
"appid" : "app_db_detect" ,
"enable" : 1
}
入参 :
cfg_str (str) - JSON 字符串:
{
"appid" : "app_db_detect"
}
44. get_alarm_events()
描述 :获取告警事件(最多 200 条)。
入参 :无。
[
{ "app_id" : "app_db_detect" , "alarm_time" : 1754632006 } ,
{ "app_id" : "app_human_detect" , "alarm_time" : 1754632010 }
]
45. set_mirror(cfg_str)
描述 :镜像翻转画面。
返回 :0(操作成功);非 0(操作失败)。
入参 :
cfg_str (str) - JSON 字符串:
{
"channel" : 1 ,
"mode" : "CENTER" ,
"enable" : 1
}
46. get_osd_param() {
"attribute" : 4 ,
"datetime_overlay" : {
"enabled" : 1 ,
"clock_type" : 0 ,
"positionx" : 576 ,
"positiony" : 8732 ,
"type" : 0 ,
"display_week" : 0
} ,
"channame_overlay" : {
"enabled" : 0 ,
"positionx" : 608 ,
"positiony" : 514 ,
"name" : "Camera_BF4904736"
}
}
47. set_osd_param(cfg_str)
描述 :设置 OSD 参数。
返回 :0(操作成功);非 0(操作失败)。
入参 :
cfg_str (str) - JSON 字符串:
{
"attribute" : 4 ,
"bDateTimeOverlay" : 1 ,
"bchannelNameOverlay" : 1 ,
"datetime_overlay" : { ... } ,
"channame_overlay" : { ... }
}
48. set_audio_volume(cfg_str)
描述 :设置音频参数。
返回 :0(操作成功);非 0(操作失败)。
入参 :
cfg_str (str) - JSON 字符串:
{
"mic_volume" : 10 ,
"speaker_volume" : 50
}
49. get_audio_volume() {
"mic_volume" : 10 ,
"speaker_volume" : 50
}
50. set_image_style(cfg_str)
描述 :设置画面风格模式。
返回 :0(操作成功);非 0(操作失败)。
入参 :
cfg_str (str) - JSON 字符串:
51. get_image_style()
52. set_media_resolution(cfg_str)
描述 :设置分辨率(仅主码流)。
返回 :0(操作成功);非 0(操作失败)。
入参 :
cfg_str (str) - JSON 字符串:
53. get_media_resolution()
54. start_play_file_speaker(path)
描述 :播放音频文件(仅支持 AAC 格式)。
入参 :
返回 :0(操作成功);非 0(操作失败)。
55. stop_play_speaker()
描述 :停止语音或文件播报。
入参 :无。
返回 :0(操作成功);非 0(操作失败)。
相关免费在线工具 RSA密钥对生成器 生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
Mermaid 预览与可视化编辑 基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
随机西班牙地址生成器 随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online
curl 转代码 解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
Base64 字符串编码/解码 将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
Base64 文件转换器 将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online