brutella / hkcam

Open-Source HomeKit Surveillance Camera
https://hochgatterer.me/hkcam/
Apache License 2.0
942 stars 139 forks source link

HomeKit Secure Video Support? #33

Open dfbills opened 5 years ago

dfbills commented 5 years ago

It would be fantastic to expand this product to support Apple's HomeKit Secure Video feature. Apple seems to have tailor made this product to work with hkcam!

looxonline commented 5 years ago

If I understand correctly the secure video implementation requires a subscription to at least the 200GB iCloud service and then it offers a rolling recording in the cloud of 10 days and timestamps events within that recording.

Instead of storing the video in iCloud it would be cool if it could still be stored on the local device (like the snapshots are) so that no monthly sub is required and they would only be captured and stored based on an event and not on a full rolling 10 day window.

brutella commented 5 years ago

@looxonline How would we access the video content stored on disk?

The snapshots are accessed via a custom HomeKit characteristic. This works because snapshots are not that big.

looxonline commented 5 years ago

@brutella Indeed, if the custom characteristic does not support content that is larger than a snapshot then it would be difficult to keep this kind of functionality within the HomeKit ecosystem but the reality remains that we have a very versatile machine (pi) that the hkcam software is running on top of and so provided we can generate small video clips we could handle the viewing of them using another cloud service.

For instance, I have a dropbox account. Let's imagine that we create an automation that takes a snapshot based on a motion sensor AND also takes a short video clip provided we have set this feature to be enabled in some (hypothetical) configuration file. The snapshot will give me some idea of whether or not I am interested in viewing the video clip (wind blowing a leaf - ignore - or maybe something that requires a bit more attention - view clip). If the hkcam were to place the video clips in a folder on the pi and name them something that is intuitive and perhaps matches with the name of the snapshot (date-time-room?) then the user (me or anyone else) could handle how they will sync that folder to their own cloud service (rclone is a very simple tool that will take care of this job easily - https://github.com/ncw/rclone). As the clip is created it would then be synced and then I could simply open my dropbox app and view it from there.

For users who may find it difficult to set up a command line version of rclone (few I suppose since this is a hobbyist project to begin with) then they could access the recorded clips locally using a network share or by taking the SD card out of the pi and mounting it elsewhere. Alternately there could be a simple script that dumps the contents of the clips folder into a flash stick as soon as one is plugged in...rough ideas but the general principle would be to enable short clip (30s to 60s) recording based on events and then let the user decide how they want to use the clips.


Edit:

This need not even conflict with the secure video feature since ffmpeg could have the encoded output sent to a named pipe which would allow us to use it as an input to other instances of ffmpeg and specify as many endpoints (ingest point/local storage) as we want.

I'd actually love to get involved in the dev as I use ffmpeg on a daily basis but unfortunately I have never used go in my life. Maybe when things get not so busy in a few weeks from now :)

ProjectInkfish commented 5 years ago

@brutella Any updates on the Secure Video support with iOS 13 launching next week? I haven't been able to find the documentation on how to support it.

AndreaCCIE commented 5 years ago

Unfortunately It won’t be part of iOS 13.0

ProjectInkfish commented 5 years ago

Unfortunately It won’t be part of iOS 13.0

What is your reference for this? I haven't seen anything indicating this feature was dropped.

AndreaCCIE commented 5 years ago

What is your reference for this? I haven't seen anything indicating this feature was dropped.

https://twitter.com/viticci/status/1171505720392470529

ProjectInkfish commented 5 years ago

-___- I'm disappointed that you were right, haha. I hadn't seen that in the features that were left off. But I believe they are all planned for 13.1? No? I just haven't seen any mentions from developers.

AndreaCCIE commented 5 years ago

It “should” be part of iOS1[3-9]\.X “sometime in the future” I'm running the 13.1 but can't see any reference to it.

Korni22 commented 5 years ago

FYI: iOS 13.2 Beta 1 seems to include the first HomeKit Secure Video related things:

https://www.reddit.com/r/HomeKit/comments/ddat3w/homekit_secure_video_playback_view/

AndreaCCIE commented 5 years ago

FYI: iOS 13.2 Beta 1 seems to include the first HomeKit Secure Video related things: ...

@Korni22 you are right, it seems... but unfortunately it’s not. Moreover, there is no documentation at all yet.

ProjectInkfish commented 5 years ago

Looks Secure Video is live in 13.2 today!

