This is a repost of the original post on wrt.nth.io:
Wyze Cams are inexpensive and awesome web cams. Unfortunately Wyze wont support Apple HomeKit on the current cameras. An alternative is to use Homebridge on a Raspberry Pi to “bridge” the cameras into HomeKit.
NOTE — 16th of Feb, 2020: A YouTube video by Tech Craft explains how to check an RTSP stream for native HomeKit H.264 support. This is the case for Wyze Cams and therefore there is no need to transcode the stream with
h264_omxas this post originally described. The post has been updated to use the more performant and simpler stream
- The Wyze Cam RTSP output format is H.264 encoded which is the stream coded required by HomeKit so no transcoding is required.
- The Raspberry Pi 4 has a lot of hardware updates to support higher bandwidth video processing. This may also work on older Raspberry Pis. The RPi 4 supports H.265 (4kp60 decode) and H.264 (1080p60 decode, 1080p30 encode).
- While live streaming with the setup described here, memory usage peaked at 200Mb and CPU peaked at 50% on a single core.
- Install the Wyze Cam RTSP firmware
- Get a Raspberry Pi 4 B 1GB with Raspbian Buster or newer
- Install Homebridge
This is where experimentation was needed to find a successful setup.
On the Raspbian Buster apt repos all dependencies are ready to go with no custom compiling required.
Install the following packages with the respective package manager:
homebridge-camera-ffmpeg— The fork
homebridge-camera-ffmpeg-omxis not needed because the stream does not need to be transcoded.
Finally, configure Homebridge for each Wyze Cam. The key here is to use the
copy vcodec to copy the native H.264 video stream strait to the HomeKit stream.
This config also has the combination found to work best with both streaming and snapshotting for HomeKit. Check out the homebridge-camera-ffmpeg docs and defaults before adding unnecessary configuration options.
At this point, it should be possible to add the accessories to the Home app and see both smooth live streaming and preview snapshots from the cameras.
On the Raspberry Pi, run
htop to confirm the load is not on the CPU while sreaming.