A asynchronous Python client for Hikvision ISAPI with enhanced support for two-way audio and stream data.
Project description
hik_isapi_audio
hik_isapi_audio 是一个轻量级、高性能的 Python 异步客户端,专门用于与海康威视(Hikvision)摄像头进行 ISAPI 协议交互。
与市面上现有的库不同,本项目除了支持基础的云台操作外,核心亮点在于对音频数据(Audio Data)的封装,支持实时语音对讲、广播以及音频流的获取。
✨ 核心特性
- 语音对讲 (Audio Two-way): 支持基于
System/TwoWayAudio的音频流处理。 - 云台控制 (Access Control): 轻松实现摄像头的旋转\倾斜操作。
- 简单易用: 基于
aiohttp的封装,自动处理 Digest 摘要认证。 - 流式传输: 支持处理海康私有的音频打包格式,方便接入 AI 语音识别或播放器。
安装
use pip
pip install hik_isapi_audio
pip install 'hik_isapi_audio[mic]' # 可选依赖: 支持麦克风
use uv
uv add hik_isapi_audio
uv add hik_isapi_audio --extra mic # 可选依赖: 支持麦克风
🚀 快速开始
import asyncio
from hik_isapi_audio import HikCameraControl
cam = HikCameraControl("192.168.1.64", "admin", "password")
# 1. 播放g711a格式音频文件
asyncio.run(cam.play_audio("tests/data/test.g711a"))
# 2. 云台移动
asyncio.run(cam.ptz_move(pan=50, duration=2))
asyncio.run(cam.ptz_move(pan=0, tilt=-10, duration=2))
# 3. 麦克风实时录制播放
async def test_mic_capture_task(cam):
from hik_isapi_audio.mic import mic_capture_task, mic_data_generator
queue = asyncio.Queue(maxsize=15)
token = await cam.get_token_for_audio_data()
await cam.voice_open()
try:
async with asyncio.TaskGroup() as tg:
tg.create_task(mic_capture_task(queue))
tg.create_task(cam.socket_send_task(mic_data_generator(queue), token))
finally:
await cam.voice_close()
asyncio.run(test_mic_capture_task(cam))
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
hik_isapi_audio-0.1.0.tar.gz
(5.3 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hik_isapi_audio-0.1.0.tar.gz.
File metadata
- Download URL: hik_isapi_audio-0.1.0.tar.gz
- Upload date:
- Size: 5.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
683a1cb41602bce1aabf3300f8c2f65ae6f4cda2e9db30b890162fbe76340577
|
|
| MD5 |
6b41f62a6bb4f19a5213a825b808c429
|
|
| BLAKE2b-256 |
73397ab9b5aae87e5480d3938cc2af41d26ddcdcb10aa80207151f82177a1ba0
|
File details
Details for the file hik_isapi_audio-0.1.0-py3-none-any.whl.
File metadata
- Download URL: hik_isapi_audio-0.1.0-py3-none-any.whl
- Upload date:
- Size: 6.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a0d6fd45f32be220a270494e0854c485e7d586c01a84714a1060526ba9449094
|
|
| MD5 |
e62052ec580533937e9f2dd5262d0540
|
|
| BLAKE2b-256 |
bf3454a364e1b921cf2be5bcab2024470a0e5aa1f7d352b51c537f347730a1db
|