mirror of
https://github.com/AlexxIT/go2rtc.git
synced 2025-10-15 21:00:56 +08:00
54 lines
2.2 KiB
Markdown
54 lines
2.2 KiB
Markdown
# Home Accessory Protocol
|
|
|
|
> PS. Character = Characteristic
|
|
|
|
**Device** - HomeKit end device (swith, camera, etc)
|
|
|
|
- mDNS name: `MyCamera._hap._tcp.local.`
|
|
- DeviceID - mac-like: `0E:AA:CE:2B:35:71`
|
|
- HomeKit device is described by:
|
|
- one or more `Accessories` - has `AID` and `Services`
|
|
- `Services` - has `IID`, `Type` and `Characters`
|
|
- `Characters` - has `IID`, `Type`, `Format` and `Value`
|
|
|
|
**Client** - HomeKit client (iPhone, iPad, MacBook or opensource library)
|
|
|
|
- ClientID - static random UUID
|
|
- ClientPublic/ClientPrivate - static random 32 byte keypair
|
|
- can pair with Device (exchange ClientID/ClientPublic, ServerID/ServerPublic using Pin)
|
|
- can auth to Device using ClientPrivate
|
|
- holding persistant Secure connection to device
|
|
- can read device Accessories
|
|
- can read and write device Characters
|
|
- can subscribe on device Characters change (Event)
|
|
|
|
**Server** - HomeKit server (soft on end device or opensource library)
|
|
|
|
- ServerID - same as DeviceID (using for Client auth)
|
|
- ServerPublic/ServerPrivate - static random 32 byte keypair
|
|
|
|
## AAC ELD
|
|
|
|
Requires ffmpeg built with `--enable-libfdk-aac`
|
|
|
|
```
|
|
-acodec libfdk_aac -aprofile aac_eld
|
|
```
|
|
|
|
| SampleRate | RTPTime | constantDuration | objectType |
|
|
|------------|---------|--------------------|--------------|
|
|
| 8000 | 60 | =8000/1000*60=480 | 39 (AAC ELD) |
|
|
| 16000 | 30 | =16000/1000*30=480 | 39 (AAC ELD) |
|
|
| 24000 | 20 | =24000/1000*20=480 | 39 (AAC ELD) |
|
|
| 16000 | 60 | =16000/1000*60=960 | 23 (AAC LD) |
|
|
| 24000 | 40 | =24000/1000*40=960 | 23 (AAC LD) |
|
|
|
|
## Useful links
|
|
|
|
- https://github.com/apple/HomeKitADK/blob/master/Documentation/crypto.md
|
|
- https://github.com/apple/HomeKitADK/blob/master/HAP/HAPPairingPairSetup.c
|
|
- [Extracting HomeKit Pairing Keys](https://pvieito.com/2019/12/extract-homekit-pairing-keys)
|
|
- [HAP in AirPlay2 receiver](https://github.com/openairplay/airplay2-receiver/blob/master/ap2/pairing/hap.py)
|
|
- [HomeKit Secure Video Unofficial Specification](https://github.com/Supereg/secure-video-specification)
|
|
- [Homebridge Camera FFmpeg](https://sunoo.github.io/homebridge-camera-ffmpeg/configs/)
|
|
- https://github.com/ljezny/Particle-HAP/blob/master/HAP-Specification-Non-Commercial-Version.pdf |