cannikin commented 5 years ago

Can confirm, there are all kinds of video streaming/recording options on my Logitech Circle 2. Is it just a matter of updating HKcam's accessory information as supporting those features or is this a major change to get this working? Maybe even requiring a registration with Apple?

image

image

brutella commented 5 years ago

The required characteristics for getting Secure Video were already added with c8a4306. The missing pieces are the payloads and the protocol to negotiate video recording. There is currently no official documentation available about that.

RefineryX commented 4 years ago

@brutella - is this added to the native HomeKit app? I have installed HKCam but do not see the options for secure video recording?

RefineryX commented 4 years ago

The required characteristics for getting Secure Video were already added with c8a4306. The missing pieces are the payloads and the protocol to negotiate video recording. There is currently no official documentation available about that.

Actually, maybe I have misunderstood this? Would the recording only be available for your Home app or would this work with the Secure Video feature with Home + iCloud?

tokamac commented 4 years ago

Some good news: KhaosT/HAP-NodeJS#741 (comment)

gabrielcsapo commented 4 years ago

Any updates on supporting this?

cannikin commented 4 years ago

Word is Apple just open sourced HomeKit so I'd think these protocols should be available now, or soon!

RefineryX commented 4 years ago

Here is the official GitHub Repository https://github.com/apple/HomeKitADK

gabrielcsapo commented 4 years ago

Looks like you still need a license to use secure video https://github.com/apple/HomeKitADK/issues/56

hazcod commented 4 years ago

Specification has been reverse engineered and published here @brutella : https://github.com/Supereg/secure-video-specification

libewa commented 3 years ago

Unfortunately It won’t be part of iOS 13.0

Apple presented it on WWDC20 in July, is it in iOS / iPadOS / tvOS 14 and macOS Big Sur?

runrennerrun commented 3 years ago

has anyone managed to get this running as HSV camera?

nanosonde commented 2 years ago

Homekit Secure Video was finally implemented in homebridge-camera-ffmpeg: https://github.com/Sunoo/homebridge-camera-ffmpeg/tree/hksv

Related PR: https://github.com/Sunoo/homebridge-camera-ffmpeg/pull/1200

Maybe you can get an idea of what needs to be implemented in golang.

ghost commented 2 years ago

Any update on this? HKSV still a thing, or not possible by hkcam?

jankornblum commented 2 years ago

Any news regarding HKSV support? Would be great.

Littlericket commented 2 years ago

For now i‘m using camera ui with homebridge to get HKSV support. Would love to skip the homebridge part and using hkcam standalone - it seems more „stable“.

leoduth commented 1 year ago

Des nouvelles concernant le support du HKSV ? Ce serait génial.

Hello no news about the HKSV support ?

Littlericket commented 1 year ago

Scrypted is a great alternative.

leoduth commented 1 year ago

Scrypted is a great alternative.

is there an alternative, like here, to use a usb webcam to transfer it to Homekit?

because I have the impression that Scrypted only works with Wifi cameras?

Littlericket commented 1 year ago

Scrypted is a great alternative.

is there an alternative, like here, to use a usb webcam to transfer it to Homekit?

because I have the impression that Scrypted only works with Wifi cameras?

You can integrate USB cams with ffmpeg.

leoduth commented 11 months ago

Scrypted is a great alternative.

is there an alternative, like here, to use a usb webcam to transfer it to Homekit? because I have the impression that Scrypted only works with Wifi cameras?

You can integrate USB cams with ffmpeg.

I tried, but I can't get it to work in Scrypted. Do you have a tutorial?

Littlericket commented 11 months ago

Scrypted is a great alternative.

is there an alternative, like here, to use a usb webcam to transfer it to Homekit? because I have the impression that Scrypted only works with Wifi cameras?

You can integrate USB cams with ffmpeg.

I tried, but I can't get it to work in Scrypted. Do you have a tutorial?

The easiest way to integrate any webcam is via mediamtx (https://github.com/bluenviron/mediamtx) which provides a RTSP, or RTC, and is lightweight. The output of RTSP can be put into scrypted as an input. Mediamtx is easy to configure. Generic Webcam example is here: https://github.com/bluenviron/mediamtx#generic-webcam

This also means that mediamtx can be run on any rpi with full libcamera support somewhere (even with hw encoding) and scrypted on a bigger host, since the needed movement detection for HSV is resource hungry.