diff --git a/CHANGELOG.md b/CHANGELOG.md
deleted file mode 100644
index 0c6c12d2..00000000
--- a/CHANGELOG.md
+++ /dev/null
@@ -1,384 +0,0 @@
-# Changelog
-
-All notable changes to this project will be documented in this file. This project uses [Semantic Versioning](https://semver.org/)
-
-## [4.0.1](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v4.0.1) (2025-03-04)
-
-### What's Changes
-- Housekeeping and updated dependencies.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v4.0.0...v4.0.1
-
-## [4.0.0](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v4.0.0) (2025-01-26)
-
-### What's Changes
-#### Breaking Changes
-- *Alpha*: Added support for HKSV
-- Now Supporting Node v20 ot v22
-- In this version we force all cameras to be `unbridged`
- - If you do not unbridge your cameras before upgrading your cameras, you will loose functionality.
- - To unbridge in previous version go into the camera config and check the ubridged checkbox.
- - the unbridge config has been removed in this version since all cameras are unbridged.
-
-#### Other Changes
-- Move plugin over to scoped plugin
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v3.1.4...v4.0.0
-
-## [3.1.4](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v3.1.4) (2021-12-28)
-
-### What's Changes
-- *Fix*: Pinned mqtt to 2.3.8 to avoid "Maximum call stack size exceeded" error.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v3.1.3...v3.1.4
-
-## [3.1.3](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v3.1.3) (2021-08-24)
-
-### What's Changes
-- Errors from FFmpeg are once again hidden when not in debug mode. This will be tweaked in the future.
-- An attempt will now be made to gracefully shut down FFmpeg before force killing it.
-- *Fix*: Port selection should now correctly grab an open UDP port.
-- *Fix*: When using motionDoorbell, the doorbell is now only rung when the motion cooldown has run.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v3.1.2...v3.1.3
-
-## [3.1.2](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v3.1.2) (2021-03-05)
-
-### What's Changes
-- Errors from FFmpeg are now always logged.
-- Improvements to snapshot caching.
-- *Fix*: Streams should no longer end after roughly 3 minutes.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v3.1.1...v3.1.2
-
-## [3.1.1](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v3.1.1) (2021-03-01)
-
-### What's Changes
-- Snapshots are now briefly cached. This will prevent bombarding the camera with requests for new snapshots when motion alerts are triggered.
-- Improved messaging when cameras respond slowly.
-- Minor tweaks.
-- Updated dependencies.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v3.1.0...v3.1.1
-
-## [3.1.0](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v3.1.0) (2021-02-20)
-
-### What's Changes
-#### Breaking Changes
-- Complete rework of MQTT support. Now topics and messages are configurable per camera, which should allow any camera with MQTT support to work directly with this plugin. If you need compatibility with the way prior versions worked, you can follow [this config example](https://sunoo.github.io/homebridge-camera-ffmpeg/automation/mqtt.html#legacy-compatibility).
-- Dropped support for older versions of Homebridge, now requires version 1.1.3 or newer.
-
-#### Other Changes
-- *Fix*: Fixed warnings under Homebridge 1.3 when using switches.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v3.0.6...v3.1.0
-
-## [3.0.6](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v3.0.6) (2021-02-17)
-
-### What's Changes
-- Added `motionDoorbell` to ring the doorbell when motion is activated in order to allow motion alerts to be displayed on Apple TVs.
-- HTTP server now returns JSON to provide additional information to helper plugins.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v3.0.5...v3.0.6
-
-## [3.0.5](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v3.0.5) (2021-02-15)
-
-### What's Changes
-- Code cleanup and general housekeeping.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v3.0.4...v3.0.5
-
-## [3.0.4](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v3.0.4) (2021-02-15)
-
-### What's Changes
-- Added warning when attempting to use videoFilter with the copy vcodec.
-- Added support for connecting to an MQTT broker with TLS.
-- Updated dependencies.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v3.0.3...v3.0.4
-
-## [3.0.3](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v3.0.3) (2020-09-02)
-
-### What's Changes
-- Updated dependencies.
-
-### Note
-- Homebridge 1.1.3 is now out. It is highly recommended to upgrade as it should completely resolve the issue that caused live video not to work while snapshots continued to update. Once you upgrade, `interfaceName` will no longer have any impact. At some point in the future this plugin will drop support for Homebridge 1.1.2 and lower and also remove the `interfaceName` option.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v3.0.2...v3.0.3
-
-## [3.0.2](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v3.0.2) (2020-08-30)
-
-### What's Changes
-- Allow `=` in the URL for HTTP automation for systems that require it. Everything after the `=` will be ignored.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v3.0.1...v3.0.2
-
-## [3.0.1](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v3.0.1) (2020-08-25)
-
-### What's Changes
-- *Fix*: Fixed an issue with inactive camera timeouts that could cause zombie FFmpeg processes.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v3.0.0...v3.0.1
-
-## [3.0.0](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v3.0.0) (2020-08-24)
-
-### What's Changes
-### Breaking Changes
-- `additionalCommandline` has been replaced by `encoderOptions` to better reflect it's intended use.
-- `preserveRatio` has been removed and is now active as long as the default `videoFilter` list is active.
-
-#### Other Changes
-- This plugin now includes __experimental__ two-way audio support. Be aware that this feature is likely to be tweaked in the future, and a configuration that works now may need to be altered in the future.
-- Better detection of audio and video streams. There should be very few scenarios where `mapvideo` or `mapaudio` are needed anymore, as FFmpeg's stream auto-selection is now set up.
-- Default `videoFilter` can be disabled by including `none` in your comma-delimited list of filters.
-- Further reorganization of the config UI.
-- Fix: Corrected handling of inactive camera timeouts. You should no longer see timeout messages after cleanly closing a camera stream.
-- *Fix*: Fixed `forceMax` not applying to resolution in some scenarios.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v2.5.0...v3.0.0
-
-## [2.5.0](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v2.5.0) (2020-08-23)
-
-### What's Changes
-### Breaking Changes
-- Horizontal and vertical flip have been removed. If you need these options, pass `hflip` and/or `vflip` in `videoFilter`.
-- `forceMax` has resulted in the removal of `minBitrate`, as it is now redundant. To replicate the old behavior, set `maxBitrate` to the bitrate you want to use and set `forceMax` to true.
-- `preserveRatio` is now a boolean to reduce confusion and support the better handling of that option.
-
-- ### Other Changes
-- `forceMax` has been added. This will force the use of `maxWidth`, `maxHeight`, `maxFPS`, and `maxBitrate` when set.
-- If `maxWidth`, `maxHeight`, or `maxFPS` are set to `0`, the width, height, or framerate of the source will now be used for the output.
-- If `maxBitrate` is set to `0`, the bitrate of the encoder will not be limited. I strongly recommend against this, but it is a better option than setting it to `999999` or similar values, as I've seen in some configs.
-- Reorganized config UI options.
-- *Fix:* Fix handling of IPv6 connections.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v2.4.7...v2.5.0
-
-## [2.4.7](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v2.4.7) (2020-08-17)
-
-### What's Changes
-- Changed the way external IP address is determined. This should result in video streams working by default in more setups.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v2.6.0...v2.4.7
-
-## [2.4.6](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v2.4.6) (2020-08-16)
-
-### What's Changes
-- *Fix:* Fix MQTT/HTTP automation when unbridge is used.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v2.4.5...v2.4.6
-
-## [2.4.5](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v2.4.5) (2020-08-15)
-
-### What's Changes
-- Return messages and error codes when using HTTP automation.
-- *Fix:* Fixed bug preventing MQTT/HTTP automation from working.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v2.4.4...v2.4.5
-
-## [2.4.4](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v2.4.4) (2020-08-07)
-
-### What's Changes
-- Added support for unbridging specific cameras. This can aid with performance of the camera and Homebridge as a whole, but requires manually adding any unbridged cameras to HomeKit.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v2.4.3...v2.4.4
-
-## [2.4.3](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v2.4.3) (2020-07-29)
-
-### What's Changes
-- Trigger switches are now turned on and off with HTTP or MQTT messages as well.
-- Removed doorbell stateless switch because it had no functionality.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v2.4.2...v2.4.3
-
-## [2.4.2](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v2.4.2) (2020-07-27)
-
-### What's Changes
-- Properly shut down sessions when devices go inactive.
-- *Fix:* Fixed some debug messages.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v2.4.1...v2.4.2
-
-## [2.4.1](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v2.4.1) (2020-07-24)
-
-### What's Changes
-- Added warning when multiple NICs detected.
-- *Fix:* Fix error using copy vcodec.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v2.4.0...v2.4.1
-
-## [2.4.0](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v2.4.0) (2020-07-24)
-
-### What's Changes
-- Major rework of code to make future maintenance easier.
-- Added setting to limit HTTP server to listening on localhost only.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v2.3.2...v2.4.0
-
-## [2.3.2](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v2.3.2) (2020-07-19)
-
-### What's Changes
-- FFmpeg processes are now killed when the iOS device goes inactive and when stopping Homebridge.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v2.3.1...v2.3.2
-
-## [2.3.1](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v2.3.1) (2020-07-16)
-
-### What's Changes
-- Tweaks to logging to reduce confusion and provide more information.
-- Added authentication support to MQTT.
-- Reduced the FFmpeg log level in debug mode.
-- *Fix:* The minimum bitrate option is now working again.
-- *Fix:* Maximum bitrate and frame rate are no longer capped below what devices request when not set in the config.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v2.3.0...v2.3.1
-
-## [2.3.0](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v2.3.0) (2020-07-14)
-
-### What's Changes
-- Added HTTP support for motion detection and doorbells.
-- Separated MQTT doorbell and motion messages.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v2.8.0...v2.8.1
-
-## [2.2.2](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v2.2.2) (2020-07-13)
-
-### What's Changes
-- Restored ability to specify which network interface to use.
-- *Fix:* Fixed handling of non-printing characters in config.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v2.2.1...v2.2.2
-
-## [2.2.1](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v2.2.1) (2020-07-11)
-
-### What's Changes
-- *Fix:* Fixed bug preventing Homebridge from starting.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v2.2.0...v2.2.1
-
-## [2.2.0](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v2.2.0) (2020-07-11)
-
-### What's Changes
-- Now properly allows for changing camera manufacturer, model, etc.
-- Minor tweaks to configuration UI screen.
-- Update dependencies.
-- *Fix:* Fixed a bug when the doorbellSwitch config option was enabled.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v2.1.1...v2.2.0
-
-## [2.1.1](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v2.1.1) (2020-07-08)
-
-### What's Changes
-- Update Dependencies.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v2.1.0...v2.1.1
-
-## [2.1.0](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v2.1.0) (2020-07-06)
-
-### What's Changes
-- Add MQTT support for Motion Detect (#572), thanks to [fennec622](https://github.com/fennec622).
- - See [MQTT Motion Wiki](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/wiki/MQTT-Motion) for more details.
-- Add stateless button for doorbell cameras.
-- Add option to disable manual automation switches.
-- Re-Added videoFilter.
-- *Fix:* Fixed most FFmpeg issues where users were receiving issues with ffmpeg exit 1 error.
-- *Fix:* Fixed Logging.
-- *Fix:* Fixed most videoFilter configs not working.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v2.0.1...v2.1.0
-
-## [2.0.1](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v2.0.1) (2020-06-28)
-
-### What's Changes
-- Update Dependencies.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v2.0.0...v2.0.1
-
-## [2.0.0](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v2.0.0) (2020-06-19)
-
-### What's Changes
-### Breaking Changes
-- Code has been refactored to typescript, thanks to [Brandawg93](https://github.com/Brandawg93).
-- Plugin requires homebridge >= 1.0.0.
-- Cameras no longer need to be manually added to homebridge
- - Cameras are now bridged instead of being created as external accessories in homebridge.
- - Once you update, you will see two copies of each of your cameras.
- - You will need to manually remove the old cameras from HomeKit by going into the cameras' settings and choosing "Remove Camera from Home".
- - The new bridged cameras will not have this option, and will instead have a "Bridge" button.
- - You will also need to copy over any automations that you had tied to your cameras, such as motion detection.
-
-### Other Changes
-- Google Drive Upload has been removed in this update. PRs are welcome for other Video Cloud Options.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v1.3.0...v2.0.0
-
-## [1.3.0](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v1.3.0) (2020-06-18)
-
-### What's Changes
-- Update ffmpeg-for-homebridge to 0.0.6.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v1.2.2...v1.3.0
-
-## [1.2.2](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v1.2.2) (2020-05-28)
-
-### What's Changes
-- *Fix:* Fix for Fake Motion Sensor, it was not reseting after Motion Events.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v1.2.1...v1.2.2
-
-## [1.2.1](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v1.2.1) (2020-05-28)
-
-### What's Changes
-- *Fix:* Fixes [#522](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/issues/522), Cleans Up and Condenses the code around the motion switch.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v1.2.0...v1.2.1
-
-## [1.2.0](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v1.2.0) (2020-05-27)
-
-### What's Changes
-- Update ffmpeg-for-homebridge to 0.0.5
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v1.1.1...v1.2.0
-
-## [1.1.1](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v1.1.1) (2020-05-14)
-
-### What's Changes
-- Adds debug log for `videoProcessor`.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v1.1.0...v1.1.1
-
-## [1.1.0](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v1.1.0) (2020-05-13)
-
-### What's Changes
-- Adds an option to have a camera behave like a video doorbell, including a switch to trigger doorbell events (automate the switch to get notifications)
-- Add Manufacturer, Model, Serial, and Firmware Revision into config.schema.json.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v1.0.0...v1.1.0
-
-## [1.0.0](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v1.0.0) (2020-05-11)
-
-### What's Changes
-### Breaking Changes
-- homebridge-camera-ffmpeg now comes bundled with it's own pre-built static ffmpeg binaries that are compiled with support for audio (libfdk-aac) and hardware decoding (h264_omx). The following platforms are supported:
- - Raspbian Linux - armv6l (armv7l)
- - Debian/Ubuntu Linux - x86_64, armv7l, aarch64
- - Alpine Linux - x86_64, armv6l, aarch64
- - macOS (10.14+) - x86_64
- - Windows 10 - x86_64
-- If your platform is not supported the plugin will fallback to using your global install of `ffmpeg` automatically.
-- Should you wish to force the plugin to use the global install of `ffmpeg` instead of the provided copy, you can simply set `videoProcessor` option to `ffmpeg`. Example:
- ```json
- {
- "platform": "Camera-ffmpeg",
- "videoProcessor": "ffmpeg",
- "cameras": [
- ...
- ]
- }
- ```
-
-### Other Changes
-- Initial release.
-
-**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/initial-commit...v1.0.0
diff --git a/Gemfile b/Gemfile
new file mode 100644
index 00000000..16163a31
--- /dev/null
+++ b/Gemfile
@@ -0,0 +1,34 @@
+source "https://rubygems.org"
+
+# Hello! This is where you manage which Jekyll version is used to run.
+# When you want to use a different version, change it below, save the
+# file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
+#
+# bundle exec jekyll serve
+#
+# This will help ensure the proper Jekyll version is running.
+# Happy Jekylling!
+# gem "jekyll", "~> 3.8.7"
+
+# This is the default theme for new Jekyll sites. You may change this to anything you like.
+gem "minima", "~> 2.0"
+
+# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
+# uncomment the line below. To upgrade, run `bundle update github-pages`.
+gem "github-pages", group: :jekyll_plugins
+
+# If you have any plugins, put them here!
+# group :jekyll_plugins do
+# gem "jekyll-feed", "~> 0.6"
+# end
+
+# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
+# and associated library.
+install_if -> { RUBY_PLATFORM =~ %r!mingw|mswin|java! } do
+ gem "tzinfo", "~> 1.2"
+ gem "tzinfo-data"
+end
+
+# Performance-booster for watching directories on Windows
+gem "wdm", "~> 0.1.0", :install_if => Gem.win_platform?
+
diff --git a/Gemfile.lock b/Gemfile.lock
new file mode 100644
index 00000000..22feb457
--- /dev/null
+++ b/Gemfile.lock
@@ -0,0 +1,293 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ activesupport (6.0.4.7)
+ concurrent-ruby (~> 1.0, >= 1.0.2)
+ i18n (>= 0.7, < 2)
+ minitest (~> 5.1)
+ tzinfo (~> 1.1)
+ zeitwerk (~> 2.2, >= 2.2.2)
+ addressable (2.8.0)
+ public_suffix (>= 2.0.2, < 5.0)
+ coffee-script (2.4.1)
+ coffee-script-source
+ execjs
+ coffee-script-source (1.11.1)
+ colorator (1.1.0)
+ commonmarker (0.17.13)
+ ruby-enum (~> 0.5)
+ concurrent-ruby (1.1.10)
+ dnsruby (1.61.9)
+ simpleidn (~> 0.1)
+ em-websocket (0.5.3)
+ eventmachine (>= 0.12.9)
+ http_parser.rb (~> 0)
+ ethon (0.15.0)
+ ffi (>= 1.15.0)
+ eventmachine (1.2.7)
+ execjs (2.8.1)
+ faraday (1.10.0)
+ faraday-em_http (~> 1.0)
+ faraday-em_synchrony (~> 1.0)
+ faraday-excon (~> 1.1)
+ faraday-httpclient (~> 1.0)
+ faraday-multipart (~> 1.0)
+ faraday-net_http (~> 1.0)
+ faraday-net_http_persistent (~> 1.0)
+ faraday-patron (~> 1.0)
+ faraday-rack (~> 1.0)
+ faraday-retry (~> 1.0)
+ ruby2_keywords (>= 0.0.4)
+ faraday-em_http (1.0.0)
+ faraday-em_synchrony (1.0.0)
+ faraday-excon (1.1.0)
+ faraday-httpclient (1.0.1)
+ faraday-multipart (1.0.3)
+ multipart-post (>= 1.2, < 3)
+ faraday-net_http (1.0.1)
+ faraday-net_http_persistent (1.2.0)
+ faraday-patron (1.0.0)
+ faraday-rack (1.0.0)
+ faraday-retry (1.0.3)
+ ffi (1.15.5)
+ forwardable-extended (2.6.0)
+ gemoji (3.0.1)
+ github-pages (223)
+ github-pages-health-check (= 1.17.9)
+ jekyll (= 3.9.0)
+ jekyll-avatar (= 0.7.0)
+ jekyll-coffeescript (= 1.1.1)
+ jekyll-commonmark-ghpages (= 0.1.6)
+ jekyll-default-layout (= 0.1.4)
+ jekyll-feed (= 0.15.1)
+ jekyll-gist (= 1.5.0)
+ jekyll-github-metadata (= 2.13.0)
+ jekyll-include-cache (= 0.2.1)
+ jekyll-mentions (= 1.6.0)
+ jekyll-optional-front-matter (= 0.3.2)
+ jekyll-paginate (= 1.1.0)
+ jekyll-readme-index (= 0.3.0)
+ jekyll-redirect-from (= 0.16.0)
+ jekyll-relative-links (= 0.6.1)
+ jekyll-remote-theme (= 0.4.3)
+ jekyll-sass-converter (= 1.5.2)
+ jekyll-seo-tag (= 2.7.1)
+ jekyll-sitemap (= 1.4.0)
+ jekyll-swiss (= 1.0.0)
+ jekyll-theme-architect (= 0.2.0)
+ jekyll-theme-cayman (= 0.2.0)
+ jekyll-theme-dinky (= 0.2.0)
+ jekyll-theme-hacker (= 0.2.0)
+ jekyll-theme-leap-day (= 0.2.0)
+ jekyll-theme-merlot (= 0.2.0)
+ jekyll-theme-midnight (= 0.2.0)
+ jekyll-theme-minimal (= 0.2.0)
+ jekyll-theme-modernist (= 0.2.0)
+ jekyll-theme-primer (= 0.6.0)
+ jekyll-theme-slate (= 0.2.0)
+ jekyll-theme-tactile (= 0.2.0)
+ jekyll-theme-time-machine (= 0.2.0)
+ jekyll-titles-from-headings (= 0.5.3)
+ jemoji (= 0.12.0)
+ kramdown (= 2.3.1)
+ kramdown-parser-gfm (= 1.1.0)
+ liquid (= 4.0.3)
+ mercenary (~> 0.3)
+ minima (= 2.5.1)
+ nokogiri (>= 1.12.5, < 2.0)
+ rouge (= 3.26.0)
+ terminal-table (~> 1.4)
+ github-pages-health-check (1.17.9)
+ addressable (~> 2.3)
+ dnsruby (~> 1.60)
+ octokit (~> 4.0)
+ public_suffix (>= 3.0, < 5.0)
+ typhoeus (~> 1.3)
+ html-pipeline (2.14.0)
+ activesupport (>= 2)
+ nokogiri (>= 1.4)
+ http_parser.rb (0.8.0)
+ i18n (0.9.5)
+ concurrent-ruby (~> 1.0)
+ jekyll (3.9.0)
+ addressable (~> 2.4)
+ colorator (~> 1.0)
+ em-websocket (~> 0.5)
+ i18n (~> 0.7)
+ jekyll-sass-converter (~> 1.0)
+ jekyll-watch (~> 2.0)
+ kramdown (>= 1.17, < 3)
+ liquid (~> 4.0)
+ mercenary (~> 0.3.3)
+ pathutil (~> 0.9)
+ rouge (>= 1.7, < 4)
+ safe_yaml (~> 1.0)
+ jekyll-avatar (0.7.0)
+ jekyll (>= 3.0, < 5.0)
+ jekyll-coffeescript (1.1.1)
+ coffee-script (~> 2.2)
+ coffee-script-source (~> 1.11.1)
+ jekyll-commonmark (1.3.1)
+ commonmarker (~> 0.14)
+ jekyll (>= 3.7, < 5.0)
+ jekyll-commonmark-ghpages (0.1.6)
+ commonmarker (~> 0.17.6)
+ jekyll-commonmark (~> 1.2)
+ rouge (>= 2.0, < 4.0)
+ jekyll-default-layout (0.1.4)
+ jekyll (~> 3.0)
+ jekyll-feed (0.15.1)
+ jekyll (>= 3.7, < 5.0)
+ jekyll-gist (1.5.0)
+ octokit (~> 4.2)
+ jekyll-github-metadata (2.13.0)
+ jekyll (>= 3.4, < 5.0)
+ octokit (~> 4.0, != 4.4.0)
+ jekyll-include-cache (0.2.1)
+ jekyll (>= 3.7, < 5.0)
+ jekyll-mentions (1.6.0)
+ html-pipeline (~> 2.3)
+ jekyll (>= 3.7, < 5.0)
+ jekyll-optional-front-matter (0.3.2)
+ jekyll (>= 3.0, < 5.0)
+ jekyll-paginate (1.1.0)
+ jekyll-readme-index (0.3.0)
+ jekyll (>= 3.0, < 5.0)
+ jekyll-redirect-from (0.16.0)
+ jekyll (>= 3.3, < 5.0)
+ jekyll-relative-links (0.6.1)
+ jekyll (>= 3.3, < 5.0)
+ jekyll-remote-theme (0.4.3)
+ addressable (~> 2.0)
+ jekyll (>= 3.5, < 5.0)
+ jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0)
+ rubyzip (>= 1.3.0, < 3.0)
+ jekyll-sass-converter (1.5.2)
+ sass (~> 3.4)
+ jekyll-seo-tag (2.7.1)
+ jekyll (>= 3.8, < 5.0)
+ jekyll-sitemap (1.4.0)
+ jekyll (>= 3.7, < 5.0)
+ jekyll-swiss (1.0.0)
+ jekyll-theme-architect (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-cayman (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-dinky (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-hacker (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-leap-day (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-merlot (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-midnight (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-minimal (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-modernist (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-primer (0.6.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-github-metadata (~> 2.9)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-slate (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-tactile (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-time-machine (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-titles-from-headings (0.5.3)
+ jekyll (>= 3.3, < 5.0)
+ jekyll-watch (2.2.1)
+ listen (~> 3.0)
+ jemoji (0.12.0)
+ gemoji (~> 3.0)
+ html-pipeline (~> 2.2)
+ jekyll (>= 3.0, < 5.0)
+ kramdown (2.3.1)
+ rexml
+ kramdown-parser-gfm (1.1.0)
+ kramdown (~> 2.0)
+ liquid (4.0.3)
+ listen (3.7.1)
+ rb-fsevent (~> 0.10, >= 0.10.3)
+ rb-inotify (~> 0.9, >= 0.9.10)
+ mercenary (0.3.6)
+ mini_portile2 (2.6.1)
+ minima (2.5.1)
+ jekyll (>= 3.5, < 5.0)
+ jekyll-feed (~> 0.9)
+ jekyll-seo-tag (~> 2.1)
+ minitest (5.15.0)
+ multipart-post (2.1.1)
+ nokogiri (1.12.5)
+ mini_portile2 (~> 2.6.1)
+ racc (~> 1.4)
+ octokit (4.22.0)
+ faraday (>= 0.9)
+ sawyer (~> 0.8.0, >= 0.5.3)
+ pathutil (0.16.2)
+ forwardable-extended (~> 2.6)
+ public_suffix (4.0.6)
+ racc (1.6.0)
+ rb-fsevent (0.11.1)
+ rb-inotify (0.10.1)
+ ffi (~> 1.0)
+ rexml (3.2.5)
+ rouge (3.26.0)
+ ruby-enum (0.9.0)
+ i18n
+ ruby2_keywords (0.0.5)
+ rubyzip (2.3.2)
+ safe_yaml (1.0.5)
+ sass (3.7.4)
+ sass-listen (~> 4.0.0)
+ sass-listen (4.0.0)
+ rb-fsevent (~> 0.9, >= 0.9.4)
+ rb-inotify (~> 0.9, >= 0.9.7)
+ sawyer (0.8.2)
+ addressable (>= 2.3.5)
+ faraday (> 0.8, < 2.0)
+ simpleidn (0.2.1)
+ unf (~> 0.1.4)
+ terminal-table (1.8.0)
+ unicode-display_width (~> 1.1, >= 1.1.1)
+ thread_safe (0.3.6)
+ typhoeus (1.4.0)
+ ethon (>= 0.9.0)
+ tzinfo (1.2.9)
+ thread_safe (~> 0.1)
+ tzinfo-data (1.2022.1)
+ tzinfo (>= 1.0.0)
+ unf (0.1.4)
+ unf_ext
+ unf_ext (0.0.8.1)
+ unicode-display_width (1.8.0)
+ wdm (0.1.1)
+ zeitwerk (2.5.4)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ github-pages
+ minima (~> 2.0)
+ tzinfo (~> 1.2)
+ tzinfo-data
+ wdm (~> 0.1.0)
+
+BUNDLED WITH
+ 2.1.4
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 8dada3ed..00000000
--- a/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "{}"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright {yyyy} {name of copyright owner}
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/README.md b/README.md
deleted file mode 100755
index 6208e81f..00000000
--- a/README.md
+++ /dev/null
@@ -1,205 +0,0 @@
-# Homebridge Camera FFmpeg
-
-[ ](https://www.npmjs.com/package/homebridge-camera-ffmpeg) [](https://github.com/homebridge/homebridge/wiki/Verified-Plugins) [](https://plugins.hoobs.org/plugin/homebridge-camera-ffmpeg)
-
-[Homebridge](https://homebridge.io) Plugin Providing [FFmpeg](https://www.ffmpeg.org)-based Camera Support
-
-## Installation
-
-This plugin is supported under both [Homebridge](https://homebridge.io) and [HOOBS](https://hoobs.org/). It is highly recommended that you use either [Homebridge Config UI X](https://www.npmjs.com/package/homebridge-config-ui-x) or the HOOBS UI to install and configure this plugin.
-
-### Manual Installation
-
-1. Install this plugin using: `sudo npm install -g homebridge-camera-ffmpeg --unsafe-perm`.
-2. Edit `config.json` manually to add your cameras. See below for instructions on that.
-
-## Tested configurations
-
-Other users have been sharing configurations that work for them on our GitHub site. You may want to [check that](https://sunoo.github.io/homebridge-camera-ffmpeg/configs/) to see if anyone else has gotten your model of camera working already, or [share](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/issues/new?assignees=&labels=tested+config&template=tested_config.md) a configuration setup that works for you.
-
-## Manual Configuration
-
-### Most Important Parameters
-
-- `platform`: _(Required)_ Must always be set to `Camera-ffmpeg`.
-- `name`: _(Required)_ Set the camera name for display in the Home app.
-- `source`: _(Required)_ FFmpeg options on where to find and how to decode your camera's video stream. The most basic form is `-i` followed by your camera's URL.
-- `stillImageSource`: If your camera also provides a URL for a still image, that can be defined here with the same syntax as `source`. If not set, the plugin will grab one frame from `source`.
-
-#### Config Example
-
-```json
-{
- "platform": "Camera-ffmpeg",
- "cameras": [
- {
- "name": "Camera Name",
- "videoConfig": {
- "source": "-i rtsp://username:password@example.com:554",
- "stillImageSource": "-i http://example.com/still_image.jpg",
- "maxStreams": 2,
- "maxWidth": 1280,
- "maxHeight": 720,
- "maxFPS": 30
- }
- }
- ]
-}
-```
-
-### Optional Parameters
-
-- `motion`: Exposes the motion sensor for this camera. This can be triggered with [dummy switches](https://sunoo.github.io/homebridge-camera-ffmpeg/automation/switch.html), [MQTT messages](https://sunoo.github.io/homebridge-camera-ffmpeg/automation/mqtt.html), or [via HTTP](https://sunoo.github.io/homebridge-camera-ffmpeg/automation/http.html), depending on what features are enabled in the config. (Default: `false`)
-- `doorbell`: Exposes the doorbell device for this camera. This can be triggered with [dummy switches](https://sunoo.github.io/homebridge-camera-ffmpeg/automation/switch.html), [MQTT messages](https://sunoo.github.io/homebridge-camera-ffmpeg/automation/mqtt.html), or [via HTTP](https://sunoo.github.io/homebridge-camera-ffmpeg/automation/http.html), depending on what features are enabled in the config. (Default: `false`)
-- `switches`: Enables dummy switches to trigger motion and/or doorbell, if either of those are enabled. When enabled there will be an additional switch that triggers the motion or doorbell event. See the project site for [more detailed instructions](https://sunoo.github.io/homebridge-camera-ffmpeg/automation/switch.html). (Default: `false`)
-- `motionTimeout`: The number of seconds after triggering to reset the motion sensor. Set to 0 to disable resetting of motion trigger for MQTT or HTTP. (Default: `1`)
-- `motionDoorbell`: Rings the doorbell when motion is activated. This allows for motion alerts to appear on Apple TVs. (Default: `false`)
-- `manufacturer`: Set the manufacturer name for display in the Home app. (Default: `Homebridge`)
-- `model`: Set the model for display in the Home app. (Default: `Camera FFmpeg`)
-- `serialNumber`: Set the serial number for display in the Home app. (Default: `SerialNumber`)
-- `firmwareRevision`: Set the firmware revision for display in the Home app. (Default: current plugin version)
-- `unbridge`: Bridged cameras can cause slowdowns of the entire Homebridge instance. If unbridged, the camera will need to be added to HomeKit manually. (Default: `true`)
-
-#### Config Example with Manufacturer and Model Set
-
-```json
-{
- "platform": "Camera-ffmpeg",
- "cameras": [
- {
- "name": "Camera Name",
- "manufacturer": "ACME, Inc.",
- "model": "ABC-123",
- "serialNumber": "1234567890",
- "firmwareRevision": "1.0",
- "videoConfig": {
- "source": "-i rtsp://username:password@example.com:554",
- "stillImageSource": "-i http://example.com/still_image.jpg",
- "maxStreams": 2,
- "maxWidth": 1280,
- "maxHeight": 720,
- "maxFPS": 30
- }
- }
- ]
-}
-```
-
-### Optional videoConfig Parameters
-
-- `returnAudioTarget`: _(EXPERIMENTAL - WIP)_ The FFmpeg output command for directing audio back to a two-way capable camera. This feature is still in development and a configuration that works today may not work in the future.
-- `maxStreams`: The maximum number of streams that will be allowed at once to this camera. (Default: `2`)
-- `maxWidth`: The maximum width used for video streamed to HomeKit. If set to 0, the resolution of the source is used. If not set, will use any size HomeKit requests.
-- `maxHeight`: The maximum height used for video streamed to HomeKit. If set to 0, the resolution of the source is used. If not set, will use any size HomeKit requests.
-- `maxFPS`: The maximum frame rate used for video streamed to HomeKit. If set to 0, the framerate of the source is used. If not set, will use any frame rate HomeKit requests.
-- `maxBitrate`: The maximum bitrate used for video streamed to HomeKit, in kbit/s. If not set, will use any bitrate HomeKit requests.
-- `forceMax`: If set, the settings requested by HomeKit will be overridden with any 'maximum' values defined in this config. (Default: `false`)
-- `vcodec`: Set the codec used for encoding video sent to HomeKit, must be H.264-based. You can change to a hardware accelerated video codec with this option, if one is available. (Default: `libx264`)
-- `audio`: Enables audio streaming from camera. (Default: `false`)
-- `packetSize`: If audio or video is choppy try a smaller value, should be set to a multiple of 188. (Default: `1316`)
-- `mapvideo`: Selects the stream used for video. (Default: FFmpeg [automatically selects](https://ffmpeg.org/ffmpeg.html#Automatic-stream-selection) a video stream)
-- `mapaudio`: Selects the stream used for audio. (Default: FFmpeg [automatically selects](https://ffmpeg.org/ffmpeg.html#Automatic-stream-selection) an audio stream)
-- `videoFilter`: Comma-delimited list of additional video filters for FFmpeg to run on the video. If 'none' is included, the default video filters are disabled.
-- `encoderOptions`: Options to be passed to the video encoder. (Default: `-preset ultrafast -tune zerolatency` if using libx264)
-- `debug`: Includes debugging output from the main FFmpeg process in the Homebridge log. (Default: `false`)
-- `debugReturn`: Includes debugging output from the FFmpeg used for return audio in the Homebridge log. (Default: `false`)
-
-#### More Complicated Example
-
-```json
-{
- "platform": "Camera-ffmpeg",
- "cameras": [
- {
- "name": "Camera Name",
- "videoConfig": {
- "source": "-i rtsp://myfancy_rtsp_stream",
- "stillImageSource": "-i http://faster_still_image_grab_url/this_is_optional.jpg",
- "maxStreams": 2,
- "maxWidth": 1280,
- "maxHeight": 720,
- "maxFPS": 30,
- "maxBitrate": 200,
- "vcodec": "h264_omx",
- "audio": false,
- "packetSize": 188,
- "hflip": true,
- "additionalCommandline": "-x264-params intra-refresh=1:bframes=0",
- "debug": true
- }
- }
- ]
-}
-```
-
-### Camera MQTT Parameters
-
-- `motionTopic`: The MQTT topic to watch for motion alerts.
-- `motionMessage`: The message to watch for to trigger motion alerts. Will use the name of the camera if blank.
-- `motionResetTopic`: The MQTT topic to watch for motion resets.
-- `motionResetMessage`: The message to watch for to trigger motion resets. Will use the name of the camera if blank.
-- `doorbellTopic`: The MQTT topic to watch for doorbell alerts.
-- `doorbellMessage`: The message to watch for to trigger doorbell alerts. Will use the name of the camera if blank.
-
-#### Camera MQTT Example
-
-```json
-{
- "platform": "Camera-ffmpeg",
- "cameras": [
- {
- "name": "Camera Name",
- "videoConfig": {
- "source": "-i rtsp://myfancy_rtsp_stream"
- },
- "mqtt": {
- "motionTopic": "home/camera",
- "motionMessage": "ON",
- "motionResetTopic": "home/camera",
- "motionResetMessage": "OFF",
- "doorbellTopic": "home/doobell",
- "doorbellMessage": "ON"
- }
- }
- ]
-}
-```
-
-### Automation Parameters
-
-- `mqtt`: Defines the hostname or IP of the MQTT broker to connect to for MQTT-based automation. If not set, MQTT support is not started. See the project site for [more information on using MQTT](https://sunoo.github.io/homebridge-camera-ffmpeg/automation/mqtt.html).
-- `portmqtt`: The port of the MQTT broker. (Default: `1883`)
-- `tlsmqtt`: Use TLS to connect to the MQTT broker. (Default: `false`)
-- `usermqtt`: The username used to connect to your MQTT broker. If not set, no authentication is used.
-- `passmqtt`: The password used to connect to your MQTT broker. If not set, no authentication is used.
-- `porthttp`: The port to listen on for HTTP-based automation. If not set, HTTP support is not started. See the project site for [more information on using HTTP](https://sunoo.github.io/homebridge-camera-ffmpeg/automation/http.html).
-- `localhttp`: Only allow HTTP calls from localhost. Useful if using helper plugins that translate to HTTP. (Default: `false`)
-
-#### Automation Example
-
-```json
-{
- "platform": "Camera-ffmpeg",
- "mqtt": "127.0.0.1",
- "porthttp": "8080",
- "cameras": []
-}
-```
-
-### Rarely Needed Parameters
-
-- `videoProcessor`: Defines which video processor is used to decode and encode videos, must take the same parameters as FFmpeg. Common uses would be `avconv` or the path to a custom-compiled version of FFmpeg. If not set, will use the included version of FFmpeg, or the version of FFmpeg installed on the system if no included version is available.
-
-#### Rare Option Example
-
-```json
-{
- "platform": "Camera-ffmpeg",
- "videoProcessor": "/usr/bin/ffmpeg",
- "cameras": []
-}
-```
-
-## Credit
-
-Homebridge Camera FFmpeg is based on code originally written by [Khaos Tian](https://twitter.com/khaost).
diff --git a/_automation/helpers.md b/_automation/helpers.md
new file mode 100644
index 00000000..3d447b6b
--- /dev/null
+++ b/_automation/helpers.md
@@ -0,0 +1,14 @@
+---
+title: Helper Plugins
+order: 5
+---
+Because many cameras do not natively support MQTT or HTTP calls in the format Homebridge Camera FFmpeg uses, additional plugins have been written by various developers to add support for methods used by various cameras.
+
+#### Helper Plugins
+
+- [homebridge-ftp-motion](https://www.npmjs.com/package/homebridge-ftp-motion) by Sunoo: Any camera that supports uploading to FTP.
+- [homebridge-smtp-motion](https://www.npmjs.com/package/homebridge-smtp-motion) by Sunoo: Any camera that can send emails over SMTP.
+- [homebridge-dahua-alerts](https://www.npmjs.com/package/homebridge-dahua-alerts) by kushagharahi: Cameras made by Dahua or Lorex.
+- [@balansse/homebridge-vivint](https://www.npmjs.com/package/@balansse/homebridge-vivint) by balansse: Cameras made by Vivint.
+
+If you know of any additional plugins that add support for other cameras, please [open an Issue](https://github.com/Sunoo/homebridge-camera-ffmpeg/issues) and it will be added to this list.
diff --git a/_automation/http.md b/_automation/http.md
new file mode 100644
index 00000000..01303871
--- /dev/null
+++ b/_automation/http.md
@@ -0,0 +1,41 @@
+---
+title: HTTP-based Automation
+order: 3
+---
+### Setup
+
+Set `porthttp` in your config to be whatever port you want the HTTP server to listen on. The server will not start without this set.
+
+### Usage
+
+To trigger the motion sensor make an HTTP request to `http://hostname:port/motion?Camera%20Name` where the 'Camera%20Name' is the URL encoded name of the camera (so, for example, a space becomes %20).
+
+If you make an HTTP call to `http://hostname:port/motion/reset?Camera%20Name` it will reset the motion sensor. If you plan to use this function, it is recommended to set `motionTimeout` under the camera to `0` to disable the automatic reset of the motion sensor.
+
+Doorbell activation is also available by making a call to `http://hostname:port/doorbell?Camera%20Name`.
+
+### Config Example
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "porthttp": "8080",
+ "topic": "homebridge",
+ "cameras": [
+ {
+ "name": "Camera Name",
+ "motion": true,
+ "motionTimeout": 1,
+ "videoConfig": {
+ "source": "-re -i http://10.0.0.1",
+ "stillImageSource": "-i http://10.0.0.1",
+ "maxStreams": 5,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 15,
+ "maxBitrate": 1000
+ }
+ }
+ ]
+}
+```
\ No newline at end of file
diff --git a/_automation/motion.md b/_automation/motion.md
new file mode 100644
index 00000000..d6a00b85
--- /dev/null
+++ b/_automation/motion.md
@@ -0,0 +1,123 @@
+---
+title: Motion-based Automation
+order: 4
+---
+The August doorbell cameras are really slick, but they don’t support HomeKit at all, and their API is not made public. The August app alerts you when motion is detected or the doorbell is rung, and there are some integrations with Google and Amazon, but there’s no HomeKit integration at all. It’s a bit pathetic, really.
+
+Doorbell-button events can be obtained (from the wired versions of August doorbell cams, at least) by using the doorbell wiring to trigger an input on something like a Sonoff SV with RavenSystem/esp-homekit-devices firmware, or a Raspberry Pi, but video motion events require a software solution. Thankfully, August saw fit to enable a basic RTSP video stream from their doorbell cameras. We can monitor that video stream, at a very low frame rate to keep network traffic to a minimum, detect motion using a lightweight video monitoring application, and send motion events to homebridge via MQTT. This method will actually work for any RTSP stream, but these instructions are specifically for an August Doorbell Cam Pro.
+
+This is not for the faint of heart. It requires the ability to use command-line UNIX tools, navigate the filesystem, edit configuration files, and more. It is neither point-and-click nor plug-and-play. If that doesn’t scare you, then carry on.
+
+If you haven’t already, get setup with Homebridge, preferably on a dedicated Raspberry Pi. Install the homebridge-camera-ffmpeg plugin and get your August doorbell cam configured and working there. As part of this setup, you’ll want to be sure to assign a dedicated IP address to the doorbell with your local DHCP server (probably your Internet router).
+
+Make sure the homebridge-camera-ffmpeg configuration for the doorbell cam looks something like the following, inserting your doorbell cam's actual serial number, IP address, etc. in their respective spots (manufacturer/model/serialNumber are all optional):
+
+```json
+{
+ "name": "DoorbellCam",
+ "manufacturer": "August Home",
+ "model": "Doorbell Cam Pro",
+ "serialNumber": "ABCD12345",
+ "motion": true,
+ "motionTimeout": 15,
+ "videoConfig": {
+ "source": "-i rtsp://admin:admin@192.168.0.10/live/stream",
+ "stillImageSource": "-i rtsp://admin:admin@192.168.0.10/live/stream -vframes 1 -r 1",
+ "maxStreams": 2,
+ "maxWidth": 480,
+ "maxHeight": 640,
+ "maxFPS": 10,
+ "audio": true,
+ "debug": false
+ }
+}
+```
+
+You’ll also need an MQTT broker & client:
+
+`# sudo apt-get install mosquitto mosquitto-clients`
+
+Edit /etc/mosquitto/mosquitto.conf and set “allow_anonymous true” unless you want to force authentication, in which case you’ll have to dig up that configuration magic yourself. Add your MQTT config to homebridge-camera-ffmpeg per [instructions](https://sunoo.github.io/homebridge-camera-ffmpeg/automation/mqtt.html).
+
+The lightweight video stream monitoring app is called “Motion”:
+
+`# sudo apt-get install motion`
+
+Edit /etc/motion/motion.conf. Find these parameters and set them accordingly, inserting your Doorbell Cam’s IP in the netcam_url string (everything else should be fine at defaults):
+
+```
+width 480
+height 640
+netcam_url rtsp://192.168.0.10/live/stream
+netcam_userpass admin:admin
+netcam_keepalive on
+text_right '%Y-%m-%d %T'
+text_double on
+stream_quality 90
+stream_motion on
+stream_maxrate 10
+stream_localhost off
+on_motion_detected /etc/motion/motion_detected.sh
+```
+
+This is a very basic no-frills configuration that will monitor your doorbell cam video at 2 fps and run the “motion_detected.sh” shell script when the motion daemon detects motion. For more information on Motion and its configuration, visit [their site](https://motion-project.github.io). Once the motion daemon is running, you can "see what it's seeing" by opening a web browser to http://x.x.x.x:8081 where x.x.x.x is the RPi's IP. Motion runs that MJPEG stream at 1 fps unless motion is detected, at which point it will run at 10 fps.
+
+To enable motion as a system service (taken from [here](https://raspberrypi.stackexchange.com/questions/41342/how-to-start-motion-in-daemon-mode-on-rpi-running-raspbian-jessie)):
+
+Edit /etc/default/motion and set “start_motion_daemon=yes”
+
+Then,
+
+`# sudo systemctl enable motion`
+
+Now we need set up the script that Motion will use to trigger camera motion events from the command line. There are multiple ways to do this; the method I chose was taken from [here](https://www.ev3dev.org/docs/tutorials/sending-and-receiving-messages-with-mqtt/) and requires a Python module, paho-mqtt:
+
+`# sudo pip3 install paho-mqtt`
+
+Edit /etc/motion/motion_detected.sh and set its contents to the script below, with the following changes:
+
+1. Set “your-mqtt-topic” to the MQTT Topic value in your homebridge-camera-ffmpeg configuration.
+2. Set “DoorbellCam” to the “name” value of your doorbell cam in the homebridge-camera-ffmpeg configuration.
+
+```python
+#!/usr/bin/env python3
+import paho.mqtt.client as mqtt
+# This is the Publisher
+client = mqtt.Client()
+client.connect("localhost",1883,60)
+client.publish("your-mqtt-topic/motion", "DoorbellCam");
+client.disconnect();
+```
+
+Set permissions on the file:
+
+`# sudo chmod 755 /etc/motion/motion_detected.sh`
+
+You can execute the file directly and make sure it triggers a motion event in HomeKit:
+
+`# sudo /etc/motion/motion_detected.sh`
+
+Reboot your RPi, and you should start automatically receiving doorbell camera motion events in HomeKit.
+
+If you want to reduce the streaming load on the Doorbell Cam, which may improve stability, you can set homebridge-camera-ffmpeg to use Motion's MJPEG output as the "source" and/or "stillImageSource". The text_* and stream_* settings in the Motion setup above are tailored for this use. Note that the MJPEG stream does not include audio, so if you use it for "source" you must set `"audio": false` or it won't work:
+
+```json
+{
+ "name": "DoorbellCam",
+ "manufacturer": "August Home",
+ "model": "Doorbell Cam Pro",
+ "serialNumber": "ABCD12345",
+ "motion": true,
+ "motionTimeout": 15,
+ "videoConfig": {
+ "source": "-i http://127.0.0.1:8081",
+ "stillImageSource": "-i http://127.0.0.1:8081",
+ "maxStreams": 2,
+ "maxWidth": 480,
+ "maxHeight": 640,
+ "maxFPS": 10,
+ "audio": false,
+ "debug": false
+ }
+}
+```
diff --git a/_automation/mqtt.md b/_automation/mqtt.md
new file mode 100644
index 00000000..4e390353
--- /dev/null
+++ b/_automation/mqtt.md
@@ -0,0 +1,77 @@
+---
+title: MQTT-based Automation
+order: 2
+---
+### Setup
+
+Set `mqtt` in your config to be the host or IP of your MQTT broker. The MQTT client will not start without this set. You can also set `portmqtt` if your broker listens on a port other than the default 1883. Set the topics and messages used by your camera in the `mqtt` of your camera config.
+
+### Usage
+
+To trigger the motion sensor publish to topic configured in `motionTopic` using the message defined in `motionMessage`.
+
+If you publish the message in `motionResetMessage` to `motionResetTopic` it will reset the motion sensor. If you plan to use this function, it is recommended to set `motionTimeout` under the camera to `0` to disable the automatic reset of the motion sensor.
+
+Doorbell activation is also available by publishing to topic in `doorbellTopic` with the message from `doorbellMessage`.
+
+In all cases, if you have no message configured, the name of your camera will be expected as the message instead.
+
+### Config Example
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "mqtt": "127.0.0.1",
+ "cameras": [
+ {
+ "name": "Camera name",
+ "motion": true,
+ "motionTimeout": 1,
+ "videoConfig": {
+ "source": "-i http://10.0.0.1",
+ "stillImageSource": "-i http://10.0.0.1",
+ "maxStreams": 5,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 15,
+ "maxBitrate": 1000
+ },
+ "mqtt": {
+ "motionTopic": "home/camera",
+ "motionMessage": "ON",
+ "motionResetTopic": "home/camera",
+ "motionResetMessage": "OFF",
+ "doorbellTopic": "home/doobell",
+ "doorbellMessage": "ON"
+ }
+ }
+ ]
+}
+```
+
+### Legacy Compatibility
+
+The way MQTT support works was changed significantly in version 3.10. If you need compatibility with the way prior versions worked, you can follow the below example, substituting `homebridge` in the `mqtt` section for whatever `topic` you had configured.
+
+### Legacy Compatibility Config Example
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "mqtt": "127.0.0.1",
+ "cameras": [
+ {
+ "name": "Camera name",
+ "motion": true,
+ "videoConfig": {
+ "source": "-i http://10.0.0.1",
+ }
+ "mqtt": {
+ "motionTopic": "homebridge/motion",
+ "motionResetTopic": "homebridge/motion/reset",
+ "doorbellTopic": "homebridge/doobell"
+ }
+ }
+ ]
+}
+```
diff --git a/_automation/switch.md b/_automation/switch.md
new file mode 100644
index 00000000..6c8ec1e2
--- /dev/null
+++ b/_automation/switch.md
@@ -0,0 +1,83 @@
+---
+title: Switch-based Automation
+order: 1
+---
+With iOS 13 the ability to create Photo Notifications by placing a contact, or motion sensor in the same room as a camera went away. And as the feature scored very high on the WAF scale, I created the workaround based on the new requirement to have a motion sensor as part of the camera accessory.
+
+With the workaround, a dummy switch and motion sensor are created as part of the camera. And by turning on the switch, it will trigger the dummy motion sensor, which will then send a Photo Notification to your iPhone/iPad. To turn on the switch, you can create an automation from your real motion sensor, and have it turn on the dummy switch attached to the camera.
+
+# Setup Instructions
+
+To enable the work around, add the options `"motion": true` and `"switches": true` to your homebridge-camera-ffmpeg configuration, then in the home app, enable notifications in the setup screen for your camera, then create the automation.
+
+## 1. Sample config.json with the motion option
+
+```json
+{
+ "bridge": {
+ "name": "Test Homebridge",
+ "username": "AA:BB:CC:DD:DD:FF",
+ "port": 51826,
+ "pin": "031-45-154"
+ },
+
+ "description": "HomeBridge Test Instance",
+
+ "plugins": [
+ "homebridge-camera-ffmpeg"
+ ],
+
+ "platforms": [{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Test",
+ "motion": true,
+ "switches": true,
+ "videoConfig": {
+ "source": "-f mjpeg -i http://test:8080/video",
+ "stillImageSource": "-i http://test:8080/shot.jpg",
+ "maxStreams": 2,
+ "maxWidth": 1920,
+ "maxHeight": 1080,
+ "maxFPS": 15,
+ "debug": true
+ }
+ }, {
+ "name": "TestDW",
+ "motion": true,
+ "switches": true,
+ "videoConfig": {
+ "source": "-f mjpeg -i http://TestDW:8080/video",
+ "stillImageSource": "-i http://TestDW:8080/shot.jpg",
+ "maxStreams": 2,
+ "maxWidth": 1920,
+ "maxHeight": 1080,
+ "maxFPS": 15,
+ "debug": true
+ }
+ }]
+ }],
+
+ "accessories": []
+}
+```
+
+## 2. Create the automation
+
+In the home app on your phone, create an automation triggered when your Motion Sensor detects motion that turns on the switch created by your camera.
+
+
+
+# Known Issues
+
+## Occasionally notifications do not include a photo
+
+In issue #363 it was identified that if the plugin/camera is slow to respond to the snapshot request, HomeKit will send the notification without the photo. Have not determined what the timeout is for the photo yet.
+
+Also be sure that you only have notifications enabled in the camera's settings and not on the external motion sensor that triggers your automation. Otherwise you will receive a notification from the external motion sensor first and this does not have a photo attached but it obscures the subsequent notification from the camera that does have a photo.
+
+# FYI
+
+One side effect of the change is that each iOS device now sends an individual snapshot request when motion is detected, and this caused a mini DDOS attack on my camera. During my last round of testing I counted 4 snapshot requests at once to my camera, where previously it was a single request.
+
+Just a heads up, as you may now encounter resource constraints on your homebridge instance or camera, if you have a lot of iOS devices.
diff --git a/_config.yml b/_config.yml
new file mode 100644
index 00000000..1b9cd20a
--- /dev/null
+++ b/_config.yml
@@ -0,0 +1,29 @@
+title: Homebridge Camera FFmpeg
+author: David Maher
+description: Homebridge Plugin Providing FFmpeg-based Camera Support
+baseurl: "/homebridge-camera-ffmpeg"
+url: "https://sunoo.github.io"
+github_username: Sunoo
+
+markdown: CommonMarkGhPages
+theme: minima
+
+collections:
+ configs:
+ output: true
+ automation:
+ output: true
+
+defaults:
+ -
+ scope:
+ path: ""
+ type: "configs"
+ values:
+ layout: "config"
+ -
+ scope:
+ path: ""
+ type: "automation"
+ values:
+ layout: "page"
diff --git a/_configs/2n-HeliosIP.md b/_configs/2n-HeliosIP.md
new file mode 100644
index 00000000..50666b6d
--- /dev/null
+++ b/_configs/2n-HeliosIP.md
@@ -0,0 +1,33 @@
+---
+title: 2n HeliosIP
+author: hihipto
+date: 2020-10-14
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Doorbell",
+ "manufacturer": "2n",
+ "model": "HeliosIP",
+ "serialNumber": "1234",
+ "doorbell": true,
+ "videoConfig": {
+ "source": "-i rtsp://IPaddress:554/h264_stream",
+ "stillImageSource": "-i http://IPaddress/enu/camera640x480.jpg",
+ "maxWidth": 640,
+ "maxHeight": 480,
+ "maxBitrate": 512,
+ "forceMax": true,
+ "audio": false
+ }
+}
+```
+
+**Additional Information**
+
+Automation is required to enable the doorbell function:
+
+
+Not sure "Enhanced Video License" is required for streaming video:
+
diff --git a/_configs/AVYCon-DVR-AVR-HN808P8.md b/_configs/AVYCon-DVR-AVR-HN808P8.md
new file mode 100644
index 00000000..19e37458
--- /dev/null
+++ b/_configs/AVYCon-DVR-AVR-HN808P8.md
@@ -0,0 +1,23 @@
+---
+title: AVYCon DVR AVR-HN808P8
+author: Rob Lawrence
+date: 2021-10-13
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Front Entry",
+ "videoConfig": {
+ "source": "-i rtsp://username:password@xx.xxx.xxx.xxx:554/chID=1&streamType=main&linkType=tcp",
+ "maxStreams": 6,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 30
+ }
+}
+```
+
+**Additional Information**
+
+Critical configuration issues on the local streaming unit: 1) must have the most current firmware (here the fw number ends with (8D218). ALSO, must change port settings as follows: RTSP=enabled AND Authentication=basic. The configuration above did not include the still image as I had not turned that on in the NVR unit.
diff --git a/_configs/AXIS-207W.md b/_configs/AXIS-207W.md
new file mode 100644
index 00000000..cec0072c
--- /dev/null
+++ b/_configs/AXIS-207W.md
@@ -0,0 +1,21 @@
+---
+title: AXIS 207W
+author: cycu767
+date: 2020-07-30
+---
+```json
+{
+ "name": "SOME NAME",
+ "manufacturer": "AXIS",
+ "model": "207W",
+ "serialNumber": "SOME SERIAL NUMBER",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -i rtsp://user:password@IP/mpeg4/media.amp",
+ "stillImageSource": "-i http://user:password@IP/jpg/image.jpg?size=3",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 30
+ }
+}
+```
diff --git a/_configs/AXIS-P1344.md b/_configs/AXIS-P1344.md
new file mode 100644
index 00000000..62ac1d14
--- /dev/null
+++ b/_configs/AXIS-P1344.md
@@ -0,0 +1,21 @@
+---
+title: AXIS P1344
+author: cycu767
+date: 2020-07-30
+---
+```json
+{
+ "name": "SOME NAME",
+ "manufacturer": "AXIS",
+ "model": "P1344",
+ "serialNumber": "SOME SERIAL NUMBER",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -i rtsp://user:password@IP/axis-media/media.amp",
+ "stillImageSource": "-i http://user:password@IP/jpg/image.jpg",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 800,
+ "maxFPS": 30
+ }
+}
+```
diff --git a/_configs/AirBeam-2.md b/_configs/AirBeam-2.md
new file mode 100644
index 00000000..e13d9960
--- /dev/null
+++ b/_configs/AirBeam-2.md
@@ -0,0 +1,76 @@
+---
+title: AirBeam iOS App
+comment: with Audio and Motion Detection Support via mqtt
+author: jotzet79
+date: 2021-09-10
+---
+**Homebridge Config:**
+
+```json
+{
+ "name": "Phone Cam",
+ "model": "AirBeam on iPhone 4S / iOS 9.3",
+ "serialNumber": "0123456789",
+ "motion": true,
+ "switches": true,
+ "motionTimeout": 5,
+ "unbridge": true,
+ "videoConfig": {
+ "source": "-use_wallclock_as_timestamps 1 -thread_queue_size 1024 -re -probesize 32 -analyzeduration 0 -i http://[IP_ADDRESS:PORT]/service/camera/video.mjpeg -fflags nobuffer -probesize 32 -analyzeduration 0 -i http://[IP_ADDRESS:PORT]/service/camera/audio.aac",
+ "stillImageSource": "-re -probesize 32 -analyzeduration 0 -i http://[IP_ADDRESS:PORT]/service/camera/video.mjpeg",
+ "maxFPS": 10,
+ "forceMax": true,
+ "packetSize": 188,
+ "encoderOptions": "-preset ultrafast -tune zerolatency",
+ "audio": true,
+ "debug": false
+ },
+ "mqtt": {
+ "motionTopic": "homebridge/camera-ffmpeg/Phone%20Cam/motionDetected",
+ "motionMessage": "yes",
+ "motionResetTopic": "homebridge/camera-ffmpeg/Phone%20Cam/motionDetected",
+ "motionResetMessage": "no"
+ }
+}
+```
+
+**Additional Information:**
+
+### Features
+ - Audio
+ - Motion Detection
+ - Video ;-)
+
+### Settings in AirBeam
+- Camera
+ - Activate Audio / Video
+ - Format: High
+ - Limit Frame Rate: 10FPS
+ - No Overlays / AutoFocus / Mirror
+
+- Streaming
+ - Video: Motion JPEG (H264 Setting is useless; App always outputs MJPEG)
+ - Audio: AAC
+ - Video Resolution: 50%
+ - Quality: 50%
+ - No UDP
+
+
+### Node-RED Flow for listening to AirBeam's MotionDetected Events
+ - Flow AirBeamConnectableFlow
+ - Configurable Array of Cameras
+ - Detect if Camera devices (= Phones) are not reachable (e.g. if not connected to WiFi), and setting global value
+ - Detet if Video / Audio / Motion service (= AirBeam) is not consumable (e.g. if app is not running), and setting global value
+ 
+
+ - Flow AirBeamMotionDetection
+ - Stop sending mqtt messages if not reachable / consumable, see above
+ - Sends mqtt messages of all configured active cams based on MotionDetection attribute of AirBeam Camera's status
+ 
+
+[Node-RED_AirBeamCameraMotionDetectionFlow.flow.txt](https://github.com/Sunoo/homebridge-camera-ffmpeg/files/7145917/Node-RED_AirBeamCameraMotionDetectionFlow.flow.txt)
+
+Latency when opening the stream is BLAZING fast now (even a bit better than my native Logitech Circle 2 Cams), delays / lags are <1s, and the audio is properly in sync with video (was the biggest "issue").
+
+Running smooth on Raspberry 4b, OS 32bit / RAM 4GB:
+Raspi's Load is 60% / Temp is around 75°C when running 2 camera streams simultaneously (8% / ~60-65°C in normal operation mode).
diff --git a/_configs/AirBeam.md b/_configs/AirBeam.md
new file mode 100644
index 00000000..66dcc56b
--- /dev/null
+++ b/_configs/AirBeam.md
@@ -0,0 +1,30 @@
+---
+title: AirBeam iOS App
+comment: on iPhone 5C running iOS 10.3
+author: lazymoose5
+date: 2021-08-22
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "iphone5",
+ "manufacturer": "Apple",
+ "model": "iPhone 5C",
+ "videoConfig": {
+ "source": "-i http://192.168.3.8/service/camera/video.mjpeg",
+ "maxStreams": 2,
+ "maxWidth": 0,
+ "maxHeight": 0,
+ "maxFPS": 0,
+ "audio": false,
+ "debug": true
+ }
+}
+```
+
+**Additional Information**
+
+Video framerate and quality are set in the Air Beam app.
+
+I am using the Homebridge plugin in TrueNAS 12. Installation of ffmpeg through the shell made it work - as it was not available in the jail by default, use `pkg install ffmpeg`
diff --git a/_configs/Alptop-AT-200B.md b/_configs/Alptop-AT-200B.md
new file mode 100644
index 00000000..a5c97e4e
--- /dev/null
+++ b/_configs/Alptop-AT-200B.md
@@ -0,0 +1,24 @@
+---
+title: Alptop AT-200B
+author: bombcar
+date: 2019-01-19
+---
+- using homebridge-camera-ffmpeg
+- authentication for rtsp disabled in camera config
+- RaspberryPi seems to work with higher res but chokes
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Crib Camera",
+ "videoConfig": {
+ "source": "-re -i rtsp://192.168.88.198/channel1",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 20
+ }
+ }]
+}
+```
diff --git a/_configs/Amcrest-AD110.md b/_configs/Amcrest-AD110.md
new file mode 100644
index 00000000..280fb34a
--- /dev/null
+++ b/_configs/Amcrest-AD110.md
@@ -0,0 +1,31 @@
+---
+title: Amcrest AD110
+author: LiWhit
+date: 2021-01-01
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Front Door",
+ "manufacturer": "Amcrest",
+ "model": "AD110",
+ "serialNumber": "XXXXXXXXXXXXX",
+ "motion": true,
+ "doorbell": true,
+ "switches": true,
+ "unbridge": true,
+ "videoConfig": {
+ "source": "-i rtsp://admin:password@X.X.X.X:554/cam/realmonitor?channel=1&subtype=1",
+ "maxWidth": 0,
+ "maxHeight": 0,
+ "maxFPS": 0,
+ "forceMax": true,
+ "audio": true
+ }
+}
+```
+
+**Additional Information**
+
+Am unable to get the doorbell and motion sensor to work. Video feed is distorted for a second when opening the camera on the Home app. Audio is fine. No two-way audio
diff --git a/_configs/Amcrest-IP2M-841-2.md b/_configs/Amcrest-IP2M-841-2.md
new file mode 100644
index 00000000..4a522ce5
--- /dev/null
+++ b/_configs/Amcrest-IP2M-841-2.md
@@ -0,0 +1,43 @@
+---
+title: Amcrest IP2M-841
+author: kelmers
+date: 2021-02-28
+---
+This is to get IP2M-841 cameras streaming to homekit in 1080p, via transcode on a mac, with h264_videotoolbox.
+
+**Homebridge Config**
+
+```json
+{
+ "name": "Driveway",
+ "unbridge": true,
+ "videoConfig": {
+ "source": "-i rtsp://user:password@IPADDRESS:554/cam/realmonitor?channel=1&subtype=0",
+ "stillImageSource": "-i http://user:password@IPADDRESS/cgi-bin/snapshot.cgi?1",
+ "maxStreams": 2,
+ "maxWidth": 1920,
+ "maxHeight": 1080,
+ "maxFPS": 30,
+ "maxBitrate": 8192,
+ "forceMax": true,
+ "vcodec": "h264_videotoolbox",
+ "audio": true
+ }
+}
+```
+
+**Additional Information**
+
+To get this working right, login to amcrest web portal for camera to change stream settings. Then click camera and then video (both on left pane).
+Under main stream settings, change:
+
+- Encode mode: H.264H
+- Smart Codec OFF
+- resolution 1920x1080
+- FPS 30
+- Bit rate : VBR
+- Quality 6 Best
+- Max bit rate 8192
+- Frame Interval 60
+
+Then click save.
\ No newline at end of file
diff --git a/_configs/Amcrest-IP2M-841.md b/_configs/Amcrest-IP2M-841.md
new file mode 100644
index 00000000..80a0cc16
--- /dev/null
+++ b/_configs/Amcrest-IP2M-841.md
@@ -0,0 +1,25 @@
+---
+title: Amcrest IP2M-841
+author: Brad Gessler
+date: 2017-09-25
+---
+Tested from Linux. These camera's aren't that great and have difficulty holding a stream for longer than 30s.
+
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Nursery Camera",
+ "videoConfig": {
+ "source": "-xerror -rtsp_transport tcp -i rtsp://username:password@10.0.1.5/cam/realmonitor?channel=1&subtype=0 -c:a aac -b:a 128k -c:v libx264 -b:v 2500k -preset superfast",
+ "stillImageSource": "-i http://username:password@10.0.1.5/cgi-bin/snapshot.cgi",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 30
+ }
+ }]
+}
+```
diff --git a/_configs/Amcrest-IP2M-842E.md b/_configs/Amcrest-IP2M-842E.md
new file mode 100644
index 00000000..2a426fb2
--- /dev/null
+++ b/_configs/Amcrest-IP2M-842E.md
@@ -0,0 +1,42 @@
+---
+title: Amcrest IP2M-842E
+comment: POE bullet camera
+author: Brian Saycocie
+date: 2020-12-04
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Outdoor Camera",
+ "manufacturer": "Amcrest",
+ "model": "IP2M-842E",
+ "serialNumber": "XXXXXXXXXXXXXX",
+ "firmwareRevision": "2.520.0000.0.R",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -re -i rtsp://username:password@ipaddress:554/cam/realmonitor?channel=1&subtype=0",
+ "stillImageSource": "-i http://username:password@ipaddress/cgi-bin/snapshot.cgi?chn=1",
+ "maxStreams": 2,
+ "maxWidth": 1920,
+ "maxHeight": 1080,
+ "maxFPS": 30,
+ "maxBitrate": 2048,
+ "vcodec": "libx264 -preset ultrafast",
+ "audio": false
+ }
+}
+```
+
+**Additional Information**
+
+- Based on the [Amcrest IP4M-1026](https://sunoo.github.io/homebridge-camera-ffmpeg/configs/Amcrest-IP4M-1026.html) configuration, slightly modified for this specific camera.
+
+- The streaming appears to be working on iOS 14.1 and tvOS 14.3.
+
+- Works on a headless Ubuntu server with those specs, but may want to dial the values down to make it work on a Raspberry Pi e.g.:
+```json
+"maxWidth": 1280,
+"maxHeight": 720,
+"maxFPS": 15,
+"maxBitrate": 1024,
+```
diff --git a/_configs/Amcrest-IP3M-943B.md b/_configs/Amcrest-IP3M-943B.md
new file mode 100644
index 00000000..77711e62
--- /dev/null
+++ b/_configs/Amcrest-IP3M-943B.md
@@ -0,0 +1,38 @@
+---
+title: Amcrest IP3M-943B
+comment: Working with Motion and MotionDoorbell
+author: Brad Downey
+date: 2021-08-24
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Front Door Camera",
+ "manufacturer": "Amcrest",
+ "model": "IP3M-943B",
+ "motion": true,
+ "doorbell": true,
+ "motionTimeout": 0,
+ "motionDoorbell": true,
+ "unbridge": true,
+ "videoConfig": {
+ "source": "-i rtsp://admin:admin@192.168.128.123/cam/realmonitor?channel=1&subtype=0",
+ "stillImageSource": "-i http://admin:admin@192.168.128.123/cgi-bin/snapshot.cgi?chan=1",
+ "maxWidth": 0,
+ "maxHeight": 0,
+ "maxFPS": 0,
+ "maxBitrate": 2048,
+ "forceMax": true,
+ "vcodec": "copy",
+ "audio": false,
+ "debug": false
+ }
+}
+```
+
+**Additional Information**
+
+`dahua-alerts` reaches out to each camera at `/cgi-bin/eventManager.cgi?action=attach&codes=[VideoMotion]'` and the camera will send a notification when motion is detected. `dahua-alerts` will then send an http post to the http motion detection for `Camera-ffmpeg`
+
+I'm even getting Doorbell alerts on my Apple TV. So Cool!!
diff --git a/_configs/Amcrest-IP3M-HX2W.md b/_configs/Amcrest-IP3M-HX2W.md
new file mode 100644
index 00000000..0c104f51
--- /dev/null
+++ b/_configs/Amcrest-IP3M-HX2W.md
@@ -0,0 +1,29 @@
+---
+title: Amcrest IP3M-HX2W
+comment: HOOBS + Raspberry Pi 4
+author: resgroupmsr
+date: 2020-04-18
+---
+- 7 cameras working as expected. Copy vcodec seems smoother but the other option here working fine with ultrafast option chosen
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Camera Living Room Amcrest",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -re -i rtsp://user:pwd@192.168.1.221/cam/realmonitor?channel=1&subtype=00&authbasic=YWRtaW46bG9sYTk2OTg=",
+ "stillImageSource": "-i http://user:pwd@192.168.1.221/cgi-bin/snapshot.cgi?1",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 15,
+ "maxBitrate": 300,
+ "vcodec": "libx264 -preset ultrafast",
+ "packetSize": 1316,
+ "audio": false,
+ "debug": true
+ }
+ }]
+}
+```
diff --git a/_configs/Amcrest-IP4M-1026.md b/_configs/Amcrest-IP4M-1026.md
new file mode 100644
index 00000000..08a78a11
--- /dev/null
+++ b/_configs/Amcrest-IP4M-1026.md
@@ -0,0 +1,32 @@
+---
+title: Amcrest IP4M-1026
+author: Larry Davis
+date: 2020-05-06
+---
+## config.json
+
+```json
+{
+ "platforms": [{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "CAMERANAME",
+ "manufacturer": "Amcrest",
+ "model": "IP4M-1026",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -re -i rtsp://admin:PASSWORD@IPADDRESS:554/cam/realmonitor?channel=1&subtype=0",
+ "stillImageSource": "-i http://admin:PASSWORD@IPADDRESS/cgi-bin/snapshot.cgi?chn=1",
+ "maxStreams": 2,
+ "maxWidth": 2688,
+ "maxHeight": 1520,
+ "maxFPS": 30,
+ "maxBitrate": 2048,
+ "vcodec": "libx264 -preset ultrafast",
+ "packetSize": 1316,
+ "audio": false,
+ "debug": false
+ }
+ }]
+ }]
+}
+```
diff --git a/_configs/Amcrest-IP8M-2496E.md b/_configs/Amcrest-IP8M-2496E.md
new file mode 100644
index 00000000..37b95479
--- /dev/null
+++ b/_configs/Amcrest-IP8M-2496E.md
@@ -0,0 +1,39 @@
+---
+title: Amcrest IP8M-2496E
+author: reflectivist
+date: 2022-01-23
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Carport",
+ "manufacturer": "Amcrest",
+ "model": "IP8M-2496EB",
+ "serialNumber": "AMC04677C19C80AB21",
+ "firmwareRevision": "2.622_00AC000.0.R.210319",
+ "unbridge": false,
+ "videoConfig": {
+ "source": "-i rtsp://admin:mypassword@xxx.xxx.xxx.xxx@cam/realmonitor?channel=1&subtype=0",
+ "stillImageSource": "-i http://admin:mypassword@xxx.xxx.xxx.xxx/cgi-bin/snapshot.cgi",
+ "maxStreams": 2,
+ "maxFPS": 15,
+ "maxWidth": 3840,
+ "maxHeight": 2160,
+ "maxBitrate": 4096,
+ "encoderOptions": "-profile high -preset ultrafast -tune zerolatency",
+ "vcodec": "libx264",
+ "audio": false
+ }
+}
+```
+
+**Additional Information**
+
+Download the Amcrest Config tool to get all of the information and configuration parameter data specific to your Amcrest camera, such as protocol, max frame rate, max bit rate, ... including firmware revision (Camera firmware with that tool too, and firmware is easy to locate by searching for Amcrest firmware on the web).
+
+Search web for "Amcrest API" to find the documentation that describes how to access the camera, including format of the rtsp:// URL, and the still image URL. That document indicates URL default options that could possibly be omitted (due to redundancy) from the configuration line (such as port 554 being the default, and channel=1).
+
+The x264 --fullhelp command which you can enter in a terminal window on your homebridge server, lists libx264 codec options. Note that the IP8M-2496E shows up in the Amcrest config tool as using the H.264H protocol (H for 'high'), as opposed to H.264, which is base cnfiguration. H.264H translates to -profile high in the libx264 codec options.
+
+On macOS Monterey the default ffmpeg command was too early a version and didn't support all the options homebridge was passing to it. Building the latest stable ffmpeg from source on github fixed that (had to build it with H.264 explicitly enabled on the configuration command).
diff --git a/_configs/Amcrest-IP8M-2496EB.md b/_configs/Amcrest-IP8M-2496EB.md
new file mode 100644
index 00000000..1a0f9c28
--- /dev/null
+++ b/_configs/Amcrest-IP8M-2496EB.md
@@ -0,0 +1,19 @@
+---
+title: Amcrest IP8M-2496EB
+comment: 4K POE Camera
+author: MatthewKovalcik
+date: 2021-09-29
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Front Door",
+ "unbridge": true,
+ "videoConfig": {
+ "source": "-i rtsp://USERNAME:PASSWORD@INTERNALIP:554/cam/realmonitor?channel=1&subtype=0",
+ "maxWidth": 1920,
+ "maxHeight": 1080
+ }
+}
+```
diff --git a/_configs/Amcrest-IPM-721W-2.md b/_configs/Amcrest-IPM-721W-2.md
new file mode 100644
index 00000000..88cbdd2a
--- /dev/null
+++ b/_configs/Amcrest-IPM-721W-2.md
@@ -0,0 +1,44 @@
+---
+title: Amcrest IPM-721W
+author: FawziD
+date: 2021-06-12
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "XXXXXX",
+ "manufacturer": "Amcrest",
+ "model": "IPM-721W",
+ "serialNumber": "AMCXXXXXXXXXXXXXXX",
+ "firmwareRevision": "V2.420.AC00.18.R, Build Date: 2020-02-17",
+ "unbridge": true,
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -i rtsp://admin:XXXXXXXX@192.168.2.XXX/cam/realmonitor?channel=1&subtype=00&authbasic=",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 15,
+ "maxBitrate": 1024,
+ "forceMax": false,
+ "vcodec": "libx264 -preset ultrafast",
+ "packetSize": 1316,
+ "encoderOptions": "-async 1 -vsync 1",
+ "audio": true,
+ "debug": false
+ }
+}
+```
+
+**Additional Information**
+
+After a LOT of trial and error I finally got this working right !
+This Amcrest camera is one of the cheapest PTZ camera available. It's web ui is extremely slow but once it's setup it works fine.
+
+*The most helpful settings:*
+- **encoderOptions** which gives the system a little leeway and not freeze frames that are a little out of sync (I think...).
+- **rtsp_transport tcp** setting which limits the transport to TCP only so the receiving end doesn't try to reorder packets received out of order with UDP.
+- **vcodec** setting; "copy" or "h264_omx" don't allow -preset ultrafast. It ads some load to the processor (about 14% per stream) but I get the stream's startup delay down to less than 5 seconds.
+
+And with this, it runs absolutely smoothly !
+
diff --git a/_configs/Amcrest-IPM-721W.md b/_configs/Amcrest-IPM-721W.md
new file mode 100644
index 00000000..63d6a1ce
--- /dev/null
+++ b/_configs/Amcrest-IPM-721W.md
@@ -0,0 +1,40 @@
+---
+title: Amcrest IPM-721W
+author: FawziD
+date: 2020-09-19
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Cam1",
+ "manufacturer": "Amcrest",
+ "model": "IPM-721W",
+ "serialNumber": "XXXXXXXXXX",
+ "firmwareRevision": "V2.420.AC00.18.R, Build Date: 2020-02-17",
+ "motion": true,
+ "unbridge": true,
+ "videoConfig": {
+ "source": "-i rtsp://admin:####@192.168.2.99/cam/realmonitor?channel=1&subtype=0",
+ "maxStreams": 2,
+ "maxWidth": 0,
+ "maxHeight": 0,
+ "maxFPS": 15,
+ "maxBitrate": 1024,
+ "vcodec": "h264_omx",
+ "packetSize": 188,
+ "encoderOptions": "-preset ultrafast -tune zerolatency",
+ "audio": true,
+ "debug": false
+ }
+}
+```
+
+**Additional Information**
+
+- Works ok on an old Raspberry pi 2 with this sub 50$ camera. I've fiddled quite a long while to get to this. There are a few skipped frames here and there but otherwise works fine.
+
+- The widget view in HomeKit shows only snapshots every 10 seconds in iOS and doesn't work at all in MacOS. But full screen view on iOS, TVOS, iPadOS and MacOS shows a live feed (with sound) reliably.
+
+- Hardware h264 decoding works fine, although each individual stream adds 25~30% load on the CPU.
+And I've set the camera itself to 15fps, high quality and a 1024 bitrate which seemed to help also.
diff --git a/_configs/Amcrest-IPM-HX1B.md b/_configs/Amcrest-IPM-HX1B.md
new file mode 100644
index 00000000..ed23b05e
--- /dev/null
+++ b/_configs/Amcrest-IPM-HX1B.md
@@ -0,0 +1,26 @@
+---
+title: Amcrest IPM-HX1B
+comment: with MP4 Passthrough
+author: Eric Cirone
+date: 2020-05-27
+---
+## config.json
+
+```json
+{
+ "name": "Camera",
+ "motion": true,
+ "videoConfig": {
+ "source": "-i rtsp://admin:PASSWORD@192.168.1.2/cam/realmonitor?channel=1&subtype=0",
+ "stillImageSource": "-i http://admin:PASSWORD@192.168.1.2/cgi-bin/snapshot.cgi",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 960,
+ "maxFPS": 30,
+ "audio": true,
+ "preserveRatio": "W",
+ "vcodec": "copy",
+ "acodec": "copy"
+ }
+}
+```
diff --git a/_configs/Anran-DVR.md b/_configs/Anran-DVR.md
new file mode 100644
index 00000000..60fda3c8
--- /dev/null
+++ b/_configs/Anran-DVR.md
@@ -0,0 +1,40 @@
+---
+title: Anran DVR
+comment: Generic Chinese DVR
+author: gilesmartin
+date: 2018-12-11
+---
+This works perfectly with a properly powered computer (my Mac mini i5). I am also having the DVR send motion emails to the smtpsensor plugin. This triggers a motion sensor for the area and immediately sends a homekit notification with a clip from the camera.
+
+DVR system:
+
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Outside Front",
+ "videoConfig": {
+ "source": "-re -i rtsp://10.0.1.93:554/user=admin&password=XXXXXX&channel=1&stream=0.sdp?real_stream--rtp-caching=100",
+ "stillImageSource": "-re -i rtsp://10.0.1.93:554/user=admin&password=XXXXXX&channel=1&stream=1.sdp?real_stream--rtp-caching=100",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 50
+ }
+ },
+ {
+ "name": "Outside Rear",
+ "videoConfig": {
+ "source": "-re -i rtsp://10.0.1.93:554/user=admin&password=XXXXXX&channel=2&stream=0.sdp?real_stream--rtp-caching=100",
+ "stillImageSource": "-re -i rtsp://10.0.1.93:554/user=admin&password=XXXXXX&channel=2&stream=1.sdp?real_stream--rtp-caching=100",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 50
+ }
+ }
+ ]
+}
+```
diff --git a/_configs/August-Doorbell-Cam-Pro.md b/_configs/August-Doorbell-Cam-Pro.md
new file mode 100644
index 00000000..e31d04a0
--- /dev/null
+++ b/_configs/August-Doorbell-Cam-Pro.md
@@ -0,0 +1,31 @@
+---
+title: August Doorbell Cam Pro
+author: jlg89
+date: 2020-11-03
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "DoorbellCam",
+ "manufacturer": "August Home",
+ "model": "Doorbell Cam Pro",
+ "serialNumber": "ABCD12345",
+ "motion": true,
+ "motionTimeout": 15,
+ "videoConfig": {
+ "source": "-i rtsp://admin:admin@192.168.0.10/live/stream",
+ "stillImageSource": "-i rtsp://admin:admin@192.168.0.10/live/stream -vframes 1 -r 1",
+ "maxStreams": 2,
+ "maxWidth": 480,
+ "maxHeight": 640,
+ "maxFPS": 10,
+ "audio": true,
+ "debug": false
+ }
+}
+```
+
+**Additional Information**
+
+[Included](https://sunoo.github.io/homebridge-camera-ffmpeg/automation/motion.html) is a writeup on configuring an RPi with Motion to monitor the RTSP stream from an August Doorbell Cam and generate MQTT motion events in homebridge-camera-ffmpeg.
diff --git a/_configs/August-Doorbell-Cam-Version-1.md b/_configs/August-Doorbell-Cam-Version-1.md
new file mode 100644
index 00000000..29eed742
--- /dev/null
+++ b/_configs/August-Doorbell-Cam-Version-1.md
@@ -0,0 +1,31 @@
+---
+title: August Doorbell Cam Version 1
+author: siobhanellis
+date: 2020-01-27
+---
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "August",
+ "manufacturer": "August",
+ "model": "Doorbell Cam",
+ "serialNumber": "XXXXXXXXX",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -i rtsp://admin:password@XXX.XXX.XXX.XXX:554/stream0",
+ "stillImageSource": "-skip_frame nokey -i rtsp://admin:password@xxx.xxx.xxx.xxx:554/live/stream1 -frames:v 1",
+ "maxStreams": 10,
+ "maxWidth": 1280,
+ "maxHeight": 960,
+ "maxFPS": 30
+ }
+ }]
+}
+```
+
+### Notes
+
+Replace XXX.XXX.XXX.XXX, etc with your values.
+Important that use make sure the live video is on stream0 and still is on stream1.
diff --git a/_configs/Avtech-AVM542B.md b/_configs/Avtech-AVM542B.md
new file mode 100644
index 00000000..405c9613
--- /dev/null
+++ b/_configs/Avtech-AVM542B.md
@@ -0,0 +1,23 @@
+---
+title: Avtech AVM542B
+author: Lukas Foukal
+date: 2020-01-18
+---
+Server on Synology with Docker via oznu's homebridge-syno-spk
+
+```json
+{
+ "name": "AVM542B",
+ "motion": false,
+ "manufacturer": "Avtech",
+ "model": "AVM-542B",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -re -i rtsp://admin:password@192.168.1.1/live/video/profile1",
+ "maxStreams": 2,
+ "maxWidth": 1920,
+ "maxHeight": 1080,
+ "maxBitrate": 500,
+ "maxFPS": 5
+ }
+}
+```
diff --git a/_configs/Avtech-MDR751B-DVR.md b/_configs/Avtech-MDR751B-DVR.md
new file mode 100644
index 00000000..53f1ca93
--- /dev/null
+++ b/_configs/Avtech-MDR751B-DVR.md
@@ -0,0 +1,19 @@
+---
+title: Avtech MDR751B DVR
+author: badnimits
+date: 2019-01-10
+---
+Server running on windows 10.
+
+```json
+{
+ "name": "Entrance Camera",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -re -i rtsp://admin:admin@192.168.1.26/live/h264",
+ "maxStreams": 1,
+ "maxWidth": 640,
+ "maxHeight": 480,
+ "maxFPS": 30
+ }
+}
+```
diff --git a/_configs/Axis-M3024-L.md b/_configs/Axis-M3024-L.md
new file mode 100644
index 00000000..7bc6e7ca
--- /dev/null
+++ b/_configs/Axis-M3024-L.md
@@ -0,0 +1,25 @@
+---
+title: Axis M3024-L
+comment: with Raspberry Pi 3 Model B
+author: tiele004
+date: 2018-02-08
+---
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Axis M3024-L",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -i rtsp://user:password@192.168.100.100:554/axis-media/media.amp?streamprofile=Media?tcp",
+ "stillImageSource": "-i http://user:password@192.168.100.100/axis-cgi/jpg/image.cgi",
+ "maxStreams": 3,
+ "maxWidth": 1920,
+ "maxHeight": 1080,
+ "maxFPS": 30,
+ "vcodec": "h264_omx"
+ }
+ }]
+}
+```
\ No newline at end of file
diff --git a/_configs/Besder-POE-720P.md b/_configs/Besder-POE-720P.md
new file mode 100644
index 00000000..b4a3a5f0
--- /dev/null
+++ b/_configs/Besder-POE-720P.md
@@ -0,0 +1,16 @@
+---
+title: Besder POE 720P
+author: Liron Ilouz
+date: 2020-10-19
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "CAM 1",
+ "manufacturer": "Besder",
+ "videoConfig": {
+ "source": "-i rtsp://xxx.xxx.xxx.xxx/user=admin_password=tlJwpbo6_channel=1_stream=0.sdp"
+ }
+}
+```
diff --git a/_configs/Blue-Iris-2.md b/_configs/Blue-Iris-2.md
new file mode 100644
index 00000000..825c1b38
--- /dev/null
+++ b/_configs/Blue-Iris-2.md
@@ -0,0 +1,28 @@
+---
+title: Blue Iris
+comment: updated
+author: meluvalli
+date: 2021-12-07
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "My Camera",
+ "motion": true,
+ "switches": true,
+ "unbridge": true,
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -probesize 32 -analyzeduration 0 -re -i rtsp://[Blue Iris ip address]:[Blue Iris HTTP Port]/[Camera or GroupName]",
+ "stillImageSource": "-i http://[Blue Iris ip address]:[Blue Iris HTTP Port]/image/[Camera or GroupName]?q=75",
+ "maxFPS": 0,
+ "vcodec": "copy",
+ "audio": true,
+ "debug": true
+ }
+}
+```
+
+**Additional Information**
+
+Note: There is already a Blue Iris config posted, however it uses HLS and is HORIBLE resaults! I would recommend updating :)
diff --git a/_configs/Blue-Iris.md b/_configs/Blue-Iris.md
new file mode 100644
index 00000000..87793a01
--- /dev/null
+++ b/_configs/Blue-Iris.md
@@ -0,0 +1,31 @@
+---
+title: Blue Iris
+author: Normen Hansen
+date: 2018-03-02
+---
+If you have a Blue Iris server, you can add any camera with the following configuration:
+
+```json
+{
+ "platform": "Camera-IP",
+ "cameras": [{
+ "name": "My First Camera",
+ "videoConfig": {
+ "source": "-re -i http://user:password@serverip/h264/camshortname/temp.ts",
+ "stillImageSource": "-i http://user:password@serverip/image/camshortname?q=75",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 1024,
+ "maxFPS": 15
+ }
+ }]
+}
+```
+
+- user/password - user with camera view permissions in Blue Iris
+- serverip - The IP or hostname of your Blue Iris server
+- camshortname - The short name of the camera in Blue Iris
+- maxWidth/maxHeight - set to the camera native resolution
+
+For example, you could use the following URL if for user:homebridge, password: password, server: bi.example.com, camshortname: driveway
+`http://homebridge:password@bi.example.com/h264/driveway/temp.ts`
diff --git a/_configs/Bosch-Security-Cameras.md b/_configs/Bosch-Security-Cameras.md
new file mode 100644
index 00000000..9b6f7200
--- /dev/null
+++ b/_configs/Bosch-Security-Cameras.md
@@ -0,0 +1,33 @@
+---
+title: Bosch Security Cameras
+author: chrkan
+date: 2022-01-05
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Tinyion",
+ "manufacturer": "Bosch",
+ "model": "TINYON IP 2000 WI",
+ "serialNumber": "00000",
+ "firmwareRevision": "7.10.0095",
+ "motion": true,
+ "doorbell": true,
+ "switches": true,
+ "motionDoorbell": false,
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -re -i rtsp://live:PW@IP-Adress/?h26x=4",
+ "stillImageSource": "-i http://live:PW@IP-Adress/snap.jpg",
+ "forceMax": true,
+ "mapvideo": "rtsp://live:PW@IP-Adress/?h26x=4",
+ "audio": false,
+ "debug": false
+ }
+}
+```
+
+**Additional Information**
+
+More Stream Information can added by using the RTSP usage with Bosch VIP Devices document:
+https://resources-boschsecurity-cdn.azureedge.net/public/documents/RTSP_VIP_Configuration_Note_enUS_9007200806939915.pdf
diff --git a/_configs/CNB-IVP4030VR.md b/_configs/CNB-IVP4030VR.md
new file mode 100644
index 00000000..b9c9995f
--- /dev/null
+++ b/_configs/CNB-IVP4030VR.md
@@ -0,0 +1,31 @@
+---
+title: CNB IVP4030VR
+comment: via RPI Model B
+author: migabc
+date: 2018-04-21
+---
+CNB IP Camera
+Model number:IVP4030VR
+
+Homebridge config.json:
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Front Gate Camera",
+ "videoConfig": {
+ "source": "-re -i rtsp://<192.168.X.X:665",
+ "maxStreams": 2,
+ "maxWidth": 640,
+ "maxHeight": 480,
+ "maxFPS": 24,
+ "maxBitrate": 1024,
+ "vcodec": "h264_omx",
+ "audio": false,
+ "packetSize": 188,
+ "debug": true
+ }
+ }]
+}
+```
diff --git a/_configs/D-Link-930L.md b/_configs/D-Link-930L.md
new file mode 100644
index 00000000..fe3af1a5
--- /dev/null
+++ b/_configs/D-Link-930L.md
@@ -0,0 +1,22 @@
+---
+title: D-Link 930L
+author: Gamer106
+date: 2018-09-01
+---
+Tested on Raspberry Pi 3 (with omx)
+
+## config.json
+
+```json
+{
+ "name": "D-Link Camera",
+ "videoConfig": {
+ "source": "-re -f mjpeg -i http://admin:password@localip:port/video.cgi",
+ "stillImageSource": "-f mjpeg -i http://admin:password@localip:port/image.jpg",
+ "maxStreams": 2,
+ "maxWidth": 640,
+ "maxHeight": 480,
+ "maxFPS": 20
+ }
+}
+```
diff --git a/_configs/D-Link-932L.md b/_configs/D-Link-932L.md
new file mode 100644
index 00000000..9e478068
--- /dev/null
+++ b/_configs/D-Link-932L.md
@@ -0,0 +1,22 @@
+---
+title: D-Link 932L
+author: gilesmartin
+date: 2017-01-31
+---
+Works on Mac Mini core i5, Raspberry Pi 3 (with and without omx)
+
+## config.json
+
+```json
+{
+ "name": "D-Link Camera",
+ "videoConfig": {
+ "source": "-re -f mjpeg -i http://admin:password@10.0.1.101/mjpeg.cgi -i http://admin:password@10.0.1.101/audio.cgi",
+ "stillImageSource": "-f mjpeg -i http://admin:password@10.0.1.101/mjpeg.cgi",
+ "maxStreams": 2,
+ "maxWidth": 640,
+ "maxHeight": 480,
+ "maxFPS": 30
+ }
+}
+```
diff --git a/_configs/D-Link-934L.md b/_configs/D-Link-934L.md
new file mode 100644
index 00000000..00361062
--- /dev/null
+++ b/_configs/D-Link-934L.md
@@ -0,0 +1,22 @@
+---
+title: D-Link 934L
+author: Gamer106
+date: 2018-09-01
+---
+Tested on Raspberry Pi 3 (with omx)
+
+## config.json
+
+```json
+{
+ "name": "D-Link Camera",
+ "videoConfig": {
+ "source": "-re -f mjpeg -i http://admin:password@localip:port/video.cgi",
+ "stillImageSource": "-f mjpeg -i http://admin:password@localip:port/image/jpeg.cgi",
+ "maxStreams": 2,
+ "maxWidth": 640,
+ "maxHeight": 480,
+ "maxFPS": 20
+ }
+}
+```
diff --git a/_configs/D-Link-936L.md b/_configs/D-Link-936L.md
new file mode 100644
index 00000000..6ba7a7f6
--- /dev/null
+++ b/_configs/D-Link-936L.md
@@ -0,0 +1,23 @@
+---
+title: D-Link 936L
+author: Arne
+date: 2017-10-06
+---
+Works on Raspberry Pi 3 (only with omx)
+
+## config.json
+
+```json
+{
+ "name": "D-Link Camera",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -i rtsp://admin:password@10.0.1.101:554/play1.sdp",
+ "stillImageSource": "-i http://admin:password@10.0.1.101/image/jpeg.cgi",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 30,
+ "vcodec": "h264_omx"
+ }
+}
+```
diff --git a/_configs/D-Link-DCS-1130.md b/_configs/D-Link-DCS-1130.md
new file mode 100644
index 00000000..805925e6
--- /dev/null
+++ b/_configs/D-Link-DCS-1130.md
@@ -0,0 +1,20 @@
+---
+title: D-Link DCS-1130
+author: NicholasB60
+date: 2021-02-16
+---
+## Homebridge Config
+
+```json
+{
+ "name": "D-Link Camera",
+ "videoConfig": {
+ "source": "-re -f mjpeg -i http://admin:password@localip:port/video/mjpg.cgi",
+ "stillImageSource": "-i http://admin:password@localip:port/image/jpeg.cgi",
+ "maxStreams": 2,
+ "maxWidth": 320,
+ "maxHeight": 240,
+ "maxFPS": 30
+ }
+}
+```
diff --git a/_configs/D-Link-DCS-2332L-DCS-2330L.md b/_configs/D-Link-DCS-2332L-DCS-2330L.md
new file mode 100644
index 00000000..c80f5fa5
--- /dev/null
+++ b/_configs/D-Link-DCS-2332L-DCS-2330L.md
@@ -0,0 +1,34 @@
+---
+title: D-Link DCS-2332L/DCS-2330L
+author: pkempe
+date: 2018-05-20
+---
+Works for both DCS-2332L and DCS2330L on Mac Mini late 2009 (MacOS El Capitan 10.11.6). The video profiles for the cameras are set as below in the web interface.
+
+### Video profile 1
+* H.264
+* Frame size/view window area 1280x720
+* Max frame rate 25
+* Video quality fixed/excellent
+
+### Video profile 2
+* JPEG
+* Frame size/view window area 1280x720
+* Max frame rate 25
+* Video quality fixed/good
+
+## config.json
+
+```json
+{
+ "name": "D-Link Camera",
+ "videoConfig": {
+ "source": "-re -i http://user:password@192.168.0.1/video2.mjpg",
+ "stillImageSource": "-i http://user:password@192.168.0.1/image/jpeg.cgi?profileid=1",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 30
+ }
+}
+```
diff --git a/_configs/D-Link-DCS-5222LB1.md b/_configs/D-Link-DCS-5222LB1.md
new file mode 100644
index 00000000..a47770bc
--- /dev/null
+++ b/_configs/D-Link-DCS-5222LB1.md
@@ -0,0 +1,31 @@
+---
+title: D-Link DCS-5222LB1
+author: EDRENOS
+date: 2019-12-26
+---
+Notes: Replace IPADDRESS XX.XX.XX.XX, USER and PASSWORD with your data.
+
+## config.json
+
+```json
+{
+ "name": "D-LINK CAMERA",
+ "cameras": [{
+ "name": "DCS-5222LB",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -i rtsp://USER:PASSWORD@XX.XX.XX.XX/live1.sdp",
+ "stillImageSource": "-i http://USER:PASSWORD@XX.XX.XX.XX/image/jpeg.cgi",
+ "maxStreams": 4,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 30,
+ "maxBitrate": 300,
+ "vcodec": "h264_omx",
+ "packetSize": 564,
+ "audio": true,
+ "debug": false
+ }
+ }],
+ "platform": "Camera-ffmpeg"
+}
+```
diff --git a/_configs/D-Link-DCS-933L.md b/_configs/D-Link-DCS-933L.md
new file mode 100644
index 00000000..5fab34d7
--- /dev/null
+++ b/_configs/D-Link-DCS-933L.md
@@ -0,0 +1,81 @@
+---
+title: D-Link DCS-933L
+author: Agneev Mukherjee
+date: 2021-09-02
+---
+## Main config
+
+This uses MJPEG with no audio. Results in little to no delay when starting up, however the video might get jittery after a while.
+
+```json
+{
+ "name": "Front Gate Camera",
+ "manufacturer": "D-Link",
+ "model": "DCS-933L",
+ "firmwareRevision": "1.15.01",
+ "videoConfig": {
+ "source": "-re -f mjpeg -i http://user:pass@IP/mjpeg.cgi",
+ "stillImageSource": "-i http://user:pass@IP/image/jpeg.cgi",
+ "maxStreams": 6,
+ "maxWidth": 0,
+ "maxHeight": 0,
+ "maxFPS": 0,
+ "maxBitrate": 6000,
+ "forceMax": true,
+ "preserveRatio": true,
+ "encoderOptions": "-tune zerolatency"
+ }
+}
+```
+
+## H.264 config
+
+This uses H.264 with no audio. There's approx. 5 secs delay at the start, then smooth video throughout.
+
+From main config:
+
+```json
+{
+ "videoConfig": {
+ "source": "-re -i http://user:pass@IP/dgh264.raw"
+ }
+}
+```
+
+## H.264 audio config
+
+There's ~10 secs delay at the start and audio is functional. Best option if you want reliable audio and video.
+
+From main config:
+
+```json
+{
+ "videoConfig": {
+ "source": "-re -i http://user:pass@IP/dgh264.raw -i http://user:pass@IP/dgaudio.cgi",
+ "mapaudio": "1:0",
+ "audio": true
+ }
+}
+```
+
+## MJPEG audio config
+
+(Not recommended)
+
+This also results in a delay of ~10 secs. In my testing, I've found that audio would often cut out, so the H.264 audio config is the best bet.
+
+From main config:
+
+```json
+{
+ "videoConfig": {
+ "source": "-re -f mjpeg -i http://user:pass@IP/mjpeg.cgi -i http://user:pass@IP/audio.cgi",
+ "mapaudio": "1:0",
+ "audio": true
+ }
+}
+```
+
+## Additional Information
+
+Tested on Raspberry Pi 4 running Ubuntu 20.04 (64-bit).
diff --git a/_configs/D-Link-DCS-942L.md b/_configs/D-Link-DCS-942L.md
new file mode 100644
index 00000000..9779de36
--- /dev/null
+++ b/_configs/D-Link-DCS-942L.md
@@ -0,0 +1,35 @@
+---
+title: D-Link DCS-942L
+author: WaldperlachFabi
+date: 2021-05-17
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "D-link",
+ "motionDoorbell": true,
+ "doorbell": true,
+ "switches": true,
+ "videoConfig": {
+ "stillImageSource": "-i https://xxx.xxx.xxx.xx/image/jpeg.cgi",
+ "source": "-i rtsp://xxx.xxx.xxx.xx/play1.sdp",
+ "maxWidth": 640,
+ "audio": true,
+ "maxHeight": 480
+ },
+ "motion": true
+}
+```
+
+xxx.xxx.xxx.xx is the IP address from your camera.
+
+**Additional Information**
+
+Please set up in the camera settings that you dont need a password for rtsp stream and the photo.
+
+Sorry that the photos are in German. But I think you can see what you have to adjust.
+
+
+
+
diff --git a/_configs/DBPOWER-MEYE-155303-FBACE.md b/_configs/DBPOWER-MEYE-155303-FBACE.md
new file mode 100644
index 00000000..12bb85f1
--- /dev/null
+++ b/_configs/DBPOWER-MEYE-155303-FBACE.md
@@ -0,0 +1,27 @@
+---
+title: DBPOWER MEYE-155303-FBACE
+comment: with Raspberry Pi 3 Model B
+author: Marci
+date: 2020-04-28
+---
+No rtsp streams available - all via MJPEG...
+
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "DBPower",
+ "videoConfig": {
+ "source": "-re -i http://[USER]:[PASSWORD]@ip-address:81/videostream.cgi",
+ "stillImageSource": "-i http://ip-address:81/snapshot.cgi?user=[USER]&pwd=[PASSWORD]",
+ "maxStreams": 2,
+ "maxWidth": 640,
+ "maxHeight": 480,
+ "maxFPS": 16,
+ "vcodec": "h264_omx"
+ }
+ }]
+}
+```
diff --git a/_configs/Dahua-DH-SD22204T-GN.md b/_configs/Dahua-DH-SD22204T-GN.md
new file mode 100644
index 00000000..8d190d9f
--- /dev/null
+++ b/_configs/Dahua-DH-SD22204T-GN.md
@@ -0,0 +1,39 @@
+---
+title: Dahua DH-SD22204T-GN
+author: Dmitry Nosovitsky
+date: 2020-09-04
+---
+**Homebridge Config**
+
+```json
+{
+ "cameras": [{
+ "name": "Gate Camera",
+ "manufacturer": "Dahua",
+ "model": "DH-SD22204T-GN",
+ "serialNumber": "yourcameraserialnumber",
+ "firmwareRevision": "yourcamerafirmwarerevision",
+ "motion": true,
+ "motionTimeout": 35,
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -re -i rtsp://yourcamerauser:yourcamerapassword@yourcameraIP:554/cam/realmonitor?channel=1&subtype=0",
+ "vcodec": "copy",
+ "maxFPS": 4,
+ "maxStreams": 2,
+ "maxWidth": 704,
+ "maxHeight": 576,
+ "packetsize": 1316,
+ "maxBitrate": 1000,
+ "audio": true,
+ "mapaudio": "0:1?",
+ "debug": true
+ }
+ }],
+ "platform": "Camera-ffmpeg"
+}
+```
+
+**Additional Information**
+
+- Setting "vcodec" value as "copy" let you to use even old (2015) weak (RAM 512 MB) OrangePiOne as HomeBridge with 2-5% CPU load for 11 cameras simultaneously
+- "maxFPS" could be set to 14 if your camera is in good wired network
diff --git a/_configs/Dahua-IPC-A35.md b/_configs/Dahua-IPC-A35.md
new file mode 100644
index 00000000..a494abfd
--- /dev/null
+++ b/_configs/Dahua-IPC-A35.md
@@ -0,0 +1,29 @@
+---
+title: Dahua IPC-A35
+comment: with sound
+author: Martin Kuneš
+date: 2020-06-11
+---
+## config.json
+
+```json
+{
+ "name": "Chodba",
+ "manufacturer": "Dahua",
+ "model": "IPC-A35",
+ "serialNumber": "2L043A6AAK00059",
+ "firmwareRevision": "2.400.0000000.16.R",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -re -i rtsp://USERNAME:PASSWORD@CAMERA-IP:PORT//cam/realmonitor?channel=1&subtype=0",
+ "vcodec": "libx264 -preset ultrafast",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 30,
+ "maxBitrate": 2048,
+ "packetSize": 376,
+ "audio": true,
+ "mapaudio": "0:1"
+ }
+}
+```
diff --git a/_configs/Dahua-IPC-HFW1320S-W.md b/_configs/Dahua-IPC-HFW1320S-W.md
new file mode 100644
index 00000000..4ebb3702
--- /dev/null
+++ b/_configs/Dahua-IPC-HFW1320S-W.md
@@ -0,0 +1,27 @@
+---
+title: Dahua IPC-HFW1320S-W
+author: Martin Kuneš
+date: 2020-06-11
+---
+## config.json
+
+```json
+{
+ "name": "Pracovna",
+ "manufacturer": "Dahua",
+ "model": "IPC-HFW1320S-W",
+ "serialNumber": "4A040C2PAU4C91E",
+ "firmwareRevision": "2.400.0000000.16.R",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -re -i rtsp://USERNAME:PASSWORD@CAMERA-IP:PORT//cam/realmonitor?channel=1&subtype=0",
+ "vcodec": "libx264 -preset ultrafast",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 30,
+ "maxBitrate": 2048,
+ "packetSize": 376,
+ "audio": false
+ }
+}
+```
diff --git a/_configs/Dahua-N41C2P2-NVR.md b/_configs/Dahua-N41C2P2-NVR.md
new file mode 100644
index 00000000..8fa36d1b
--- /dev/null
+++ b/_configs/Dahua-N41C2P2-NVR.md
@@ -0,0 +1,25 @@
+---
+title: Dahua N41C2P2 NVR
+comment: with N42BJ62 5MP Camera
+author: jonsem2
+date: 2021-03-09
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "FrontDoor",
+ "videoConfig": {
+ "source": "-i rtsp://admin:password@192.168.1.108:554/cam/realmonitor?channel=1&subtype=0"
+ }
+}
+```
+
+**Additional Information**
+
+These cameras are connected to a Dahua POE NVR on a isolated network. RTSP stream is being reached by going to NVR LAN address.
+
+rtsp://:@:/cam/realmonitor?channel=1@subtype=0
+channel:stream channel on NVR;subtype: Code-stream ty[pe, main stream 0, substream 1
+
+rtsp://admin:password@192.168.1.108:554/cam/realmonitor?channel=4&subtype=0
diff --git a/_configs/Digoo-BB-M1X.md b/_configs/Digoo-BB-M1X.md
new file mode 100644
index 00000000..1993b36d
--- /dev/null
+++ b/_configs/Digoo-BB-M1X.md
@@ -0,0 +1,22 @@
+---
+title: Digoo BB-M1X
+author: Attila Laszlo
+date: 2021-08-13
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Digoo",
+ "unbridge": true,
+ "videoConfig": {
+ "source": "-re -i rtsp://admin:20160404@IPADDRESS:554/onvif1",
+ "maxWidth": 1280,
+ "maxHeight": 960
+ }
+}
+```
+
+**Additional Information**
+
+I've included the default user and password, but make sure you change it during the setup of your camera.
diff --git a/_configs/Digoo-DG-W02F.md b/_configs/Digoo-DG-W02F.md
new file mode 100644
index 00000000..c7238a33
--- /dev/null
+++ b/_configs/Digoo-DG-W02F.md
@@ -0,0 +1,25 @@
+---
+title: Digoo DG-W02F
+author: LeJeko
+date: 2019-04-04
+---
+Working through RTSP on RaspberryPi
+
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Digoo",
+ "videoConfig": {
+ "vcodec": "h264_omx",
+ "source": "-re -i rtsp://XXX.XXX.XXX.XXX",
+ "maxFPS": 25,
+ "maxHeight": 720,
+ "maxStreams": 2,
+ "maxWidth": 1280
+ }
+ }]
+}
+```
diff --git a/_configs/Doorbird-Video-Doorbell-Basic.md b/_configs/Doorbird-Video-Doorbell-Basic.md
new file mode 100644
index 00000000..736ffdb4
--- /dev/null
+++ b/_configs/Doorbird-Video-Doorbell-Basic.md
@@ -0,0 +1,25 @@
+---
+title: Doorbird Video Doorbell
+comment: Basic
+author: tommyd75
+date: 2017-01-11
+---
+This works for me, it's for a Doorbird Video Doorbell, which I think uses the same hardware or at least same connection method as a Axis IP camera.
+
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Front Door Camera",
+ "videoConfig": {
+ "source": "-re -i http://192.168.1.100:80/bha-api/video.cgi?http-user=username&http-password=password",
+ "maxStreams": 2,
+ "maxWidth": 640,
+ "maxHeight": 480,
+ "maxFPS": 3
+ }
+ }]
+}
+```
diff --git a/_configs/Doorbird-Video-Doorbell-Full.md b/_configs/Doorbird-Video-Doorbell-Full.md
new file mode 100644
index 00000000..3c1c968a
--- /dev/null
+++ b/_configs/Doorbird-Video-Doorbell-Full.md
@@ -0,0 +1,26 @@
+---
+title: Doorbird Video Doorbell
+comment: Full
+author: hjdhjd
+date: 2017-04-09
+---
+This is a more complete set of settings for the Doorbird Video Doorbell based on the latest API and specs. The Doorbird video camera is 720p, capable of up to 15fps. Doorbird supports at most one live connection at a time currently. These settings use RTSP for speed / efficiency, but you can switch to HTTP if you prefer, though I wouldn't expect most people to want / need to. RTSP tends to be the standard for IP cameras. I would recommend looking at the [homebridge-doorbird plugin](https://github.com/brownad/homebridge-doorbird) as well to enable HomeKit doorbell integration on your Doorbird.
+
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Doorbird Camera",
+ "videoConfig": {
+ "source": "-re -i rtsp://:@:554/mpeg/media.amp",
+ "stillImageSource": "-i http://:@/bha-api/image.cgi",
+ "maxStreams": 1,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 15
+ }
+ }]
+}
+```
diff --git a/_configs/ESP32-Cam-Module.md b/_configs/ESP32-Cam-Module.md
new file mode 100644
index 00000000..3a9b2117
--- /dev/null
+++ b/_configs/ESP32-Cam-Module.md
@@ -0,0 +1,32 @@
+---
+title: ESP32-Cam Module
+author: odx
+date: 2019-12-22
+---
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "ESP32-Cam",
+ "manufacturer": "espressif",
+ "model": "ESP32-Cam",
+ "serialNumber": "XXXXXXXXX",
+ "videoConfig": {
+ "source": "-re -f mjpeg -i http://XXX.XXX.XXX.XXX:81/stream",
+ "stillImageSource": "-f mjpeg -i http://XXX.XXX.XXX.XXX/capture",
+ "maxStreams": 2,
+ "maxWidth": 1600,
+ "maxHeight": 1200,
+ "maxFPS": 25
+ }
+ }]
+}
+```
+
+### Notes
+
+Replace XXX.XXX.XXX.XXX, etc with your values.
+This is the config for the ESP32-Cam "CameraWebServer" example provided by espressif. Setup your Arduino IDE accordingly:
+You will just add your Wifi SSID and select camera model in the source code.
diff --git a/_configs/EZVIZ-C1C-720P.md b/_configs/EZVIZ-C1C-720P.md
new file mode 100644
index 00000000..253d5b87
--- /dev/null
+++ b/_configs/EZVIZ-C1C-720P.md
@@ -0,0 +1,28 @@
+---
+title: EZVIZ C1C 720P
+author: Alberto Mengoli
+date: 2020-06-22
+---
+[Product Page](https://www.ezvizlife.com/uk/product/mini-plus/916)
+
+Everithing just said about the Ezviz mini plus model is true for the C1C but with a 1280x720 pixel resolution.
+
+Camera password is the 6 character verification code printed on the back of each camera, too. Sorry, I haven't found a StillImageSource valid string yet
+
+### config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "CAMERA NAME",
+ "videoConfig": {
+ "source": "-re -i rtsp://admin:password@nn.nn.nn.nn:554/h264_stream",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "vcodec": "h264_omx"
+ }
+ }]
+}
+```
diff --git a/_configs/EZVIZ-C8T-C8C.md b/_configs/EZVIZ-C8T-C8C.md
new file mode 100644
index 00000000..a8189660
--- /dev/null
+++ b/_configs/EZVIZ-C8T-C8C.md
@@ -0,0 +1,33 @@
+---
+title: EZVIZ C8T / C8C
+author: nevada_scout
+date: 2022-03-12
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "EZVIZ Camera",
+ "manufacturer": "EZVIZ",
+ "model": "C8C",
+ "serialNumber": "XXXXXXXXX",
+ "unbridge": true,
+ "videoConfig": {
+ "source": "-i rtsp://user@pwd@192.x.x.x/Streaming/Channels/1/",
+ "stillImageSource": "-i rtsp://user@pwd@192.x.x.x/Streaming/Channels/1/picture",
+ "maxWidth": 1920,
+ "maxHeight": 1080,
+ "maxFPS": 25,
+ "maxBitrate": 1024,
+ "vcodec": "h264_omx",
+ "packetSize": 188,
+ "videoFilter": "none"
+ }
+}
+```
+
+**Additional Information**
+
+Configuration on Raspberry Pi 4B
+
+The box for the camera says "C8T" but in the app it says that the model is "C8C Lite".
diff --git a/_configs/EZVIZ-Mini-Plus.md b/_configs/EZVIZ-Mini-Plus.md
new file mode 100644
index 00000000..161cf024
--- /dev/null
+++ b/_configs/EZVIZ-Mini-Plus.md
@@ -0,0 +1,33 @@
+---
+title: EZVIZ Mini Plus
+author: TheRealGreatOldOne
+date: 2018-09-30
+---
+[Product Page](https://www.ezvizlife.com/uk/product/mini-plus/916)
+
+Great little cams - small, unobtrusive with good pic and great low light / IR capability. Not expensive either. Oh and 5Ghz wifi compatible. Add the cameras in the EZVIZ application downloaded from the app store, so that you can register them on them on your network, and change any settings required. Untick any cloud trials etc etc.
+
+Camera password is the 6 character verification code printed on the back of each camera.
+
+### config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "YOUR CAMERA NAME",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -vcodec h264_mmal -i rtsp://admin:password@nn.nn.nn.nn/Streaming/Channels/1",
+ "stillImageSource": "-i rtsp://admin:password@nn.nn.nn.nn/Streaming/Channels/1/picture",
+ "maxStreams": 2,
+ "maxWidth": 1920,
+ "maxHeight": 1080,
+ "maxBitrate": 500,
+ "vcodec": "h264_omx",
+ "maxFPS": 15,
+ "audio": true,
+ "packetSize": 564
+ }
+ }]
+}
+```
diff --git a/_configs/EzViz-C3-Husky.md b/_configs/EzViz-C3-Husky.md
new file mode 100644
index 00000000..1b37ac63
--- /dev/null
+++ b/_configs/EzViz-C3-Husky.md
@@ -0,0 +1,28 @@
+---
+title: EzViz C3 Husky
+comment: settings also work for the CTQ3W
+author: Careless 2000
+date: 2020-09-30
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Camera",
+ "videoConfig": {
+ "source": "-vcodec h264 -i rtsp://admin:******@192.x.x.x/Streaming/Channels/1",
+ "stillImageSource": "-i rtsp://admin:*****@192.x.x.x/Streaming/Channels/1/picture",
+ "vcodec": "copy",
+ "audio": true,
+ "maxFPS": 30,
+ "maxWidth": 1920,
+ "maxHeight": 1080,
+ "videoFilter": "none",
+ "maxBitrate": 1024,
+ "packetSize": 188,
+ "maxStreams": 2,
+ "additionalCommandline": "-x264-params intra-refresh=1:bframes=0 -loglevel verbose",
+ "debug": true
+ }
+}
+```
diff --git a/_configs/EzViz-C3X.md b/_configs/EzViz-C3X.md
new file mode 100644
index 00000000..587d4555
--- /dev/null
+++ b/_configs/EzViz-C3X.md
@@ -0,0 +1,35 @@
+---
+title: EzViz C3X
+author: BEskandari
+date: 2021-06-18
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Camera",
+ "manufacturer": "EZVIZ",
+ "model": "C3X",
+ "serialNumber": "XXXXXXX",
+ "firmwareRevision": "5.2.5 build 210511",
+ "unbridge": true,
+ "videoConfig": {
+ "source": "-i rtsp://user:pwd@192.x.x.x/Streaming/Channels/2",
+ "stillImageSource": "-i rtsp://user:pwd@192.x.x.x/Streaming/Channels/2/picture",
+ "maxStreams": 2,
+ "maxWidth": 1920,
+ "maxHeight": 1080,
+ "maxFPS": 25,
+ "maxBitrate": 1024,
+ "packetSize": 188,
+ "vcodec": "h264_omx",
+ "videoFilter": "none",
+ "audio": true,
+ "debug": false
+ }
+}
+```
+
+**Additional Information**
+
+Configuration on Raspberry Pi 4
diff --git a/_configs/Flashforge-Adventurer-3.md b/_configs/Flashforge-Adventurer-3.md
new file mode 100644
index 00000000..7884cc60
--- /dev/null
+++ b/_configs/Flashforge-Adventurer-3.md
@@ -0,0 +1,28 @@
+---
+title: Flashforge Adventurer 3
+author: Dan Parker
+date: 2021-03-08
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Adventurer 3",
+ "manufacturer": "Flashforge",
+ "model": "Adventurer 3",
+ "serialNumber": "1234567890AB",
+ "firmwareRevision": "1.2.3",
+ "videoConfig": {
+ "source": "-f mjpeg -i http://example.com:8080/?action=stream",
+ "stillImageSource": "-f mjpeg -i http://example.com:8080/?action=stream -vframes 1 -r 1",
+ "maxWidth": 0,
+ "maxHeight": 0,
+ "maxFPS": 0,
+ "debug": false
+ }
+}
+```
+
+**Additional Information**
+
+Likely the same for other Flashforge models with cameras.
diff --git a/_configs/Foscam-DBW5.md b/_configs/Foscam-DBW5.md
new file mode 100644
index 00000000..5b6e0471
--- /dev/null
+++ b/_configs/Foscam-DBW5.md
@@ -0,0 +1,42 @@
+---
+title: Foscam DBW5
+author: Wohltemperirte Tapir
+date: 2022-01-28
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "your-cam-name",
+ "manufacturer": "Foscam",
+ "model": "DBW5",
+ "firmwareRevision": "2.0.2.30",
+ "doorbell": true,
+ "switches": true,
+ "unbridge": true,
+ "videoConfig": {
+ "source": "-fflags nobuffer -flags low_delay -fflags discardcorrupt -analyzeduration 0 -probesize 2000 -rtsp_transport tcp -i rtsp://changeme-username:changeme-password@changeme-ipaddr:changeme-port/videoMain",
+ "stillImageSource": "-i http://changeme-username:changeme-password@changeme-ipaddr:changeme-port/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=changeme-username&pwd=changeme-password",
+ "maxStreams": 2,
+ "maxWidth": 1920,
+ "maxHeight": 1080,
+ "maxFPS": 30,
+ "maxBitrate": 300,
+ "packetSize": 1316,
+ "audio": true,
+ "debug": false
+ }
+}
+```
+
+**Additional Information**
+
+No two-way audio. Provides video/audio feed from the camera, plus "ring button pressed" alerts with cam shot.
+
+For the ring button to work, you need to:
+
+1. Specify "porthttp" in your Camera-ffmpeg configuratiomn
+install Foscam VMS (can't do it from the mobile app), go to your doorbell cam configuration >> settings >> device settings >> detector >> alarm linkage.
+
+2. Insert the following line:
+http://:/doorbell?
diff --git a/_configs/Foscam-FI8910W.md b/_configs/Foscam-FI8910W.md
new file mode 100644
index 00000000..08b5222d
--- /dev/null
+++ b/_configs/Foscam-FI8910W.md
@@ -0,0 +1,23 @@
+---
+title: Foscam FI8910W
+author: mishakim
+date: 2018-01-20
+---
+Streaming via http
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Camera",
+ "videoConfig": {
+ "source": "-re -i http://user:pass@10.0.1.131:8090/videostream.asf?user=user&pwd=pass&resolution=320x240",
+ "stillImageSource": "-i http://user:pass@10.0.1.131:8090/snapshot.jpg?user=user&pwd=pass&strm=0",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 30
+ }
+ }]
+}
+```
diff --git a/_configs/Foscam-FI9900EP-FI9826P.md b/_configs/Foscam-FI9900EP-FI9826P.md
new file mode 100644
index 00000000..e1b97227
--- /dev/null
+++ b/_configs/Foscam-FI9900EP-FI9826P.md
@@ -0,0 +1,38 @@
+---
+title: Foscam FI9900EP / FI9826P
+author: Veldkornet
+date: 2018-03-29
+---
+Working through RTSP on RaspberryPi
+
+
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Camera",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -re -i rtsp://username:password@XXX.XXX.XXX.XXX:port/videoSub",
+ "stillImageSource": "-i http://username:password@XXX.XXX.XXX.XXX:port/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=username&pwd=password",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 10,
+ "maxBitrate": 300,
+ "vcodec": "h264_omx",
+ "audio": false,
+ "packetSize": 1316,
+ "debug": false
+ }
+ }]
+}
+```
+
+### Notes:
+
+- Replace XXX.XXX.XXX.XXX:port with the IP Address and port, ie: 192.168.0.10:88
+- For the source, use either “videoSub” or “videoMain” to select the sub or main stream
+- Runs smoothly on a RaspberryPi 2 Model B or RaspberryPi 3 Model B+, with the MPEG-omx codec enabled
+- Without the “-rtsp_transport tcp”, the live feed stutters, **so make sure it’s added**
diff --git a/_configs/Foscam-FosBaby.md b/_configs/Foscam-FosBaby.md
new file mode 100644
index 00000000..e172f73b
--- /dev/null
+++ b/_configs/Foscam-FosBaby.md
@@ -0,0 +1,26 @@
+---
+title: Foscam FosBaby
+author: shortstop-20
+date: 2021-02-17
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Cam1",
+ "manufacturer": "FOSCAM",
+ "model": "FOSBABY",
+ "firmwareRevision": "2.22.2.21_p2",
+ "motion": true,
+ "unbridge": false,
+ "videoConfig": {
+ "source": "-i rtsp://username:password@10.0.1.9:88/videoMain",
+ "maxBitrate": 1000,
+ "audio": true
+ }
+}
+```
+
+**Additional Information**
+
+
diff --git a/_configs/Foscam-IQ200.md b/_configs/Foscam-IQ200.md
new file mode 100644
index 00000000..a99c2116
--- /dev/null
+++ b/_configs/Foscam-IQ200.md
@@ -0,0 +1,25 @@
+---
+title: Foscam IQ200
+author: redelva
+date: 2017-03-23
+---
+Working through RTSP
+
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Camera",
+ "videoConfig": {
+ "source": "-re -i rtsp://username:password@192.168.31.51:88/videoMain",
+ "stillImageSource": "-i http://username:password@192.168.31.51:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=username&pwd=password&",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 30
+ }
+ }]
+}
+```
diff --git a/_configs/Foscam-R2.md b/_configs/Foscam-R2.md
new file mode 100644
index 00000000..1e91ff69
--- /dev/null
+++ b/_configs/Foscam-R2.md
@@ -0,0 +1,23 @@
+---
+title: Foscam R2
+author: mishakim
+date: 2018-01-20
+---
+Working through RTSP
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Camera",
+ "videoConfig": {
+ "source": "-re -i rtsp://user:pass@10.0.1.132:47082/videoMain",
+ "stillImageSource": "-i http://10.0.1.132:47082/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=user&pwd=pass&",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 30
+ }
+ }]
+}
+```
diff --git a/_configs/Foscam-R2C.md b/_configs/Foscam-R2C.md
new file mode 100644
index 00000000..621d26df
--- /dev/null
+++ b/_configs/Foscam-R2C.md
@@ -0,0 +1,39 @@
+---
+title: Foscam R2C
+author: shalmi
+date: 2021-08-23
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Garage",
+ "unbridge": false,
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -re -i rtsp://USERNAME:PASSWORD@10.0.0.104:88/videoSub",
+ "maxBitrate": 1000,
+ "audio": true,
+ "stillImageSource": "-i http://10.0.0.104:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=USERNAME&pwd=PASSWORD&",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 30
+ }
+}
+```
+
+**Additional Information**
+
+I chose the sub stream. I VERY much doubt that matters. what does matter is the stream settings. On the camera itself, I set the settings for substream to:
+
+```
+Stream Type: User Defined
+Resolution: VGA(640x480)
+Bit Rate: 512k
+Frame Rate: 15
+Key Frame Interval: 10
+```
+
+Those settings are IMPORTANT and are what made this work. I used the app "Foscam VMS" to set those settings on the camera
+
+Obviously you should change out USERNAME for your username to the cam and PASSWORD for your PASSWORD, as well as changing the ip and port if need be.
diff --git a/_configs/G.Craftsman-5Mp-H.265.md b/_configs/G.Craftsman-5Mp-H.265.md
new file mode 100644
index 00000000..4185bcfe
--- /dev/null
+++ b/_configs/G.Craftsman-5Mp-H.265.md
@@ -0,0 +1,24 @@
+---
+title: G.Craftsman 5Mp H.265
+author: DobriyVasia
+date: 2021-01-16
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Калитка",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -i rtsp://admin:12345@192.168.0.144:554/ch01.264?dev=1/live",
+ "stillImageSource": "-rtsp_transport tcp -i rtsp://admin:12345@192.168.0.144:554/ch01.264?dev=1/live -vframes 1 -r 1",
+ "vcodec": "copy",
+ "maxStreams": 2,
+ "motion": true,
+ "maxWidth": 2560,
+ "maxHeight": 1920,
+ "maxFPS": 15,
+ "audio": true,
+ "additionalCommandline": "-protocol_whitelist https,crypto,srtp,rtp,udp"
+ }
+}
+```
diff --git a/_configs/H.View-HV-E800A.md b/_configs/H.View-HV-E800A.md
new file mode 100644
index 00000000..36c50c39
--- /dev/null
+++ b/_configs/H.View-HV-E800A.md
@@ -0,0 +1,22 @@
+---
+title: H.View HV-E800A
+author: MA72E
+date: 2021-12-11
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "name",
+ "serialNumber": "original serialNumber",
+ "firmwareRevision": "IPCAM_V4.04.40.210303",
+ "motion": true,
+ "unbridge": true,
+ "videoConfig": {
+ "source": "-i rtsp://user:password@ipadress:554/live/main",
+ "maxWidth": 800,
+ "maxHeight": 600,
+ "maxFPS": 25
+ }
+}
+```
diff --git a/_configs/Hikam-S5.md b/_configs/Hikam-S5.md
new file mode 100644
index 00000000..820c0478
--- /dev/null
+++ b/_configs/Hikam-S5.md
@@ -0,0 +1,10 @@
+---
+title: Hikam S5
+comment: + Raspberry Pi2
+author: Normen Hansen
+date: 2018-03-02
+---
+- using homebridge-camera-ffmpeg-omx from legotheboss
+- removed "-tune zerolatency" from ffmpeg.js (invalid option for my installation)
+- low res "rtsp://xxx.xxx.xxx.xxx/onvif2" stream works fine w/ moderate cpu load
+- high res "rtsp://xxx.xxx.xxx.xxx/onvif1" stream works w/ cpu load of 150%
\ No newline at end of file
diff --git a/_configs/Hikvision-DS-2CD2423G0-IW.md b/_configs/Hikvision-DS-2CD2423G0-IW.md
new file mode 100644
index 00000000..f74e6f12
--- /dev/null
+++ b/_configs/Hikvision-DS-2CD2423G0-IW.md
@@ -0,0 +1,28 @@
+---
+title: Hikvision DS-2CD2423G0-IW
+author: guzi2007
+date: 2021-07-19
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Camera IP",
+ "model": "DS-2CD2423G0-IW",
+ "serialNumber": "XXX:YYY",
+ "firmwareRevision": "V5.5.83 build 190221",
+ "unbridge": true,
+ "videoConfig": {
+ "source": "-i rtsp://username:password@ipaddress:554",
+ "maxStreams": 2,
+ "maxWidth": 800,
+ "maxHeight": 600,
+ "maxFPS": 25,
+ "audio": true
+ }
+}
+```
+
+**Additional Information**
+
+If maxWidth or maxHeight is set for more than 800 and 600 respectively or not set at all, the camera does not show the live view.
diff --git a/_configs/Hikvision-DS-2CD2542FWD-I.md b/_configs/Hikvision-DS-2CD2542FWD-I.md
new file mode 100644
index 00000000..0fbea03e
--- /dev/null
+++ b/_configs/Hikvision-DS-2CD2542FWD-I.md
@@ -0,0 +1,19 @@
+---
+title: Hikvision DS-2CD2542FWD-I
+author: Albilia
+date: 2021-09-09
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Hikvision",
+ "model": "DS-2CD2542FWD-I",
+ "serialNumber": "DS-2CD2542FWD-I20180319BBWRC10320726",
+ "firmwareRevision": "V5.5.5 build 180111",
+ "unbridge": false,
+ "videoConfig": {
+ "source": "-i rtsp://admin:hvi12345@192.168.1.188:554"
+ }
+}
+```
diff --git a/_configs/Hikvision-DS-2CD2T22WD-I5-and-DS-2CD2322WD-I.md b/_configs/Hikvision-DS-2CD2T22WD-I5-and-DS-2CD2322WD-I.md
new file mode 100644
index 00000000..14c34195
--- /dev/null
+++ b/_configs/Hikvision-DS-2CD2T22WD-I5-and-DS-2CD2322WD-I.md
@@ -0,0 +1,20 @@
+---
+title: Hikvision DS-2CD2T22WD-I5 and DS-2CD2322WD-I
+comment: firmware V5.5.82 build 190909
+author: r8plicant
+date: 2020-12-25
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Camera Front Door",
+ "videoConfig": {
+ "source": "-i rtsp://user:password@192.168.0.2/ISAPI/Streaming/channels/101/HighResolutionVideo"
+ }
+}
+```
+
+**Additional Information**
+
+There are other APIs that work as well, such as rtsp://user:password@192.168.0.2/ISAPI/Streaming/channels/101/ for example, but I found this work to work best for me.
diff --git a/_configs/IP-Webcam-App.md b/_configs/IP-Webcam-App.md
new file mode 100644
index 00000000..d7abae14
--- /dev/null
+++ b/_configs/IP-Webcam-App.md
@@ -0,0 +1,26 @@
+---
+title: IP Webcam App
+comment: by Pavel Khlebovich
+author: Bernd Gewehr
+date: 2019-11-15
+---
+Working through http
+
+## config.json
+
+```json
+{
+ "name": "Bedroom",
+ "videoConfig": {
+ "source": "-re -i http://src/video -i http://src/audio.opus",
+ "stillImageSource": "-i http://src/shot.jpg",
+ "maxStreams": 2,
+ "maxWidth": 640,
+ "maxHeight": 480,
+ "maxFPS": 30,
+ "audio": true,
+ "mapvideo": "0",
+ "mapaudio": "1"
+ }
+}
+```
diff --git a/_configs/IP-Webcam.md b/_configs/IP-Webcam.md
new file mode 100644
index 00000000..39d5669e
--- /dev/null
+++ b/_configs/IP-Webcam.md
@@ -0,0 +1,32 @@
+---
+title: IP Webcam
+comment: running on an older Samsung Smartphone and Raspberry PI 2 (Jessie)
+author: NorthernMan54
+date: 2017-02-05
+---
+To resolve playback issues I had to use the OMX fork to get the PI 2 and FFMPEG to work more or less reliably.
+
+
+## Camera Settings
+
+ Video Resolution: 1920x1080
+ Photo Resolution: 2048x1152
+
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Front Porch Camera",
+ "videoConfig": {
+ "source": "-f mjpeg -i http://alice:8080/video",
+ "stillImageSource": "-i http://alice:8080/shot.jpg",
+ "maxStreams": 2,
+ "maxWidth": 1920,
+ "maxHeight": 1080,
+ "maxFPS": 30
+ }
+ }]
+}
+```
diff --git a/_configs/IeGeek-IP-camera.md b/_configs/IeGeek-IP-camera.md
new file mode 100644
index 00000000..c7588826
--- /dev/null
+++ b/_configs/IeGeek-IP-camera.md
@@ -0,0 +1,27 @@
+---
+title: IeGeek IP camera
+comment: with Raspberry Pi 3 Model B
+author: mach1009
+date: 2017-12-26
+---
+You can also use "rtsp://ip-address/11" for HQ-Stream.
+
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Camera",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -re -i rtsp://ip-address/12",
+ "stillImageSource": "-i http://username:password@ip-address/tmpfs/auto.jpg",
+ "maxStreams": 2,
+ "maxWidth": 640,
+ "maxHeight": 352,
+ "maxFPS": 5,
+ "vcodec": "h264_omx"
+ }
+ }]
+}
+```
diff --git a/_configs/Instar-IN-9008.md b/_configs/Instar-IN-9008.md
new file mode 100644
index 00000000..65fad4e0
--- /dev/null
+++ b/_configs/Instar-IN-9008.md
@@ -0,0 +1,45 @@
+---
+title: Instar IN-9008
+author: cnbhl
+date: 2021-01-27
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "camera name",
+ "manufacturer": "Instar",
+ "model": "IN-9008 Full HD",
+ "videoConfig": {
+ "source": "-i rtsp://user:password@ddnsadress:554/11",
+ "stillImageSource": "https://user:password@ddnsadress:8081/tmpfs/snap.jpg",
+ "maxFPS": 25
+ }
+}
+```
+
+**Additional Information**
+
+[Manufacturer](https://www.instar.com/)
+
+See also:
+
+`user`: the user set during camera setup (I assume to use the guest user)
+`password`: the password for the user set during camera setup
+
+
+
+`ddnsadress`: DDNS adress (default provided by INSTAR via their DDNS service something like _abcd12.ddns3-instar.de_)
+`554`: the port set for RTSP inside the camera (ensure port forwarding)
+`8081`: the port set for HTTPS inside the camera (ensure port forwarding)
+
+
+
+`/11`: stream quality, values {/11,/12,/13} (/11 = 1080p)
+
+**Alternate MJPEG-Stream**
+
+An additional MJPEG Stream is also provided by the camera:
+
+http://ddnsadress:80/cgi-bin/hi3510/mjpegstream.cgi?-chn=11&-usr=user&-pwd=password
+_(not tested)_
diff --git a/_configs/Insteon-2864-2xx.md b/_configs/Insteon-2864-2xx.md
new file mode 100644
index 00000000..14be96a5
--- /dev/null
+++ b/_configs/Insteon-2864-2xx.md
@@ -0,0 +1,38 @@
+---
+title: Insteon 2864-2xx
+comment: older firmware
+author: Steve Jensen
+date: 2021-01-10
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Laundry Camera",
+ "manufacturer": "Insteon",
+ "model": "2864-222",
+ "firmwareRevision": "2.11.1",
+ "motion": false,
+ "videoConfig": {
+ "source": "-i http://USER:PASS@CAMERA_IP/cgi-bin/CGIStream.cgi?cmd=GetMJStream&usr=USER&pwd=PASS",
+ "stillImageSource": "-i http://CAMERA_IP/cgi-bin/CGIProxy.fcgi?usr=USER&pwd=PASS&cmd=snapPicture2",
+ "maxStreams": 1,
+ "maxWidth": 640,
+ "maxHeight": 480,
+ "maxFPS": 15,
+ "forceMax": true,
+ "audio": false
+ }
+}
+```
+
+**Additional Information**
+
+Insteon uses Foscam but has their own software loads. Certain camera hardware revisions cannot run their latest software and do not have RTSP support, none of the URL's on iSpyConnect work with the older firmware. So the only option with these very old cameras is to use the GetMJStream command. You can still use the Insteon App to pan and tilt the camera as needed. If you have newest firmware, you should be be able to use the URLs on iSpyConnect ( /videoStream.fcgi or RTSP)
+
+You likely will have set the stream format to 1 (MJPEG), at least that's the only way I could get it work properly:
+
+`curl "http://USER:PASS@CAMERA_IP/cgi-bin/CGIProxy.fcgi?cmd=setSubStreamFormat&format=1&usr=USER&pwd=PASS"`
+
+If you want to tinker directly with the Camera via API, see:
+
diff --git a/_configs/Intelbras-im3.md b/_configs/Intelbras-im3.md
new file mode 100644
index 00000000..d8326a8c
--- /dev/null
+++ b/_configs/Intelbras-im3.md
@@ -0,0 +1,33 @@
+---
+title: Intelbras im3
+author: pedroxns
+date: 2020-11-17
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Babá Eletrônica",
+ "manufacturer": "Intelbras",
+ "model": "im3",
+ "serialNumber": "a1b2c3",
+ "firmwareRevision": "fw123",
+ "doorbell": false,
+ "unbridge": true,
+ "videoConfig": {
+ "source": "-i rtsp://admin::554/cam/realmonitor?channel=1&subtype=0",
+ "stillImageSource": "-i rtsp://admin::554/cam/realmonitor?channel=1&subtype=0",
+ "maxStreams": 4,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 30,
+ "maxBitrate": 9001,
+ "minBitrate": 9000,
+ "audio": true
+ }
+}
+```
+
+**Additional Information**
+
+Intelbras is a Brazilian security system manufacturer, some cameras has RTSP access after enabling ONFIV protocol over the camera app settings.
diff --git a/_configs/Jawa-Z_22047.md b/_configs/Jawa-Z_22047.md
new file mode 100644
index 00000000..fb04a10a
--- /dev/null
+++ b/_configs/Jawa-Z_22047.md
@@ -0,0 +1,25 @@
+---
+title: Jawa Z_22047
+author: cj-debug
+date: 2020-12-26
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Camera Name",
+ "manufacturer": "Jawa",
+ "model": "Z_22047",
+ "firmwareRevision": "1.70",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -i rtsp://admin:password@ipaddress:2600/",
+ "stillImageSource": "-rtsp_transport tcp rtsp://admin:password@ipaddress:2600.jpg",
+ "maxStreams": 3,
+ "maxWidth": 1920,
+ "maxHeight": 1080,
+ "vcodec": "libx264",
+ "audio": true,
+ "debug": false
+ }
+}
+```
diff --git a/_configs/LaView-LV-PTK66802.md b/_configs/LaView-LV-PTK66802.md
new file mode 100644
index 00000000..a529e062
--- /dev/null
+++ b/_configs/LaView-LV-PTK66802.md
@@ -0,0 +1,33 @@
+---
+title: LaView LV-PTK66802
+comment: rebranded Hikvision
+author: afewremarks
+date: 2020-08-16
+---
+## Homebridge Config
+
+```json
+{
+ "name": "Camera1",
+ "manufacturer": "LaView",
+ "model": "LV-PTK66802",
+ "serialNumber": "123456789",
+ "firmwareRevision": "V5.4.0 build 160811",
+ "motion": true,
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -re -i rtsp://user:password@1.1.1.1/Streaming/Channels/2",
+ "stillImageSource": "-i https://user:password@1.1.1.1/streaming/channels/1/picture",
+ "maxStreams": 2,
+ "maxWidth": 640,
+ "maxHeight": 480,
+ "maxFPS": 20,
+ "vcodec": "copy"
+ }
+}
+```
+
+## Additional Information
+
+Note 1: I am using the substream "Channels/2" vs main stream which is "Channels/1" since I have my main stream outputting h265. This is also why the frame size is low
+
+Note 2: if you end up using the smtp-motion you have to give your camera a name without a space. The config on the camera wont support + in the to address.
diff --git a/_configs/Logitech-C270-webcam.md b/_configs/Logitech-C270-webcam.md
new file mode 100644
index 00000000..90c5d5d3
--- /dev/null
+++ b/_configs/Logitech-C270-webcam.md
@@ -0,0 +1,29 @@
+---
+title: Logitech C270 webcam
+author: CodingDog
+date: 2020-09-27
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "C270",
+ "manufacturer": "Logitech",
+ "model": "C270",
+ "videoConfig": {
+ "source": "-re -r 30 -s 1280x720 -f video4linux2 -i /dev/video0",
+ "stillImageSource": "-s 1280x720 -f video4linux2 -i /dev/video0",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "vcodec": "h264_omx",
+ "packetSize": 188,
+ "audio": false,
+ "debug": false
+ }
+}
+```
+
+**Additional Information**
+
+I tested all of the Logitech configurations and none of them would work except when combining it with the source from the raspberry pi cam v2, maybe mine's just finicky.
diff --git a/_configs/Logitech-C525-USB-camera.md b/_configs/Logitech-C525-USB-camera.md
new file mode 100644
index 00000000..27409641
--- /dev/null
+++ b/_configs/Logitech-C525-USB-camera.md
@@ -0,0 +1,29 @@
+---
+title: Logitech C525 USB camera
+comment: and Raspberry Pi 3
+author: Miquel Sanz Alcántara
+date: 2019-12-08
+---
+This configuration works with synchronized video/audio:
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Logitech-C525",
+ "videoConfig": {
+ "source": "-f alsa -ac 1 -ar 44100 -thread_queue_size 2048 -i plughw:CARD=C525,DEV=0 -re -f video4linux2 -i /dev/video0 -vsync 0 -af aresample=async=1",
+ "stillImageSource": "-s 1280x720 -f video4linux2 -i /dev/video0",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 30,
+ "audio": true,
+ "debug": true,
+ "packetSize": 188,
+ "mapvideo": "1",
+ "mapaudio": "0"
+ }
+ }]
+}
+```
diff --git a/_configs/Logitech-HD-Pro-Webcam-C920-2.md b/_configs/Logitech-HD-Pro-Webcam-C920-2.md
new file mode 100644
index 00000000..dc8da78f
--- /dev/null
+++ b/_configs/Logitech-HD-Pro-Webcam-C920-2.md
@@ -0,0 +1,44 @@
+---
+title: Logitech HD Pro Webcam C920
+comment: w/ Raspberry Pi
+author: Manuel Gottstein
+date: 2018-12-19
+---
+I set up a Rpi1 with the camera and stream using [v4l2rtspserver](https://github.com/mpromonet/v4l2rtspserver).
+Install a webserver (Apache / I use Lighttpd) and use this command to take a screenshot every 5 seconds from the stream for faster still image captures (also running on the pi1):
+
+`ffmpeg -f rtsp -vcodec h264_mmal -i rtsp://127.0.0.1:8555/unicast -vf fps=fps=1/5 -f image2 -update 1 /var/www/html/latest.jpg`
+
+Transcoding happens on a Rpi3. You might get everything to work on one Rpi3.
+Results in delay of about 50-200ms,
+Video takes ~10 Seconds to start streaming due to h264_mmal and h264_omx, hangs sometimes.
+
+With Audio:
+`v4l2rtspserver -c -Q 512 -s -F 0 -H 720 -W 1280 -I 0.0.0.0 -P 8555 -A 32000 -C 2 /dev/video0,plughw:CARD=C920`
+
+Video Only:
+`v4l2rtspserver -c -Q 512 -s -F 0 -H 720 -W 1280 -I 0.0.0.0 -P 8555 /dev/video0`
+
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "C920",
+ "videoConfig": {
+ "source": "-f rtsp -vcodec h264_mmal -i rtsp://rpi:8555/unicast",
+ "stillImageSource": "-i http://rpi/latest.jpg",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 30,
+ "maxBitrate": 300,
+ "vcodec": "h264_omx",
+ "audio": true,
+ "packetSize": 188,
+ "debug": false
+ }
+ }]
+}
+```
diff --git a/_configs/Logitech-HD-Pro-Webcam-C920.md b/_configs/Logitech-HD-Pro-Webcam-C920.md
new file mode 100644
index 00000000..34c3dbe9
--- /dev/null
+++ b/_configs/Logitech-HD-Pro-Webcam-C920.md
@@ -0,0 +1,28 @@
+---
+title: Logitech HD Pro Webcam C920
+author: cmlpreston
+date: 2018-03-08
+---
+macOS (High Sierra), ffmpeg compiled through macports. Demonstrates use of avfoundation stream. I had to limit the video stream size and frame rate otherwise ffmpeg throws an input/output error.
+
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "macCam",
+ "uploader": true,
+ "videoConfig": {
+ "source": "-re -f avfoundation -video_size 640x480 -framerate 30 -i 0",
+ "stillImageSource": "-re -f avfoundation -video_size 640x480 -framerate 30 -ss 0.9 -i 0 -vframes 1",
+ "maxStreams": 2,
+ "maxWidth": 640,
+ "maxHeight": 480,
+ "maxFPS": 30,
+ "vcodec": "h264",
+ "debug": true
+ }
+ }]
+}
+```
diff --git a/_configs/Lorex-LHV2008.md b/_configs/Lorex-LHV2008.md
new file mode 100644
index 00000000..9d415d84
--- /dev/null
+++ b/_configs/Lorex-LHV2008.md
@@ -0,0 +1,28 @@
+---
+title: Lorex LHV2008
+author: icdoo
+date: 2020-01-19
+---
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "name": "Camera ffmpeg",
+ "cameras": [{
+ "name": "CamName",
+ "videoConfig": {
+ "source": "-i rtsp://username:password@XXX.XXX.XXX.XXX:554/cam/realmonitor?channel=1&subtype=1",
+ "maxStreams": 2,
+ "maxWidth": 1080,
+ "maxHeight": 720,
+ "maxFPS": 15
+ }
+ }]
+}
+```
+
+### Notes
+
+Replace XXX.XXX.XXX.XXX, etc with your values.
+This is the config for the Lorex LHV2008.
diff --git a/_configs/Maygion-H264-IPCam.md b/_configs/Maygion-H264-IPCam.md
new file mode 100644
index 00000000..010f40ca
--- /dev/null
+++ b/_configs/Maygion-H264-IPCam.md
@@ -0,0 +1,27 @@
+---
+title: Maygion H264 IPCam
+comment: (Software Version H.264 6.40) with Raspberry Pi 3 Model B
+author: Marci
+date: 2018-01-28
+---
+MPEG Snapshot & RTSP Stream
+
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Maygion",
+ "videoConfig": {
+ "source": "-re -i rtsp://[USER]:[PASSWORD]@ip-address:81/videostream.cgi",
+ "stillImageSource": "-i http://ip-address:81/snapshot.cgi?user=[USER]&pwd=[PASSWORD]",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 16,
+ "vcodec": "h264_omx"
+ }
+ }]
+}
+```
diff --git a/_configs/Mobotix-M24.md b/_configs/Mobotix-M24.md
new file mode 100644
index 00000000..cc2c867b
--- /dev/null
+++ b/_configs/Mobotix-M24.md
@@ -0,0 +1,24 @@
+---
+title: Mobotix M24
+comment: with Raspberry Pi 3 Model B
+author: tiele004
+date: 2018-02-08
+---
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Mobotix M24",
+ "videoConfig": {
+ "source": "-f mxg -i http://user:password@192.168.100.100/control/faststream.jpg?stream=MxPEG",
+ "stillImageSource": "-i http://user:password@192.168.100.100/cgi-bin/image.jpg",
+ "maxStreams": 3,
+ "maxWidth": 1920,
+ "maxHeight": 1080,
+ "maxFPS": 30
+ }
+ }]
+}
+```
diff --git a/_configs/MotionEyeOS.md b/_configs/MotionEyeOS.md
new file mode 100644
index 00000000..fb44b212
--- /dev/null
+++ b/_configs/MotionEyeOS.md
@@ -0,0 +1,23 @@
+---
+title: MotionEyeOS
+author: Normen Hansen
+date: 2018-03-02
+---
+This config reads images from a remote computer (e.g. Raspberry Pi) running [MotionEyeOS](https://github.com/ccrisan/motioneyeos) with default settings, using an IP of 192.168.2.26. If you use MotionEyeOS' _fast network camera_ feature, then you need to change the stillImageSource to the appropriate URL.
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "MotionEyeOS",
+ "videoConfig": {
+ "source": "-re -f mjpeg -i http://192.168.2.26:8081",
+ "stillImageSource": "-f mjpeg -i http://192.168.2.26/picture/1/current/",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 800,
+ "maxFPS": 10
+ }
+ }]
+}
+```
diff --git a/_configs/Night-Owl-2.W.md b/_configs/Night-Owl-2.W.md
new file mode 100644
index 00000000..af0dc596
--- /dev/null
+++ b/_configs/Night-Owl-2.W.md
@@ -0,0 +1,28 @@
+---
+title: Night Owl 2.W
+comment: (WNVR201 Series)
+author: Luis Ramos
+date: 2021-10-01
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Front Door",
+ "manufacturer": "NightOwl SP",
+ "unbridge": true,
+ "videoConfig": {
+ "source": "-i http://[IP]:80/cgi-bin/sp.cgi?chn=[CHANNEL]&u=[USER]&p=[PASSWORD]",
+ "stillImageSource": "-i http://[USER]:[PASSWORD]@[IP]/cgi-bin/snapshot.cgi?chn=[CHANNEL]&u=[USER]&p=[PASSWORD]",
+ "maxStreams": 2,
+ "maxWidth": 1920,
+ "maxHeight": 1080,
+ "maxFPS": 0,
+ "audio": false
+ }
+}
+```
+
+**Additional Information**
+
+You can try setting the video codec to `h264_omx` but I've found the default `libx264` to be more reliable. Audio is not supported.
diff --git a/_configs/Pelco-cameras.md b/_configs/Pelco-cameras.md
new file mode 100644
index 00000000..96d664a8
--- /dev/null
+++ b/_configs/Pelco-cameras.md
@@ -0,0 +1,27 @@
+---
+title: Pelco cameras
+author: Klangen82
+date: 2017-03-25
+---
+Working through RTSP
+
+Pelco cameras have two streams `rtsp//camera-ip/stream1` and `rtsp//camera-ip/stream2` In my example below I use a Sarix Pro IBP519 and use the second stream from the camera. I have configured the stream to be 640x480 and 12ips but in the config.json you see that I use 30ips and this is that HomeBridge working this way. I took my second camera IME219 and to get the jpeg to work in this I needed to change the `stillImageSource` to be `-f mjpeg -i http://192.168.5.33/jpeg`
+
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Baksidan",
+ "videoConfig": {
+ "source": "-re -i rtsp://192.168.5.34/stream2",
+ "stillImageSource": "-i http://192.168.5.34/jpeg",
+ "maxStreams": 2,
+ "maxWidth": 640,
+ "maxHeight": 480,
+ "maxFPS": 30
+ }
+ }]
+}
+```
diff --git a/_configs/Pi-Camera-V2.md b/_configs/Pi-Camera-V2.md
new file mode 100644
index 00000000..99725fe9
--- /dev/null
+++ b/_configs/Pi-Camera-V2.md
@@ -0,0 +1,26 @@
+---
+title: Pi Camera V2
+author: LeJeko
+date: 2019-04-06
+---
+The dedicated [homebridge-rpi-camera](https://github.com/moritzmhmk/homebridge-camera-rpi) plugin makes the ffmpeg process crash for me.
+
+According to [this comment](https://github.com/KhaosT/homebridge-camera-ffmpeg/issues/93#issuecomment-314479017), this adapted config work smoothly.
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Pi Cam",
+ "videoConfig": {
+ "source": "-re -r 6 -s 1280x720 -f video4linux2 -i /dev/video0",
+ "stillImageSource": "-s 1280x720 -f video4linux2 -i /dev/video0",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 6,
+ "vcodec": "h264_omx"
+ }
+ }]
+}
+```
diff --git a/_configs/ROCAM-NC400HD.md b/_configs/ROCAM-NC400HD.md
new file mode 100644
index 00000000..14a34800
--- /dev/null
+++ b/_configs/ROCAM-NC400HD.md
@@ -0,0 +1,26 @@
+---
+title: ROCAM-NC400HD
+comment: with Raspberry Pi Model B 512Mb RAM - jessie
+author: BonRm
+date: 2017-03-31
+---
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Camera Rocam-NC400HD",
+ "videoConfig": {
+ "source": "-re -i http://IPADDRESS:PORT/videostream.cgi?loginuse=ADMIN&loginpas=PASSWORD",
+ "stillImageSource": "-i http://IPADDRESS:PORT/snapshot.cgi?user=ADMIN&pwd=PASSWORD",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 30
+ }
+ }]
+}
+```
+
+### Notes: Replace IPADDRESS:PORT, ADMIN, PASSWORD with your data
diff --git a/_configs/Raspberry-Pi-Camera-Module-V2.md b/_configs/Raspberry-Pi-Camera-Module-V2.md
new file mode 100644
index 00000000..78b7e651
--- /dev/null
+++ b/_configs/Raspberry-Pi-Camera-Module-V2.md
@@ -0,0 +1,32 @@
+---
+title: Raspberry Pi Camera Module V2
+comment: and Raspberry PI Zero W (Jessie)
+author: XavM
+date: 2017-08-17
+---
+I had to build ffmpeg with "--enable-libx264" to be able to use the "-tune zerolatency" from ffmpeg.js, and with "--enable-omx" and "--enable-omx-rpi" to use the GPU encoding
+
+I had to remove from the homebridge-camera-ffmpeg code (ffmpeg.js) the resolution and scale for stillImage and videoStream to switch back to GPU encoding, and I now get a decent 10~20 FPS with pretty good video quality and ffmpeg using ~12% CPU on the pi zero
+
+Still image sometimes don't refresh in homekit App : Need to reboot the iPhone to get it back ...
+
+## config.json (credits [@GeorgViehoever ](https://github.com/KhaosT/homebridge-camera-ffmpeg/issues/22))
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "piCam",
+ "uploader": false,
+ "videoConfig": {
+ "source": "-re -f video4linux2 -i /dev/video0",
+ "stillImageSource": "-re -f video4linux2 -ss 0.9 -i /dev/video0 -vframes 1",
+ "maxStreams": 2,
+ "maxWidth": 1920,
+ "maxHeight": 1080,
+ "maxFPS": 30,
+ "vcodec": "h264_omx"
+ }
+ }]
+}
+```
diff --git a/_configs/Raspberry-Pi-Camera-Module-v2-with-Restreamer.md b/_configs/Raspberry-Pi-Camera-Module-v2-with-Restreamer.md
new file mode 100644
index 00000000..f98507cb
--- /dev/null
+++ b/_configs/Raspberry-Pi-Camera-Module-v2-with-Restreamer.md
@@ -0,0 +1,66 @@
+---
+title: Raspberry Pi Camera Module v2 with Restreamer
+author: Fabian Leutgeb
+date: 2020-12-07
+---
+- [Raspberry Pi Camera Module v2](https://www.raspberrypi.org/products/camera-module-v2/)
+- [Raspberry Pi 4 Model B 2GB RAM](https://www.raspberrypi.org/products/raspberry-pi-4-model-b/)
+- [Raspberry Pi OS Lite](https://www.raspberrypi.org/software/operating-systems/) (Debian Buster)
+
+**Homebridge Config**
+
+Change `` to the value set for Restreamer in the `docker-compose` config below
+
+```json
+{
+ "name": "Camera",
+ "videoConfig": {
+ "source": "-re -i http://10.0.0.4:/hls/live.stream.m3u8",
+ "stillImageSource": "-i http://10.0.0.4:/images/live.jpg",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 25,
+ "maxBitrate": 300,
+ "packetSize": 1316,
+ "vcodec": "copy",
+ "videoFilter": "none",
+ "audio": false
+ }
+}
+```
+
+**Additional Information**
+
+- Docker is required for this setup (see [this guide](https://dev.to/rohansawant/installing-docker-and-docker-compose-on-the-raspberry-pi-in-5-simple-steps-3mgl))
+
+- I was using [Restreamer](https://datarhei.github.io/restreamer/docs/guides-raspicam.html) to provide a `rtmp` stream from the camera ([w/o re-encoding it](https://datarhei.github.io/restreamer/docs/guides-encoding.html)) with almost no setup or configuration needed
+
+- Setting `vcodec` `copy` also in Homebridge was keeping CPU usage very low (at around 10%), as it was not re-encoding the already h264 encoded stream
+
+- The video via Homebridge was choppy without the `-re` flag in `source`
+
+**Restreamer `docker-compose` Config**
+
+Set `` to a port available on the host, e.g., `8080`, and replace `` and ``
+
+```yml
+services:
+ restreamer:
+ container_name: restreamer
+ image: datarhei/restreamer-armv7l:latest
+ privileged: true
+ restart: always
+ environment:
+ - RS_USERNAME=
+ - RS_PASSWORD=
+ - RS_MODE=RASPICAM
+ - RS_INPUTSTREAM=rtmp://127.0.0.1/live/raspicam.stream
+ - RS_TIMEZONE=Europe/Vienna
+ - RS_SNAPSHOT_INTERVAL=1m
+ ports:
+ - :8080
+ volumes:
+ - /mnt/restreamer/db:/restreamer/db:rw
+ - /opt/vc:/opt/vc
+```
diff --git a/_configs/Raspberry-Pi-HQ-Camera.md b/_configs/Raspberry-Pi-HQ-Camera.md
new file mode 100644
index 00000000..c5b876f8
--- /dev/null
+++ b/_configs/Raspberry-Pi-HQ-Camera.md
@@ -0,0 +1,30 @@
+---
+title: Raspberry Pi HQ Camera
+comment: with Logitech C525 (for sound only)
+author: hylkefaber
+date: 2021-08-14
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "HQ cam",
+ "unbridge": true,
+ "videoConfig": {
+ "source": "-re -f video4linux2 -input_format mjpeg -i /dev/video2 -f alsa -ac 1 -i hw:CARD=C525,DEV=0",
+ "stillImageSource": "-f video4linux2 -ss 0.9 -i /dev/video2 -vframes 1",
+ "maxStreams": 3,
+ "maxFPS": 30,
+ "forceMax": false,
+ "encoderOptions": "-preset ultrafast -tune zerolatency",
+ "audio": true,
+ "debug": false
+ }
+}
+```
+
+**Additional Information**
+
+Adding the C525 changes the address of the HQ cam from /dev/video0 to /dev/video2, so keep that in mind!
+
+I did a write-up [on Reddit](https://www.reddit.com/r/homebridge/comments/p45wb5/making_a_baby_cam_with_the_raspberry_pi_hq_cam/).
diff --git a/_configs/Raspberry-Pi-NoIR-Camera.md b/_configs/Raspberry-Pi-NoIR-Camera.md
new file mode 100644
index 00000000..45d497d8
--- /dev/null
+++ b/_configs/Raspberry-Pi-NoIR-Camera.md
@@ -0,0 +1,34 @@
+---
+title: Raspberry Pi NoIR Camera
+comment: OV5647 Chip same as Raspberry Pi Camera V1
+author: Marco Boerner
+date: 2020-12-09
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "MYCAM 1",
+ "unbridge": true,
+ "videoConfig": {
+ "source": "-re -f video4linux2 -i /dev/video0",
+ "stillImageSource": "-f video4linux2 -ss 0.9 -i /dev/video0 -vframes 1",
+ "maxStreams": 2,
+ "maxWidth": 1920,
+ "maxHeight": 1080,
+ "maxFPS": 30,
+ "maxBitrate": 2048,
+ "forceMax": true,
+ "vcodec": "h264_omx",
+ "encoderOptions": "-preset ultrafast -tune zerolatency"
+ }
+}
+```
+
+**Additional Information**
+
+- I installed Homebridge following the Pi Zero instructions on Github. Activated the camera using raspi-config. Installed the Homebridge Camera FFmpeg plugin through the Homebridge site. For performance reasons I deactivated the Pi GUI.
+
+- The bitrate set to 2048 greatly increased the quality of the stream. A lower value might still be okay, especially when more users are allowed to stream the video. But 299 is too low and for 1080p unusable in my opinion. The encoderOptions helped also a lot.
+
+- Also I have not managed to get the camera to work in bridged mode, but unbridged is recommended anyways.
diff --git a/_configs/Raspberry-Pi-camera-v1.3.md b/_configs/Raspberry-Pi-camera-v1.3.md
new file mode 100644
index 00000000..feaa6579
--- /dev/null
+++ b/_configs/Raspberry-Pi-camera-v1.3.md
@@ -0,0 +1,58 @@
+---
+title: Raspberry Pi camera v1.3
+comment: connected to another RasPi
+author: Jan Kaiser
+date: 2019-08-02
+---
+## Description
+
+**Raspberry Pi #1:** The one that has camera connected to it
+
+Cron job to create a snapshot every minute (if we are not currently streaming)
+
+`* * * * * /home/pi/latest.sh`
+
+### latest.sh
+
+```sh
+#!/bin/sh
+
+if top -b -n1 | grep raspivid; then
+ exit 0
+else
+ raspistill -w 480 -h 270 -o /home/pi/latest.jpg -n -awb auto -ex auto
+ exit 0
+fi
+```
+
+### Command used for streaming
+
+`raspivid -o - -t 0 -w 1280 -h 720 -fps 15 -n -awb auto -ex auto | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8000/live}' :demux=h264`
+
+**Raspberry Pi #2:** The one that runs HomeBridge
+
+Cron job to pull the latest snapshot locally every minute
+
+`* * * * * ssh pi@192.168.1.107 'cat /home/pi/latest.jpg' > /home/pi/latest.jpg`
+
+### config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Balcony Camera",
+ "videoConfig": {
+ "source": "-f rtsp -re -i rtsp://192.168.1.107:8000/live",
+ "stillImageSource": "-i file:///home/pi/latest.jpg",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 15,
+ "maxBitrate": 299,
+ "audio": false,
+ "packetSize": 188
+ }
+ }]
+}
+```
\ No newline at end of file
diff --git a/_configs/Raspberry-Pi-with-Camera-Module.md b/_configs/Raspberry-Pi-with-Camera-Module.md
new file mode 100644
index 00000000..99595660
--- /dev/null
+++ b/_configs/Raspberry-Pi-with-Camera-Module.md
@@ -0,0 +1,106 @@
+---
+title: Raspberry Pi with Camera Module
+comment: with h264_omx or native h264
+author: moritzmhmk
+date: 2020-09-06
+---
+
+The following guide assumes that the [Official Homebridge Raspberry Pi Image](https://github.com/homebridge/homebridge-raspbian-image/wiki/Getting-Started) is used and the camera module is activated (e.g. via `raspi-config` *5 Interfacing Options* -> *P1 Camera*).
+
+The resolution is limited to 720p (i.e. 1280x720) to avoid the cropping when using 1080p mode.
+
+## Basic Config using h264_omx
+
+recommended for Raspberry Pi 2 and newer
+
+### config.json
+
+```json
+{
+ "name": "Raspberry Pi Camera",
+ "videoConfig": {
+ "source": "-f video4linux2 -i /dev/video0",
+ "maxStreams": 1,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 30,
+ "vcodec": "h264_omx"
+ }
+}
+```
+
+
+## Advanced Config using h264_omx to support multiple streams
+
+Requires Raspberry Pi 2 or newer!
+
+### Step1: Install v4l2loopback
+
+`sudo apt install v4l2loopback-dkms`
+
+### Step2: Adjust GPU RAM split
+
+Edit `/boot/config.txt` and change `gpu_mem=128` to `gpu_mem=256` (or use `raspi-config`).
+
+### Step3: Start the loopback device on boot
+
+Create file `/etc/systemd/system/camera-loopback.service`
+```ini
+[Unit]
+Description=Set up loopback cameras
+
+[Service]
+ExecStartPre=/sbin/modprobe v4l2loopback devices=2
+ExecStart=/usr/local/bin/ffmpeg -f video4linux2 -input_format yuv420p -video_size 1280x720 -i /dev/video0 -codec copy -f v4l2 /dev/video1
+Restart=always
+RestartSec=2
+
+[Install]
+WantedBy=default.target
+```
+
+Activate with `sudo systemctl enable camera-loopback` and start with `sudo systemctl start camera-loopback`.
+
+### Step4: configure homebridge
+
+Use the *Basic Config* (see above) and replace `/dev/video0` with `/dev/video1` and set `maxStreams` to `3`
+
+*Note: more than three streams tend to crash.*
+
+
+## Native h264
+
+Only recommended for Raspberry Pi 1 (A/B/A+/B+) and Raspberry Pi Zero
+
+Using the native h264 from the camera results in better image quality and lower cpu usage but has some drawbacks:
+* resolution is fixed (e.g. 720p)
+* bitrate, flip and rotation need to be adjusted separately from the command line (see below)
+* streaming to multiple devices is not possible
+
+Using [homebridge-camera-rpi](https://github.com/moritzmhmk/homebridge-camera-rpi) eliminates the first two drawbacks (*Disclaimer: I am the developer of that plugin*).
+
+### Prerequisite
+
+Set bitrate to 300k: `v4l2-ctl --set-ctrl video_bitrate=300000`
+
+Optionally adjust image orientation:
+* Rotate image 180 degrees: `v4l2-ctl --set-ctrl rotate=180`
+* Flip image vertically: `v4l2-ctl --set-ctrl vertical_flip=1`
+* Flip image horizontally: `v4l2-ctl --set-ctrl horizontal_flip=1`
+
+### config.json
+
+```json
+{
+ "name": "Raspberry Pi Zero Camera",
+ "videoConfig": {
+ "source": "-f video4linux2 -input_format h264 -video_size 1280x720 -framerate 30 -timestamps abs -i /dev/video0",
+ "stillImageSource": "-f video4linux2 -input_format mjpeg -video_size 1280x720 -i /dev/video0",
+ "maxStreams": 1,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 30,
+ "vcodec": "copy"
+ }
+}
+```
diff --git a/_configs/ReoLink-RLC-410.md b/_configs/ReoLink-RLC-410.md
new file mode 100644
index 00000000..07aca6cb
--- /dev/null
+++ b/_configs/ReoLink-RLC-410.md
@@ -0,0 +1,28 @@
+---
+title: ReoLink RLC-410
+comment: (Should work with all ReoLink-Cams supporting RTSP)
+author: Jonathan Fritz
+date: 2019-09-24
+---
+[example](https://amzn.to/2mhS9mi)
+
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "ReoLink",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -i rtsp://USER:PASSWORD@XXX.XXX.XXX.XXX:XXX/h264Preview_01_main",
+ "stillImageSource": "-i http://XXX.XXX.XXX.XXX:XXXX/image.jpeg",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 30
+ }
+ }]
+}
+```
+
+### Notes: Replace IPADRESS, PASSWORD etc with your values. Port stays the same for usual. For the stillImageSource I used a motioneyeos implementation, but you can just use a snapshot image of the Reolink camera or don't use stillImageSource (it is optional) You can install omx.
diff --git a/_configs/ReoLink-RLC-422.md b/_configs/ReoLink-RLC-422.md
new file mode 100644
index 00000000..9c1dfb5c
--- /dev/null
+++ b/_configs/ReoLink-RLC-422.md
@@ -0,0 +1,30 @@
+---
+title: ReoLink RLC-422
+author: t1dals
+date: 2019-10-03
+---
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "RLC 422",
+ "manufacturer": "Reolink",
+ "model": "RLC-422",
+ "serialNumber": "XXXXXX",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -I rtsp://USER:PASSWORD@XXX.XXX.XXX.XXX:XXX:554/h264Preview_01_main",
+ "stillImageSource": "-i http://XXX.XXX.XXX.XXX/cgi-bin/api.cgi?cmd=Snap&channel=0&user=USER&password=PASSWORD",
+ "maxStreams": 10,
+ "maxWidth": 1920,
+ "maxHeight": 1080,
+ "maxFPS": 30
+ }
+ }]
+}
+```
+
+### Notes
+
+Replace XXX.XXX.XXX.XXX, USER, PASSWORD etc with your values.
diff --git a/_configs/Reolink-RLC-410W.md b/_configs/Reolink-RLC-410W.md
new file mode 100644
index 00000000..845aa378
--- /dev/null
+++ b/_configs/Reolink-RLC-410W.md
@@ -0,0 +1,29 @@
+---
+title: Reolink RLC-410W
+comment: HOOBS + Raspberry Pi 4
+author: resgroupmsr
+date: 2018-04-18
+---
+- 7 cameras working as expected. Copy vcodec seems smoother but the other option here working fine with ultrafast option chosen
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Camera Driveway Reolink",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -re -i rtsp://admin:lola9698@192.168.1.241:554/h264Preview_01_main",
+ "stillImageSource": "-i http://192.168.1.241/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=pwd",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 30,
+ "maxBitrate": 300,
+ "vcodec": "copy",
+ "packetSize": 1316,
+ "audio": false,
+ "debug": true
+ }
+ }]
+}
+```
diff --git a/_configs/Reolink-camera.md b/_configs/Reolink-camera.md
new file mode 100644
index 00000000..e3033328
--- /dev/null
+++ b/_configs/Reolink-camera.md
@@ -0,0 +1,174 @@
+---
+title: Reolink camera
+comment: with better picture (rtmp) and audio (Ffmpeg tutorial)
+author: LSD MadMac
+date: 2020-03-01
+---
+Hello,
+
+here is a step by step tutorial how to make it work.
+
+The Reolink cameras have also 3 hidden streams that you get via **rtmp** protocol:
+`rtmp://your.ip/bcs/channel0_ext.bcs?channel=0&stream=2&user=admin&password=XXX`
+
+You have stream 1-3:
+
+| ID | Name |
+| ---|----------|
+| 1 | fluent |
+| 2 | balanced |
+| 3 | clean |
+
+**balanced** is the one we want for cleaner image.
+
+
+To make audio work we need to compile **FFMPEG** with some extras eg. **libfdk-aac-dev**...
+so here the step by step ... took it from old source and made it work for actual FFMPEG & Raspberry
+
+
+First you need to add following to your source list:
+
+shh into your Pi
+
+```console
+$ cd /home
+```
+
+Now we’re going to edit a file which contains the sources of debian repositories. We’ll do this with nano – a text editor.
+
+```console
+$ sudo nano /etc/apt/sources.list
+```
+
+Then use the cursor keys to get to line 2 and add…
+
+```
+deb http://www.deb-multimedia.org/ wheezy main non-free
+deb http://www.deb-multimedia.org/ jessie main
+```
+
+Then
+`CTRL` + `x` to exit,
+`y` to confirm you want to save and
+`ENTER` to confirm the filename (don’t change it)
+
+```console
+$ sudo apt-get update
+```
+
+It will update some package lists and give two errors.
+1. `W: GPG error`
+2. `W: Duplicate sources`
+
+We’ll deal with those next…
+
+```console
+$ sudo apt-get install deb-multimedia-keyring
+```
+
+`y` confirm install without verification
+
+```console
+$ sudo apt-get update
+```
+
+Now we need to install all the development libraries required to build **FFMPEG**. From `sudo` to `libvorbis-dev` is is all one line.
+
+```console
+$ sudo apt-get install libfdk-aac-dev libmp3lame-dev libx264-dev libxvidcore-dev libgsm1-dev libtheora-dev libvorbis-dev
+```
+
+Now let’s get the **FFMPEG** files themselves.
+
+```console
+$ sudo git clone git://source.ffmpeg.org/ffmpeg.git
+```
+
+This is quite a large download and will **take a little while** (10-20 mins). Once complete…
+
+```console
+$ cd ffmpeg
+```
+
+Note that the following command from `sudo` to `--enable-nonfree` is all one continuous command.
+
+```console
+$ sudo ./configure --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libgsm --enable-postproc --enable-libxvid --enable-libfdk-aac --enable-pthreads --enable-libvorbis --enable-gpl --enable-nonfree
+```
+
+After a minute or so, you will get a warning about `pkg-config not found`. Ignore it. It’ll still work. Now to compile. :)
+
+**WARNING!** Once you press `ENTER` for the `sudo make` command it will tie up your Pi4 for **about 1.5 hours** until the compile is finished. (If you are accessing your Pi via ssh, you might want to run it via screen, so you can detach and reattach without killing the process.)
+
+```console
+$ sudo make
+```
+
+This will show you what it is doing as it goes. There will be lots of scary messages you don’t understand. Best go and do something else. And best run the `sudo make` directly on the Pi if you can. If you do it by ssh you’ll have to leave your other computer on and connected until it finishes.
+
+Once compiled, the install is a fair bit faster.
+
+```console
+$ sudo make install
+```
+
+```console
+$ sudo ldconfig
+```
+
+```console
+$ sudo chown -R pi /home/ffmpeg
+```
+
+------------------------------
+now in homebridge conf.
+add "videoProcessor": "/home/ffmpeg/ffmpeg",
+to the setup like shown below...
+audio works now with all cameras that support it...
+testet with Logitech USB Cam and Reolink
+
+```json
+{
+ "name": "Camera ffmpeg",
+ "videoProcessor": "/home/ffmpeg/ffmpeg",
+ "cameras": [{
+ "name": "Reolink1",
+ "videoConfig": {
+ "source": "-i rtmp://192.168.178.93/bcs/channel0_ext.bcs?channel=0&stream=2&user=admin&password=XXX -map 0 -an -dn -flags -global_header",
+ "stillImageSource": "-i http://192.168.178.93/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=XXX",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "audio": false,
+ "debug": false
+ }
+ }]
+}
+```
+
+here another conf with audio and rtsp:
+
+```json
+{
+ "name": "Reolink2",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -re -i rtsp://admin:XXX@192.168.178.91:554/h264Preview_01_sub",
+ "stillImageSource": "-i http://192.168.178.91/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=XXX",
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "vcodec": "copy",
+ "audio": true,
+ "debug": false
+ }
+}
+```
+
+so if i use here the main stream it doesn't work because of the video image size...
+but with rtmp i'll can get the balanced stream that's much better...
+
+hope this will help all other user who struggle with audio and rtmp
+rtmp is really recommend for Reolink user... give it a try and you'll see...
+but add -map 0 -dn -an -flags -global_header after your Url like you see in my conf.
+took me a day to figure it out ...
+best
+M.
diff --git a/_configs/Samsung-SNH-P6410BN.md b/_configs/Samsung-SNH-P6410BN.md
new file mode 100644
index 00000000..1be9fec8
--- /dev/null
+++ b/_configs/Samsung-SNH-P6410BN.md
@@ -0,0 +1,43 @@
+---
+title: Samsung SNH-P6410BN
+comment: Samsung SmartCam (firmware 1.08) and Raspberry PI 3
+author: pponce
+date: 2017-01-31
+---
+I had to use the OMX fork to get the PI 3 and FFMPEG to work more or less reliably.
+
+
+## Camera Settings
+
+I disabled WDR on the camera via the iOS app to get better frame rates at higher quality for my BlueIris setup using profile 5.
+
+rtsp://username:password@IPAddress:554/profile5/media.smp
+
+For the PI 3 I ended up using profile 2.
+
+rtsp://username:password@IPAddress:554/profile2/media.smp
+
+If you don't use the HD quality profile 5 or don't need/want higher frame rates when using it then you can experiment with WDR ON or OFF for your setup.
+
+There are also other profiles to try:
+rtsp://username:password@IPAddress:554/profile3/media.smp
+rtsp://username:password@IPAddress:554/profile4/media.smp
+rtsp://username:password@IPAddress:554/profile6/media.smp
+
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "CamNameHere",
+ "videoConfig": {
+ "source": "-re -i rtsp://username:password@ipaddress:554/profile2/media.smp",
+ "maxStreams": 2,
+ "maxWidth": 640,
+ "maxHeight": 360,
+ "maxFPS": 15
+ }
+ }]
+}
+```
diff --git a/_configs/Sannce-1080P-IP-Cameras.md b/_configs/Sannce-1080P-IP-Cameras.md
new file mode 100644
index 00000000..7b9a0dc3
--- /dev/null
+++ b/_configs/Sannce-1080P-IP-Cameras.md
@@ -0,0 +1,32 @@
+---
+title: Sannce 1080P IP Cameras
+author: Ricardo Pereira
+date: 2017-02-04
+---
+Purchased as a set of 4 with an NVR (no HD), available on [Amazon.ca](https://www.amazon.ca/gp/product/B01ABRSM8S/ref=oh_aui_detailpage_o09_s00?ie=UTF8&psc=1) (Model POE-1080P-4CH)
+
+## config.json
+
+```json
+{
+ "name": "Sannce",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -re -i rtsp://192.168.1.100/user=name_password=pass_channel=1_stream=0.sdp?real_stream",
+ "maxStreams": 2,
+ "maxWidth": 1920,
+ "maxHeight": 1080,
+ "maxFPS": 30
+ }
+}
+```
+
+### Notes:
+
+- The IP address can be the cameras themselves, or the NVR.
+ - You can specify different cameras from the NVR IP by incrementing the `channel` number.
+- Adding the `-rtsp_transport tcp` option greatly improved the video performance and quality for me.
+ - Without it, stream would take a long time to load, stutter frequently, and would often be covered in streaks and artifacts.
+ - Anyone looking to improve the output of similar IP cameras should also look at ffmpeg's [RTSP-specific options](http://ffmpeg.org/ffmpeg-protocols.html#rtsp)
+- I found that the quality of the stream would suffer when multiple devices were streaming straight from the cameras/NVR, so I've set up an [RTSP proxy](http://www.live555.com/proxyServer/) on the same machine running `homebridge-camera-ffmpeg`
+- I'm running `homebridge-camera-ffmpeg` and its own instance of `homebridge` in a docker container using the [`marcoraddatz/homebridge`](https://hub.docker.com/r/marcoraddatz/homebridge/) image.
+ - This required installing ffmpeg from the `jessie-backports` apt source inside the container.
diff --git a/_configs/SecuritySpy.md b/_configs/SecuritySpy.md
new file mode 100644
index 00000000..bf1f9aef
--- /dev/null
+++ b/_configs/SecuritySpy.md
@@ -0,0 +1,38 @@
+---
+title: SecuritySpy
+comment: for MacOs
+author: Tom Hickey
+date: 2018-06-17
+---
+[Product page](https://www.bensoftware.com/securityspy/)
+
+The great thing about this is, if SecuritySpy supports your camera ([which is an extensive list](https://www.bensoftware.com/securityspy/helpcameralist.html)) then you should be able to get it working within Homebridge. So you can add multi-random cameras and only have to worry about getting the config right once.
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Security Cam 0",
+ "videoConfig": {
+ "source": "-i http://:@:/++hls?cameraNum=0&codec=h264&width=1280&height=720",
+ "stillImageSource": "-i http://:@:/++image?cameraNum=0&width=480&height=270",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 30
+ }
+ },
+ {
+ "name": "Security Cam 1",
+ "videoConfig": {
+ "source": "-i http://:@:/++hls?cameraNum=1&codec=h264&width=1280&height=720",
+ "stillImageSource": "-i http://:@:/++image?cameraNum=1&width=480&height=270",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 30
+ }
+ }
+ ]
+}
+```
diff --git a/_configs/Sercomm-OC810.md b/_configs/Sercomm-OC810.md
new file mode 100644
index 00000000..4780f891
--- /dev/null
+++ b/_configs/Sercomm-OC810.md
@@ -0,0 +1,29 @@
+---
+title: Sercomm OC810
+author: cinsu
+date: 2020-09-19
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Camera FFmpeg",
+ "cameras": [{
+ "name": "Camera",
+ "motion": true,
+ "videoConfig": {
+ "source": "-i rtsp://administrator@[ip]:1025/img/media.sav",
+ "stillImageSource": "http://administrator@[ip]/img/snapshot.cgi",
+ "maxStreams": 2,
+ "maxWidth": 640,
+ "maxHeight": 480,
+ "maxFPS": 15,
+ "audio": true
+ }
+ }]
+}
+```
+
+**Additional Information**
+
+Default video size is 320x240 which I’ve increased. There are reports some Sercomm models support 720 with a hidden api call but that did not work for this model. I’ve been testing the ffmpeg audio return without success. The parameter is http://[ip]/img/g711a.cgi
diff --git a/_configs/Sercomm-iCamera2.md b/_configs/Sercomm-iCamera2.md
new file mode 100644
index 00000000..5d252fcd
--- /dev/null
+++ b/_configs/Sercomm-iCamera2.md
@@ -0,0 +1,30 @@
+---
+title: Sercomm iCamera2
+author: John Fox
+date: 2022-03-14
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "",
+ "manufacturer": "Sercomm",
+ "model": "iCamera2",
+ "serialNumber": "",
+ "videoConfig": {
+ "source": "-i rtsp://administrator@:554/img/media.sav",
+ "stillImageSource": "http://administrator@:554/img/snapshot.cgi",
+ "audio": true
+ }
+}
+```
+
+**Additional Information**
+
+There are some additional parameters you'll need to set in the Camera firmware itself through your browser to ensure Wi-Fi connectivity:
+
+1. Set SSID: http:///adm/get_group.cgi?group=WIRELESS&wlan_essid=
+
+2. Set WLAN Password: http:///adm/get_group.cgi?group=WIRELESS&wpa_ascii=
+
+Please note that when setting your iCam2's up through Homebridge you will lose the ability for CVR through Xfinity Home and you will not be able to access your cameras through the Xfinity Home touchscreen or mobile app. All access will be through Apple HomeKit.
diff --git a/_configs/Synology-Surveillance-Station-2.md b/_configs/Synology-Surveillance-Station-2.md
new file mode 100644
index 00000000..37446555
--- /dev/null
+++ b/_configs/Synology-Surveillance-Station-2.md
@@ -0,0 +1,28 @@
+---
+title: Synology Surveillance Station
+author: Malcolm Hall
+date: 2020-06-13
+---
+When using Surveillance Station to connect and record the camera there is no point in homebridge also connecting when it can simply connect to Surveillance Station's shared stream locally. Find the URL in Surveillance Station, IP Camera, right click camera, share stream path. By default this plugin is set to re-encode the video stream but that is a serious problem because the Alpine docker container cannot do hardware encoding of the video so when viewing the stream through the home app it destroys the Synology's CPU as it does software encoding. Since the Surveillance Station stream is already h264 the solution is for this plugin to just forward the existing stream and not re-encode it, that is done by setting the vcodec to copy.
+
+## config.json
+
+```json
+{
+ "platforms": [{
+ "cameras": [{
+ "name": "My Camera",
+ "videoConfig": {
+ "source": "-re -i rtsp://syno:1234567890abcdef1234567890abcdef@localhost:554/Sms=1.unicast",
+ "maxWidth": 1920,
+ "maxHeight": 1080,
+ "maxFPS": 30,
+ "maxBitrate": 3000,
+ "vcodec": "copy",
+ "audio": true
+ }
+ }],
+ "platform": "Camera-ffmpeg"
+ }]
+}
+```
diff --git a/_configs/Synology-Surveillance-Station.md b/_configs/Synology-Surveillance-Station.md
new file mode 100644
index 00000000..94afc8c7
--- /dev/null
+++ b/_configs/Synology-Surveillance-Station.md
@@ -0,0 +1,25 @@
+---
+title: Synology Surveillance Station
+author: Marc GUYARD
+date: 2020-03-01
+---
+For Synology Surveillance Station
+Link for source and stillImageSource are generate by Surveillance Station, right clic on camera and select "Share streaming Path"
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Camera-Salon",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -re -i rtsp://USER:PASS@IP:554/Sms=CAMID.unicast",
+ "stillImageSource": "-rtsp_transport tcp -re -i rtsp://USER:PASS@IP:554/Sms=CAMID.unicast -updatefirst",
+ "maxStreams": 2,
+ "maxWidth": 2688,
+ "maxHeight": 1520,
+ "maxFPS": 20,
+ "vcodec": "h264"
+ }
+ }]
+}
+```
diff --git a/_configs/Szsinocam-ip-onvif.md b/_configs/Szsinocam-ip-onvif.md
new file mode 100644
index 00000000..173a1c1c
--- /dev/null
+++ b/_configs/Szsinocam-ip-onvif.md
@@ -0,0 +1,25 @@
+---
+title: Szsinocam ip onvif
+author: Jony
+date: 2020-06-30
+---
+- using homebridge-camera-ffmpeg
+- authentication for rtsp disabled in camera config
+
+```json
+{
+ "cameras": [{
+ "name": "Camera",
+ "manufacturer": "SZSINOCAM",
+ "model": "IPCAM",
+ "motion": false,
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -re -i rtsp://192.168.1.50:554/ucast/11",
+ "stillImageSource": "-re -i http://192.168.1.50/cgi-bin/anv/images_cgi?channel=0",
+ "maxFPS": 20,
+ "debug": false
+ }
+ }],
+ "platform": "Camera-ffmpeg"
+}
+```
diff --git a/_configs/TP-Link-C100.md b/_configs/TP-Link-C100.md
new file mode 100644
index 00000000..599beabe
--- /dev/null
+++ b/_configs/TP-Link-C100.md
@@ -0,0 +1,33 @@
+---
+title: TP-Link C100
+author: Jirka
+date: 2020-07-07
+---
+Model C 100
+
+## config.json
+
+```json
+{
+ "cameras": [{
+ "name": "TP-Link Camera C100",
+ "manufacturer": "TP-Link",
+ "model": "C100",
+ "motion": true,
+ "videoConfig": {
+ "source": "-rtsp_transport http -re -i rtsp://user:password@ip:554/stream1",
+ "stillImageSource": "-rtsp_transport tcp -re -i rtsp://user:password@ip:554/stream1",
+ "maxStreams": 2,
+ "maxWidth": 1024,
+ "maxHeight": 576,
+ "maxFPS": 10,
+ "maxBitrate": 300,
+ "vcodec": "h264_omx",
+ "packetSize": 188,
+ "audio": true,
+ "debug": true
+ }
+ }],
+ "platform": "Camera-ffmpeg"
+}
+```
diff --git a/_configs/TP-Link-C200.md b/_configs/TP-Link-C200.md
new file mode 100644
index 00000000..c32a1273
--- /dev/null
+++ b/_configs/TP-Link-C200.md
@@ -0,0 +1,34 @@
+---
+title: TP-Link C200
+author: jonasophie
+date: 2020-04-17
+---
+Model C 200
+
+## config.json
+
+```json
+{
+ "name": "Camera ffmpeg",
+ "cameras": [{
+ "name": "Camera-Salo_",
+ "manufacturer": "TP-Link",
+ "model": "C200",
+ "serialNumber": "1C3BF372F96C",
+ "firmwareRevision": "1.0.5",
+ "videoConfig": {
+ "source": "-re -i rtsp://user:password@ip:554/stream2",
+ "stillImageSource": "-i rtsp:// user:password@ip:554/stream2",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 10,
+ "maxBitrate": 300,
+ "vcodec": "libx264",
+ "packetSize": 1316,
+ "audio": true,
+ "debug": true
+ }
+ }]
+}
+```
diff --git a/_configs/TP-Link-NC230-and-NC250.md b/_configs/TP-Link-NC230-and-NC250.md
new file mode 100644
index 00000000..bb10ac45
--- /dev/null
+++ b/_configs/TP-Link-NC230-and-NC250.md
@@ -0,0 +1,33 @@
+---
+title: TP-Link NC230 and NC250
+author: Daniel Berlin
+date: 2021-02-25
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Camera",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -re -i rtsp://USERNAME:PASSWORD@CAMERA-IP-OR-HOST/h264_hd.sdp",
+ "stillImageSource": "-i http://USERNAME:PASSWORD@CAMERA-IP-OR-HOST:8080/stream/snapshot.jpg",
+ "maxWidth": 0,
+ "maxHeight": 0,
+ "maxFPS": 0,
+ "vcodec": "h264_omx",
+ "audio": true
+ }
+}
+```
+
+**Additional Information**
+
+I achieved the best best quality and least interruptions with the following settings:
+
+- set the FPS in the camerca config UI to 20 FPS, more FPS lead to interruptions (but YMMV!)
+
+- set maxFPS, maxWidth and maxHeight to 0 (as shown above), so that the video is not resized and the FPS is not changed; otherwise the (already mediocre) quality becomes absolutely ugly!
+
+- h264_omx gives the best performance on Raspberry Pis with small quality impact. On non-Pis, you'll probably want to choose another codec
+
+Audio quality is very bad and I did not find a way to improve it... but it's better than nothing.
diff --git a/_configs/TP-Link-Tapo-C200.md b/_configs/TP-Link-Tapo-C200.md
new file mode 100644
index 00000000..4facc6b0
--- /dev/null
+++ b/_configs/TP-Link-Tapo-C200.md
@@ -0,0 +1,44 @@
+---
+title: TP-Link Tapo C200
+comment: with motion detection
+author: mihailescu2m
+date: 2021-10-10
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Tapo-1",
+ "manufacturer": "Tp-Link",
+ "model": "C200",
+ "serialNumber": "2001",
+ "unbridge": true,
+ "motion": true,
+ "motionTimeout": 0,
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -re -i rtsp://[USER]:[PASS]@[CAM.IP]:554/stream2",
+ "stillImageSource": "-i rtsp://[USER]:[PASS]@[CAM.IP]:554/stream2",
+ "maxWidth": 640,
+ "maxHeight": 480,
+ "maxFPS": 15,
+ "maxBitrate": 384,
+ "forceMax": true,
+ "vcodec": "copy",
+ "audio": true
+ },
+ "mqtt": {
+ "motionTopic": "onvif2mqtt/Tapo-1/motion",
+ "motionMessage": "ON",
+ "motionResetTopic": "onvif2mqtt/Tapo-1/motion",
+ "motionResetMessage": "OFF"
+ }
+}
+```
+
+**Additional Information**
+
+Motion detection set up using onvif2mqtt.
+
+~3s delay for the 640x480 stream (stream2).
+
+In the debug info, Getting the first frames took usually shows ~3s.
diff --git a/_configs/TP-Link-Tapo-C310.md b/_configs/TP-Link-Tapo-C310.md
new file mode 100644
index 00000000..31bf3ab2
--- /dev/null
+++ b/_configs/TP-Link-Tapo-C310.md
@@ -0,0 +1,18 @@
+---
+title: TP-Link Tapo C310
+author: githubwyllie
+date: 2021-08-16
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Tapo C310",
+ "motion": true,
+ "doorbell": true,
+ "videoConfig": {
+ "source": "-i rtsp://USER:PASSWORD@IP:554/stream1",
+ "audio": true
+ }
+}
+```
diff --git a/_configs/Techage-2MP-PoE-NVR.md b/_configs/Techage-2MP-PoE-NVR.md
new file mode 100644
index 00000000..398369e1
--- /dev/null
+++ b/_configs/Techage-2MP-PoE-NVR.md
@@ -0,0 +1,35 @@
+---
+title: Techage 2MP PoE NVR
+author: ashtonaut
+date: 2020-10-24
+---
+Cheap and very reliable across multiple installs with Homebridge running on Raspberry Pi 3B and 4.
+
+Purchased from official Techage store on AliExpress.
+
+[Link](https://www.aliexpress.com/item/32989530341.html)
+
+I have only tested the 2MP H264 (older) and H265 (newer) PoE cameras (grey cylindrical body). I haven’t tested wifi cameras or the 5MP cameras. One way audio works.
+
+**Homebridge Config**
+
+```json
+{
+ "name": "Camera Name",
+ "motion": true,
+ "switches": true,
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -re -i rtsp://:554/user=admin&password=&channel=1&stream=0.sdp",
+ "stillImageSource": "-i http:///webcapture.jpg?command=snap&channel=0",
+ "audio": true
+ }
+}
+```
+
+**Additional Information**
+
+- These cameras can upload snapshots on motion detect directly to a FTP server. I’ve used vsftp as the FTP server on the Pi.
+
+- To set up, log into the cameras directly using their IP address (you need to use an old version of Internet Explorer, user “admin”, no password) and set up the FTP snapshot location. Then enable FTP upload on motion trigger for each camera.
+
+- Use a plugin like homebridge-filesensor to watch the folder and trigger motion when a new snapshot is uploaded.
diff --git a/_configs/ThomView-DSC-725S.md b/_configs/ThomView-DSC-725S.md
new file mode 100644
index 00000000..a2a24dfe
--- /dev/null
+++ b/_configs/ThomView-DSC-725S.md
@@ -0,0 +1,27 @@
+---
+title: ThomView DSC-725S
+author: Gus Muche
+date: 2021-10-20
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Camera",
+ "manufacturer": "ThomView",
+ "model": "DSC-725S",
+ "unbridge": false,
+ "videoConfig": {
+ "source": "-i rtsp://username:password@XX.XXX.XXX.XXX:port/videoMain",
+ "vcodec": "copy",
+ "packetSize": 188,
+ "audio": false
+ }
+}
+```
+
+**Additional Information**
+
+`"vcodec": "libx264"` -> OK
+
+`"packetSize": 1316` -> OK
\ No newline at end of file
diff --git a/_configs/Toadi-Automatic-Mower.md b/_configs/Toadi-Automatic-Mower.md
new file mode 100644
index 00000000..dc217c0f
--- /dev/null
+++ b/_configs/Toadi-Automatic-Mower.md
@@ -0,0 +1,30 @@
+---
+title: Toadi Automatic Mower
+author: Gus Muche
+date: 2021-10-17
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Toadi2",
+ "motion": false,
+ "switches": false,
+ "unbridge": true,
+ "videoConfig": {
+ "source": "-re -loop 1 -i http://IPfromControlPanel:8080/image/front/img.jpg?timestamp=21439115",
+ "stillImageSource": "-i http://IPfromControlPanel::8080/image/front/img.jpg?timestamp=21439115",
+ "maxStreams": 1,
+ "maxWidth": 640,
+ "maxHeight": 480,
+ "maxFPS": 1,
+ "debug": false
+ }
+}
+```
+
+**Additional Information**
+
+Maybe the frame rate can be shorter. Just play with the parameters.
+
+The link to the image can be found with a right click on the image stream from the control panel and paste in the navigation bar.
diff --git a/_configs/UNV-Uniview.md b/_configs/UNV-Uniview.md
new file mode 100644
index 00000000..463b8cfe
--- /dev/null
+++ b/_configs/UNV-Uniview.md
@@ -0,0 +1,44 @@
+---
+title: UNV Uniview
+author: iq85k
+date: 2020-02-28
+---
+Model NVR301-04LB-P4
+Cameras are UNV IPC2122LR3-PF40-E
+NVR Camera Encoding Setup - Menu > Cameras > Encoding
+
+```
+Sub Stream
+Stream Type Network Transmission
+Video Compression h264
+Resolution 640*360
+Bitrate Type VBR
+Bit Rate 512
+Frame Rate 10
+Image Quality level 4
+I Frame Interval 50
+Smoothing 4
+U-Code Off
+```
+
+## config.json
+
+```json
+{
+ "name": "Front of House",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -re -i rtsp://username:password@ipaddress:554/unicast/c1/s1/live",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 10,
+ "maxBitrate": 256,
+ "mapvideo": "0:0",
+ "mapaudio": "0:1",
+ "vcodec": "copy",
+ "packetSize": 376,
+ "audio": false,
+ "debug": true
+ }
+}
+```
diff --git a/_configs/Ubiquiti-AirCam.md b/_configs/Ubiquiti-AirCam.md
new file mode 100644
index 00000000..695694dc
--- /dev/null
+++ b/_configs/Ubiquiti-AirCam.md
@@ -0,0 +1,31 @@
+---
+title: Ubiquiti AirCam
+comment: (Generation 1, firmware v3.1.4.39), RPi 3
+author: Matevž Gačnik
+date: 2017-02-13
+---
+Working without Ubiquiti NVR (running software UniFi Video), available on [Ubiquiti site](https://www.ubnt.com/download/unifi-video/) or via a direct RTSP connection to camera (older firmware, via ffmpeg).
+
+Using fork for RPi 3 support.
+
+## config.json
+
+```json
+{
+ "name": "Driveway",
+ "videoConfig": {
+ "source": "-rtsp_transport http -re -i rtsp://domain:port/4a1baa33-31a8-52f3-5524-12345aa111a7_0",
+ "maxStreams": 2,
+ "maxWidth": 1270,
+ "maxHeight": 720,
+ "maxFPS": 15
+ }
+}
+```
+
+### Notes:
+
+- The RTSP stream can come from cameras or UniFi Video server (probably from the NVR too).
+- Works remotely if you have Apple TV 4/iPad setup as a homekit hub.
+- Running homebridge on Raspberry Pi 3.
+- Streaming startup takes ~10s, thumbnails get generated automatically.
diff --git a/_configs/Ubiquiti-UVC-G3.md b/_configs/Ubiquiti-UVC-G3.md
new file mode 100644
index 00000000..c271af75
--- /dev/null
+++ b/_configs/Ubiquiti-UVC-G3.md
@@ -0,0 +1,27 @@
+---
+title: Ubiquiti UVC G3
+author: Deon
+date: 2020-05-11
+---
+## config.json
+
+```json
+{
+ "name": "CCTV Camera",
+ "manufacturer": "Ubiquiti",
+ "model": "UVC G3",
+ "serialNumber": "XYZXYZYZY",
+ "firmwareRevision": "4.14",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -re -i rtsp://admin:xxxxxxx@172.16.33.67:554/s0",
+ "maxStreams": 2,
+ "maxWidth": 1920,
+ "maxHeight": 1080,
+ "maxFPS": 30,
+ "vcodec": "copy",
+ "audio": true,
+ "mapvideo": "0:1",
+ "mapaudio": "0:0"
+ }
+}
+```
diff --git a/_configs/UniFi-Video-G3-Micro.md b/_configs/UniFi-Video-G3-Micro.md
new file mode 100644
index 00000000..87f56e7c
--- /dev/null
+++ b/_configs/UniFi-Video-G3-Micro.md
@@ -0,0 +1,31 @@
+---
+title: UniFi Video G3-Micro
+author: gijoecool
+date: 2019-07-06
+---
+### Description
+
+Audio and video working on a Raspberry Pi 3 Model B using the instructions [here](https://github.com/KhaosT/homebridge-camera-ffmpeg/wiki/Raspberry-PI). "source" is from UniFi Protect (medium RTSP URL) hosted on an UniFi Cloud Key G2+ and "stillImageSource" is directly from camera. Connection takes less than 10 seconds.
+
+## config.json
+
+```json
+{
+ "name": "UniFi-G3-Micro",
+ "videoConfig": {
+ "source": "-re -rtsp_transport tcp -i rtsp://UNIFI_CLOUD_KEY_G2_IP:PORT/UNIQUE_ID",
+ "stillImageSource": "-i http://UNIFI_CAMERA_IP/snap.jpeg",
+ "additionalCommandline": "-preset slow -profile:v high -level 4.2 -x264-params intra-refresh=1:bframes=0",
+ "vcodec": "h264_omx",
+ "audio": true,
+ "packetsize": 188,
+ "maxStreams": 2,
+ "maxWidth": 1024,
+ "maxHeight": 576,
+ "maxFPS": 20,
+ "debug": true,
+ "mapvideo": "0:1",
+ "mapaudio": "0:0"
+ }
+}
+```
diff --git a/_configs/V380-Cloudcam.md b/_configs/V380-Cloudcam.md
new file mode 100644
index 00000000..452c4a53
--- /dev/null
+++ b/_configs/V380-Cloudcam.md
@@ -0,0 +1,41 @@
+---
+title: V380 Cloudcam
+author: LeJeko
+date: 2019-04-04
+---
+**Need to patch the firmware to activate RTSP on port 554.**
+
+Solution found [here](https://community.netcamstudio.com/t/fentac-v380-connection/1334/12)
+
+I found the solution after talking with the support team of these cameras. It is necessary to upgrade the firmware of the camera to open the onvif ports.
+Download files [here](https://drive.google.com/file/d/0B8j89vcA6EWGdlgxcWVuZTlJZ0I2U292bE5QRU1xR0YybEl3/view)
+1. Unzip the files
+1. Copy the files to the root of the microSD
+1. Restart the camera
+1. Wait until the update finishes, listening if you have a horn or watching the LEDs
+1. Check that the 554 port has been opened
+1. Delete the SD update files
+
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "V380",
+ "videoConfig": {
+ "vcodec": "h264_omx",
+ "source": "-re -i rtsp://admin:password@XXX.XXX.XXX.XXX/live/ch00_1",
+ "maxFPS": 25,
+ "maxHeight": 720,
+ "maxStreams": 2,
+ "maxWidth": 1280
+ }
+ }]
+}
+```
+
+### Notes
+/live/ch00_1 : 1280x720
+
+/live/ch00_0 : 640x480
diff --git a/_configs/VESKYS-720P-Tilt-Pan.md b/_configs/VESKYS-720P-Tilt-Pan.md
new file mode 100644
index 00000000..22526e9b
--- /dev/null
+++ b/_configs/VESKYS-720P-Tilt-Pan.md
@@ -0,0 +1,27 @@
+---
+title: VESKYS 720P Tilt / Pan
+author: Charles Vestal
+date: 2017-05-13
+---
+[example](http://www.ebay.com/itm/292036336237?_trksid=p2060353.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT)
+
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Veskys Camera",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -i rtsp://admin:PASSWORD@IPADDRESS:10554/tcp/av0_0 -map 0",
+ "stillImageSource": "-i http://IPADDRESS:81/snapshot.cgi?user=admin&pwd=PASSWORD",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 30
+ }
+ }]
+}
+```
+
+### Notes: Replace IPADDRESS, PASSWORD with your data. I could not get this working with RPi and ffmpeg-omx, but working successfully on a macOS installation
diff --git a/_configs/Vivint-Doorbell-Camera-Pro.md b/_configs/Vivint-Doorbell-Camera-Pro.md
new file mode 100644
index 00000000..70478f87
--- /dev/null
+++ b/_configs/Vivint-Doorbell-Camera-Pro.md
@@ -0,0 +1,26 @@
+---
+title: Vivint Doorbell Camera Pro
+author: Error404UNF
+date: 2020-10-14
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Doorbell",
+ "manufacturer": "VIVINT",
+ "model": "DBC300",
+ "motion": true,
+ "doorbell": true,
+ "motionTimeout": 1,
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -re -i rtsp://user:XYXYXYXYXYXYXYXYXYXYXYX@10.10.10.10:0000/Video-00",
+ "vcodec": "copy",
+ "audio": true
+ }
+}
+```
+
+**Additional Information**
+
+2 way audio not included due to WIP state. Ensure you have "showCameraConfig": true in the Vivint platform in config.json, copy the Config from the log in the Homebridge Log, paste into the "source" in the Config. Optional videoConfig Parameters can go anywhere after "source".
diff --git a/_configs/Vivotek-CC-8130.md b/_configs/Vivotek-CC-8130.md
new file mode 100644
index 00000000..060c8a57
--- /dev/null
+++ b/_configs/Vivotek-CC-8130.md
@@ -0,0 +1,37 @@
+---
+title: Vivotek CC-8130
+comment: and Raspberry PI 2 (Jessie)
+author: NorthernMan54
+date: 2017-02-05
+---
+To resolve playback issues I had to use the OMX fork to get the PI 2 and FFMPEG to work more or less reliably.
+
+
+## Camera Settings
+
+ the settings for Media->Video->Stream 2 to
+ JPEG
+ Frame Size 1280x800
+ Maximum frame rate 30
+ Video Quality: Fixed
+ Video Quality: Excellent
+ Maximum bit rate 40 Mbps
+
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Office Camera",
+ "videoConfig": {
+ "source": "-re -i http://login:password@192.168.1.98/video2.mjpg",
+ "stillImageSource": "-f mjpeg -i http://login:password@192.168.1.98/cgi-bin/viewer/video.jpg",
+ "maxStreams": 2,
+ "maxWidth": 1920,
+ "maxHeight": 1080,
+ "maxFPS": 30
+ }
+ }]
+}
+```
diff --git a/_configs/Vstarcam-C7824WIP.md b/_configs/Vstarcam-C7824WIP.md
new file mode 100644
index 00000000..c601df00
--- /dev/null
+++ b/_configs/Vstarcam-C7824WIP.md
@@ -0,0 +1,24 @@
+---
+title: Vstarcam C7824WIP
+author: teymur1988
+date: 2020-07-15
+---
+- using homebridge-camera-ffmpeg 2.3.0
+- authentication for rtsp admin and camera password
+
+```json
+{
+ "name": "Entrance Camera",
+ "motion": true,
+ "switches": false,
+ "motionTimeout": 35,
+ "videoConfig": {
+ "source": "-rtsp_transport udp -i rtsp://admin:yourpassword@cam-ip:10554/udp/av0_0",
+ "stillImageSource": "-i http://cam-ip/img/snapshot.cgi?user=admin&pwd=yourpassword&res=0",
+ "maxFPS": 25,
+ "packetSize": 1316,
+ "audio": true,
+ "debug": false
+ }
+}
+```
diff --git a/_configs/WaveShare-RPi-Camera.md b/_configs/WaveShare-RPi-Camera.md
new file mode 100644
index 00000000..cb7d954c
--- /dev/null
+++ b/_configs/WaveShare-RPi-Camera.md
@@ -0,0 +1,152 @@
+---
+title: WaveShare RPi Camera
+comment: and Raspberry PI 3B (Stretch)
+author: milmber
+date: 2020-07-19
+---
+3 configurations using the following video codecs as per the `vcodec` parameter:
+- `copy` codec for streaming with much higher quality but with a downside that you must specify the target video resolution for your iOS/MacOS device by updating the `video_size` parameter.
+- `h264` codec for streaming with good quality but using more processor power
+- `h264_omx` codec for streaming with minimal processing power but with lower quality
+
+## copy video codec
+
+### config.json
+
+```json
+{
+ "cameras": [{
+ "name": "Pi 3B Camera",
+ "motion": true,
+ "switches": true,
+ "videoConfig": {
+ "source": "-re -r 30 -video_size 1920x1080 -f video4linux2 -input_format h264 -i /dev/video0 -copyts -start_at_zero -timestamps abs",
+ "stillImageSource": "-video_size 1920x1080 -f video4linux2 -i /dev/video0 -ss 1.5",
+ "maxStreams": 2,
+ "maxFPS": 30,
+ "maxBitrate": 500000000,
+ "vcodec": "copy",
+ "audio": false,
+ "vflip": false,
+ "hflip": false,
+ "debug": true
+ }
+ }],
+ "platform": "Camera-ffmpeg"
+}
+```
+
+### notes
+
+The resolution in the example configuration above has been tested to work for iPad and MacOS. It will not work for other devices that require difference resolutions.
+
+Since the Raspberry Pi lacks an RTC, it should be ensured that `timesyncd` is correctly functioning, otherwise streaming will stop working as the Pi's clock drifts. E.g.
+
+```
+$ systemctl status systemd-timesyncd.service
+● systemd-timesyncd.service - Network Time Synchronization
+ Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled)
+ Drop-In: /lib/systemd/system/systemd-timesyncd.service.d
+ └─disable-with-time-daemon.conf
+ Active: active (running) since Sun 2020-07-19 09:48:38 BST; 5h 9min ago
+ Docs: man:systemd-timesyncd.service(8)
+ Main PID: 30120 (systemd-timesyn)
+ Status: "Synchronized to time server 216.239.35.4:123 (time.google.com)."
+ CGroup: /system.slice/systemd-timesyncd.service
+ └─30120 /lib/systemd/systemd-timesyncd
+
+Jul 19 09:48:38 raspberrypizerow systemd[1]: Starting Network Time Synchronization...
+Jul 19 09:48:38 raspberrypizerow systemd[1]: Started Network Time Synchronization.
+Jul 19 09:48:38 raspberrypizerow systemd-timesyncd[30120]: Synchronized to time server 216.239.35.4:123 (time.google.com).
+```
+
+If necessary it may be needed to update the NTP server configuration in `/etc/systemd/timesyncd.conf`
+
+## h264 video codec
+
+### config.json
+
+```json
+{
+ "cameras": [
+ {
+ "name": "Pi 3B Camera",
+ "motion": true,
+ "switches": true,
+ "videoConfig": {
+ "source": "-re -r 30 -video_size 1920x1080 -f video4linux2 -input_format h264 -i /dev/video0 -crf 18 -threads 3",
+ "stillImageSource": "-video_size 1920x1080 -f video4linux2 -i /dev/video0 -ss 1.5",
+ "maxStreams": 2,
+ "maxFPS": 30,
+ "vcodec": "h264",
+ "audio": false,
+ "vflip": false,
+ "hflip": false,
+ "debug": true
+ }
+ }
+ ],
+ "platform": "Camera-ffmpeg"
+}
+```
+
+### notes
+
+The `crf` and `threads` parameters allow for setting adequate video quality and using multiple RPI cores. Works across all iOS/MacOS devices but with significant CPU overhead.
+
+## h264_omx video codec
+
+### config.json
+
+```json
+{
+ "cameras": [
+ {
+ "name": "Pi 3B Camera",
+ "motion": true,
+ "switches": true,
+ "videoConfig": {
+ "source": "-re -r 30 -video_size 1920x1080 -f video4linux2 -input_format h264 -i /dev/video0",
+ "stillImageSource": "-video_size 1920x1080 -f video4linux2 -i /dev/video0 -ss 1.5",
+ "maxStreams": 2,
+ "maxFPS": 30,
+ "maxBitrate": 500000000,
+ "vcodec": "h264_omx",
+ "audio": false,
+ "vflip": false,
+ "hflip": false,
+ "debug": true
+ }
+ }
+ ],
+ "platform": "Camera-ffmpeg"
+}
+```
+
+### notes
+
+While fast, and working across all iOS/MacOS devices, the `h264_omx` video codec doesn't support many options and provides sub-standard quality compared to the other options (at least when using a RPI camera). E.g.
+
+```
+$ ffmpeg -h encoder=h264_omx
+ffmpeg version 3.2.14-1~deb9u1+rpt1 Copyright (c) 2000-2019 the FFmpeg developers
+ built with gcc 6.3.0 (Raspbian 6.3.0-18+rpi1+deb9u1) 20170516
+ configuration: --prefix=/usr --extra-version='1~deb9u1+rpt1' --toolchain=hardened --libdir=/usr/lib/arm-linux-gnueabihf --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libebur128 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-omx-rpi --enable-mmal --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libiec61883 --arch=armhf --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
+ libavutil 55. 34.101 / 55. 34.101
+ libavcodec 57. 64.101 / 57. 64.101
+ libavformat 57. 56.101 / 57. 56.101
+ libavdevice 57. 1.100 / 57. 1.100
+ libavfilter 6. 65.100 / 6. 65.100
+ libavresample 3. 1. 0 / 3. 1. 0
+ libswscale 4. 2.100 / 4. 2.100
+ libswresample 2. 3.100 / 2. 3.100
+ libpostproc 54. 1.100 / 54. 1.100
+Encoder h264_omx [OpenMAX IL H.264 video encoder]:
+ General capabilities: delay
+ Threading capabilities: none
+ Supported pixel formats: yuv420p
+h264_omx AVOptions:
+ -omx_libname ED.V.... OpenMAX library name
+ -omx_libprefix ED.V.... OpenMAX library prefix
+ -zerocopy E..V.... Try to avoid copying input frames if possible (from 0 to 1) (default 0)
+```
diff --git a/_configs/Wyze-Cam-Pan-V1.md b/_configs/Wyze-Cam-Pan-V1.md
new file mode 100644
index 00000000..c758be17
--- /dev/null
+++ b/_configs/Wyze-Cam-Pan-V1.md
@@ -0,0 +1,32 @@
+---
+title: Wyze Cam Pan V1
+comment: running on Raspberry Pi 4b
+author: techeadred
+date: 2020-12-07
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "name",
+ "manufacturer": "Wyze",
+ "model": "Wyze Cam Pan",
+ "firmwareRevision": "4.29.4.49",
+ "motion": true,
+ "videoConfig": {
+ "source": "-i rtsp://admin:password@1.1.1.1/live",
+ "stillImageSource": "http://admin:password@1.1.1.1/image.jpg",
+ "vcodec": "copy",
+ "maxWidth": 1920,
+ "maxHeight": 1080,
+ "maxFPS": 15,
+ "maxBitrate": 16,
+ "forceMax": true,
+ "audio": true
+ }
+}
+```
+
+**Additional Information**
+
+I was able to get the Wyze Cam Pan streaming to HomeKit with no transcoding and no custom compiling required using the following settings.
diff --git a/_configs/Wyze-Cam-v2-and-Pan.md b/_configs/Wyze-Cam-v2-and-Pan.md
new file mode 100644
index 00000000..3506af74
--- /dev/null
+++ b/_configs/Wyze-Cam-v2-and-Pan.md
@@ -0,0 +1,33 @@
+---
+title: Wyze Cam v2 and Pan
+author: recoi1er
+date: 2021-04-22
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "CAMERA NAME",
+ "manufacturer": "Wyze",
+ "model": "Wyze Cam v2 OR Pan",
+ "serialNumber": "SERIAL#",
+ "firmwareRevision": "VERSION#",
+ "unbridge": false,
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -i rtsp://USER:PASS@IP/live",
+ "stillImageSource": "-rtsp_transport tcp -i rtsp://USER:PASS@IP/live -vframes 1 -r 1",
+ "additionalCommandline": "-protocol_whitelist https,crypto,srtp,rtp,udp",
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 15,
+ "maxStreams": 2,
+ "audio": true,
+ "vcodec": "copy",
+ "motion": true
+ }
+}
+```
+
+**Additional Information**
+
+"unbridge" is recommend in the plugin configuration but I could get not any camera to appear in HomeKit until I after I set it to false (or removed it from config), I tested it on bare bones where I removed most of the settings listed above to make sure none of them were in conflict.
diff --git a/_configs/Wyze-Cam-v3.md b/_configs/Wyze-Cam-v3.md
new file mode 100644
index 00000000..0825325f
--- /dev/null
+++ b/_configs/Wyze-Cam-v3.md
@@ -0,0 +1,35 @@
+---
+title: Wyze Cam v3
+author: Gus Muche
+date: 2021-11-30
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Test Cam",
+ "unbridge": true,
+ "manufacturer": "WYZE",
+ "model": "WYZE_CAKP2JFUS",
+ "videoConfig": {
+ "source": "-i rtsp://user:pass@/live",
+ "stillImageSource": "-i rtsp://user:pass@/live -vframes 1 -r 1",
+ "audio": true,
+ "maxStreams": 3,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 10,
+ "maxBitrate": 299,
+ "packetSize": 752,
+ "debug": false,
+ "additionalCommandline": "-protocol_whitelist https,crypto,srtp,rtp,udp"
+ }
+}
+```
+
+**Additional Information**
+
+Installed v3 RTSP Firmware:
+https://support.wyze.com/hc/en-us/articles/360026245231-Wyze-Cam-RTSP
+
+Haven't tested motion or notifs but the Homekit app is more stable than the Wyze app... The Wyze app kept freezing on me in the middle of the night.
diff --git a/_configs/WyzeCam-V2.md b/_configs/WyzeCam-V2.md
new file mode 100644
index 00000000..b873d681
--- /dev/null
+++ b/_configs/WyzeCam-V2.md
@@ -0,0 +1,23 @@
+---
+title: WyzeCam V2
+comment: with Raspberry Pi 4 Model B
+author: Luke Hoersten
+date: 2020-02-16
+---
+As described in this [blog post](https://medium.com/dirigible/wyze-cam-homekit-58c4878c4124), I was able to get the WyzeCam V2 streaming to HomeKit with no transcoding and no custom compiling required using the following settings.
+
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Wyze Cam",
+ "videoConfig": {
+ "source": "-i rtsp://username:password@192.168.0.100/live",
+ "stillImageSource": "-i rtsp://username:password@192.168.0.100/live -vframes 1 -r 1",
+ "vcodec": "copy"
+ }
+ }]
+}
+```
diff --git a/_configs/WyzeCam.md b/_configs/WyzeCam.md
new file mode 100644
index 00000000..e581780e
--- /dev/null
+++ b/_configs/WyzeCam.md
@@ -0,0 +1,34 @@
+---
+title: Wyze Cam v2 / v3 / Pan / Doorbell / Outdoor
+comment: on docker-wyze-bridge
+author: mrlt8
+date: 2021-09-29
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "CAM_NAME",
+ "manufacturer": "WyzeCam",
+ "model": "WYZE_CAKP2JFUS",
+ "unbridge": true,
+ "videoConfig": {
+ "source": "-i rtsp://:8554/cam-name",
+ "vcodec": "copy"
+ }
+}
+```
+
+**Additional Information**
+
+docker-wyze-bridge does not support audio at this time.
+
+Depending on your config, you may want to rotate the doorbell cam in homebridge with hardware acceleration, which can be done by specifying your `vcodec` of choice and setting `videoFilter` to `transpose=1`:
+
+```json
+"videoConfig": {
+ "source": "-i rtsp://10.0.0.10:8554/front",
+ "vcodec": "libx264",
+ "videoFilter": "transpose=1"
+}
+```
diff --git a/_configs/Wyzecam-V1.md b/_configs/Wyzecam-V1.md
new file mode 100644
index 00000000..a69f0c7b
--- /dev/null
+++ b/_configs/Wyzecam-V1.md
@@ -0,0 +1,30 @@
+---
+title: Wyzecam V1
+comment: with Raspberry Pi 3 Model B Rev 1.2
+author: Karan S
+date: 2018-05-29
+---
+Replica of the Xiaomi Xiaofang (Small White Square)
+
+Note: I used the homebridge-camera-ffmpeg-omx plugin () along with OpenIPC v0.2.4 for Wyze V1 () which is forked from Fang-Hacks()
+
+The rest of the `config.json` file is similar to the above Xioami Xiaofang `config.json`
+
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg-omx",
+ "cameras": [{
+ "name": "Garage Camera",
+ "videoConfig": {
+ "source": "-re -i rtsp://192.168.2.128/unicast",
+ "stillImageSource": "-i rtsp://192.168.2.128/unicast -vframes 1 -r 1",
+ "maxStreams": 2,
+ "maxWidth": 1920,
+ "maxHeight": 1080,
+ "maxFPS": 30
+ }
+ }]
+}
+```
diff --git a/_configs/Wyzecam-V2-2.md b/_configs/Wyzecam-V2-2.md
new file mode 100644
index 00000000..079885b6
--- /dev/null
+++ b/_configs/Wyzecam-V2-2.md
@@ -0,0 +1,62 @@
+---
+title: Wyzecam V2
+comment: running their rtsp v2 firmware
+author: Bluey05
+date: 2021-02-28
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "WyzeCam-Garage",
+ "motion": true,
+ "videoConfig": {
+ "source": "-i rtsp://usezrname:password@192.168.188.27/live",
+ "maxStreams": 1,
+ "vcodec": "copy",
+ "packetSize": 188,
+ "audio": true
+ }
+}
+```
+
+**Additional Information**
+
+***Hardware***
+
+I have been experimenting with implementing FFmpeg plugin on my homebridge for weeks.
+
+I used an old mac mini, a more recent mac mini and a windows PC.
+
+I installed Homebridge on MAC, Windows and Linux Distro's (Tried with Ubuntu, Mint Linux and Debian)
+
+I have a very good working Homebridge running on an old Intel Mac - 2,0GHz, with 4GB RAM
+
+***Issues***
+
+The issues encountered were;
+- very long delay before video was showing (sometimes up to 40 seconds),
+
+- blurry snapshots on the bottom half of the image due to missed frames.
+
+I had been using every bit of advise and suggestions, I could find on the internet, adding, adapting and removing FFmpeg parameters, but ultimately found the above JSON config, working almost perfectly.
+
+***My gestimate on why this works***
+
+Why (to my humble knowledge) this one works;
+
+- Using a domain name, to avoid the use of internal addresses delays the return of video with 10 seconds (in my case) and is actually not required, if you already have a Homepod or AppleTV incorporated in your Homekit setup. It also voids the opening of as many ports as you have cameras...
+
+- Removing the still image source will force use of the WyzeCam software to produce an image captured from the video stream which is crisp clear and shows no anomalies (Images refreshes almost every 1 to 15 seconds on "MyHome" page of Homekit)
+
+- setting the "maxstream" to one, made a difference of almost 5 seconds for the video to start playing on my iPhone (Cannot gestimate why, but this setting does not stop me from looking at the same stream from multiple sources)
+
+- vcopy (explains itself and all tips and tricks found on the intern explain that better than I can)
+
+- reducing the packet size has made a huge difference for the video stream to start playing
+
+***Finally after months of trying***
+
+In short, I now have crisp clear snapshots, one way audio, motion detection and a video stream, will always start in less than 10 seconds when on premise and between 15 to 20 seconds, when offsite on 4G (depending on 4G signal strength).
+
+I hope this can help some of you out there.
\ No newline at end of file
diff --git a/_configs/Xiaomi-Dafang.md b/_configs/Xiaomi-Dafang.md
new file mode 100644
index 00000000..51e92e7a
--- /dev/null
+++ b/_configs/Xiaomi-Dafang.md
@@ -0,0 +1,32 @@
+---
+title: Xiaomi Dafang
+comment: with Raspberry Pi 3 Model B
+author: Partyboy97
+date: 2018-05-13
+---
+Note: [Dafang-Hacks](https://github.com/EliasKotlyar/Xiaomi-Dafang-Hacks) Enable the RTSP stream.
+
+Reduced the RTSP output to 720p which is helpful when your Wi-Fi link is not great.
+Remove the "-rtsp_transport tcp" if you got FFMpeg Zombie's
+
+I run this config for my 3 Cams.
+
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Camera 1",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -i rtsp://ip-address/unicast",
+ "stillImageSource": "-rtsp_transport tcp -i rtsp://ip-address/unicast -vframes 1 -r 1",
+ "maxStreams": 5,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 25,
+ "vcodec": "h264_omx"
+ }
+ }]
+}
+```
diff --git a/_configs/Xiaomi-Xiaofang-1S.md b/_configs/Xiaomi-Xiaofang-1S.md
new file mode 100644
index 00000000..eab9d2cf
--- /dev/null
+++ b/_configs/Xiaomi-Xiaofang-1S.md
@@ -0,0 +1,34 @@
+---
+title: Xiaomi Xiaofang 1S
+comment: on Raspberry Pi3b (maybe also for Pi2 etc)
+author: mrdc
+date: 2019-11-23
+---
+Hello,
+
+I've had the issue with `vcodec copy` option for a long time - Live stream was always failing after 1 second.
+Not it's fixed (config for Xiaomi Xiaofang 1S):
+
+```json
+{
+ "name": "Camera",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -re -i rtsp://your_ip_address",
+ "maxFPS": 30,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "videoFilter": "none",
+ "maxBitrate": 1024,
+ "packetSize": 188,
+ "maxStreams": 2,
+ "vcodec": "copy",
+ "audio": false
+ }
+}
+```
+
+Tested on ffmpeg version 4.1.4 (built with gcc 8.3.0 (Alpine 8.3.0)
+
+```
+configuration: --prefix=/usr --enable-avresample --enable-avfilter --enable-gnutls --enable-gpl --enable-libass --enable-libmp3lame --enable-libvorbis --enable-libvpx --enable-libxvid --enable-libx264 --enable-libx265 --enable-libtheora --enable-libv4l2 --enable-postproc --enable-pic --enable-pthreads --enable-shared --enable-libxcb --disable-stripping --disable-static --disable-librtmp --enable-vaapi --enable-vdpau --enable-libopus --disable-asm --disable-debug libavutil 56. 22.100 / 56. 22.100 libavcodec 58. 35.100 / 58. 35.100 libavformat 58. 20.100 / 58. 20.100 libavdevice 58. 5.100 / 58. 5.100 libavfilter 7. 40.101 / 7. 40.101 libavresample 4. 0. 0 / 4. 0. 0 libswscale 5. 3.100 / 5. 3.100 libswresample 3. 3.100 / 3. 3.100 libpostproc 55. 3.100 / 55. 3.100
+```
diff --git a/_configs/Xiaomi-Xiaofang.md b/_configs/Xiaomi-Xiaofang.md
new file mode 100644
index 00000000..2c28ecb6
--- /dev/null
+++ b/_configs/Xiaomi-Xiaofang.md
@@ -0,0 +1,29 @@
+---
+title: Xiaomi Xiaofang
+comment: (Small White Square) with Raspberry Pi 3 Model B
+author: mrblack7
+date: 2018-05-26
+---
+Note: I applied [Fang-Hacks](https://github.com/samtap/fang-hacks) to the camera to enable the RTSP stream.
+
+I also reduced the RTSP output to 720p which is helpful when your Wi-Fi link is not great.
+
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Camera 1",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -i rtsp://ip-address/unicast",
+ "stillImageSource": "-i rtsp://ip-address/unicast -vframes 1 -r 1",
+ "maxStreams": 2,
+ "maxWidth": 720,
+ "maxHeight": 480,
+ "maxFPS": 10,
+ "vcodec": "h264_omx"
+ }
+ }]
+}
+```
diff --git a/_configs/Y-cam-Cameras.md b/_configs/Y-cam-Cameras.md
new file mode 100644
index 00000000..943515ec
--- /dev/null
+++ b/_configs/Y-cam-Cameras.md
@@ -0,0 +1,38 @@
+---
+title: Y-cam Cameras
+author: usmcguy
+date: 2017-05-18
+---
+Working through RTSP
+
+This applies to the Y-Cam Cube HD1080 & Y-Cam Bullet HD1080. These are a few years old, not the current generation. These cameras have 3 Stream types; Primary (Stream "live/0"), Secondary (Stream "live/1"), and Mobile Stream (Stream "live/2"). The Primary has higher resolution(image size) options. The mobile is designed for streaming with low-bandwidth. I have my configuration setup to use the Primary stream at 1920x1080, 18 fps, MJPEG & JPEG Snapshot Quality set to 90. I enabled authentication, but this can be disabled. For the Preview image (stillImageSource) to work, I had to add the "-f mjpeg" to the stream. Away from home, I get very good image/video quality.'
+
+It may be worth mentioning, there are several streams available coming from the Y-Cam. This is by default and they are all on all the time. I tested them all, and had better image quality away from home using the RTSP MJPEG stream.
+
++ RTSP H.264 stream: rtsp://ip_address/live/0/h264.sdp
++ RTSP MPEG4 stream: rtsp://ip_address/live/0/mpeg4.sdp
++ RTSP MJPEG stream: rtsp://ip_address/live/0/mjpeg.sdp
++ RTSP audio stream: rtsp://ip_address/live/0/audio.sdp
++ HTTP M3U8 stream: http://ip_address/live/0/h264.m3u8
++ HTTP MJPEG stream: http://ip_address/live/0/mjpeg.jpg
++ HTTP ASF stream: http://ip_address/live/0/mpeg4.asf
++ HTTP snapshot image: http://ip_address/live/0/jpeg.jpg
+
+## config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Y-Cam",
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -re -i rtsp://user:pass@ip:554/live/0/mjpeg.sdp",
+ "stillImageSource": "-f mjpeg -i http://user:pass@ip:554/live/0/mjpeg.jpg",
+ "maxStreams": 2,
+ "maxWidth": 1920,
+ "maxHeight": 1080,
+ "maxFPS": 30
+ }
+ }]
+}
+```
diff --git a/_configs/ZNV-ZDIE-2121W-N3T-A.md b/_configs/ZNV-ZDIE-2121W-N3T-A.md
new file mode 100644
index 00000000..c9654484
--- /dev/null
+++ b/_configs/ZNV-ZDIE-2121W-N3T-A.md
@@ -0,0 +1,32 @@
+---
+title: ZNV ZDIE-2121W-N3T-A
+author: Caribsky
+date: 2018-04-20
+---
+[Product page](http://www.znv.com/product/detail.aspx?id=100000569652783&nodecode=101002001010)
+
+**Frame Rate:**
+* Master: 1280×960@25/30fps, 1280×720@25/30fps
+* Slave: 704×576@25/30fps, 640×480@25/30fps
+
+### config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "ZNVCam",
+ "uploader": false,
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -re -I rtsp://:@192.168.0.254:554/ch0_0.h264",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "packetSize": 188,
+ "maxFPS": 30,
+ "maxBitrate": 300,
+ "debug": false
+ }
+ }]
+}
+```
diff --git a/_configs/Zoneminder.md b/_configs/Zoneminder.md
new file mode 100644
index 00000000..5bd737d5
--- /dev/null
+++ b/_configs/Zoneminder.md
@@ -0,0 +1,23 @@
+---
+title: Zoneminder
+author: Thomas Hentschel
+date: 2018-04-20
+---
+works pretty well with zoneminder, using the ZM 'nph-zms' urls. Since the stream is already "cleaned up", it's pretty fast starting the stream as well. If you have a decent zoneminder setup (on a beefy server, since you need that anyway for motion detection), just run homebridge-camera-ffmpeg straight there.
+
+## config.json
+
+```json
+{
+ "name": "Sideyard Cam",
+ "videoConfig": {
+ "source": "-re -i http://localhost/zm/cgi-bin/nph-zms?mode=jpeg&monitor=&scale=100&maxfps=15&buffer=1000&user=&pass=",
+ "stillImageSource": "-i http://localhost/zm/cgi-bin/nph-zms?mode=single&monitor=&scale=100&user=&pass=",
+ "maxStreams": 2,
+ "maxWidth": 1280,
+ "maxHeight": 720,
+ "maxFPS": 15,
+ "debug": true
+ }
+}
+```
diff --git a/_configs/eufy-Security-eufyCam.md b/_configs/eufy-Security-eufyCam.md
new file mode 100644
index 00000000..cf61ea4b
--- /dev/null
+++ b/_configs/eufy-Security-eufyCam.md
@@ -0,0 +1,33 @@
+---
+title: eufy Security eufyCam
+author: scrytch
+date: 2019-06-23
+---
+### Description
+
+A wireless camera system that records locally and supports RTSP. Love it! Tested with the original eufyCam not the eufyCam E (but they should work too).
+
+[Product Page](https://www.eufylife.com/)
+
+### config.json
+
+```json
+{
+ "platform": "Camera-ffmpeg",
+ "cameras": [{
+ "name": "Back Yard",
+ "videoConfig": {
+ "source": "-re -i rtsp://192.168.x.x:554/live0",
+ "maxStreams": 2,
+ "maxWidth": 1920,
+ "maxHeight": 1080,
+ "videoFilter": "scale=1280:720"
+ }
+ }]
+}
+```
+
+### Notes
+
+1. RTSP streams with these cameras only show after the camera senses motion and broadcasts the stream - no way to trigger it from Home app. To get going you'll need to trigger motion by moving in front of the camera.
+2. You'll need to have configured RTSP in your iOS app and noted your URL's for each camera. Instructions for RTSP setup are here - just ignore the NAS part
diff --git a/_configs/iPCamera.md b/_configs/iPCamera.md
new file mode 100644
index 00000000..b8c9fe51
--- /dev/null
+++ b/_configs/iPCamera.md
@@ -0,0 +1,24 @@
+---
+title: iPCamera - High-End NetworkCam (iOS App)
+author: kalebakeits
+date: 2021-05-16
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Bedroom View",
+ "videoConfig": {
+ "source": "-i http://10.211.xxx.xxx/live",
+ "stillImageSource": "-i http://10.211.xxx.xxx/live",
+ "maxStreams": 2,
+ "maxWidth": 480,
+ "maxHeight": 360,
+ "maxFPS": 30
+ }
+}
+```
+
+**Additional Information**
+
+You don't need to specify a port for this camera just http://{camera ip}/live. I am using mine without a password at the moment so I cannot advise on that. I know it is risky.
diff --git a/_configs/ihoumi-AJ-Cloud-camera.md b/_configs/ihoumi-AJ-Cloud-camera.md
new file mode 100644
index 00000000..1c9dd847
--- /dev/null
+++ b/_configs/ihoumi-AJ-Cloud-camera.md
@@ -0,0 +1,24 @@
+---
+title: ihoumi AJ Cloud camera
+comment: might also work for wansview cameras
+author: Alberto Xamin
+date: 2021-03-24
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "Cancello Ingresso",
+ "unbridge": true,
+ "videoConfig": {
+ "source": "-rtsp_transport tcp -i rtsp://USERNAME:PASSWORD@IPADDRESS:554/live/ch1"
+ }
+}
+```
+
+**Additional Information**
+
+`/live/ch1` is for 720p
+`/live/ch0` is for 1080p
+
+I guess ihoumi is just a reseller for these cameras that use the app AJ Cloud
diff --git a/_configs/macOS-Screen.md b/_configs/macOS-Screen.md
new file mode 100644
index 00000000..5c4c8a41
--- /dev/null
+++ b/_configs/macOS-Screen.md
@@ -0,0 +1,26 @@
+---
+title: macOS Screen
+author: crbyxwpzfl
+date: 2021-07-16
+---
+**Homebridge Config**
+
+```json
+{
+ "name": "test",
+ "unbridge": false,
+ "videoConfig": {
+ "source": "-f avfoundation -i 0",
+ "maxStreams": 2,
+ "encoderOptions": "-preset ultrafast",
+ "audio": false,
+ "debug": true
+ }
+}
+```
+
+**Additional Information**
+
+Tested with Homebridge on macOS Big Sur.
+
+For some reason the stream does not work with `"encoderOptions": "-preset ultrafast -tune zerolatency"`, everything except the stream works with this default encoder options even the debug output looks the same just the stream never starts.
diff --git a/_layouts/config.md b/_layouts/config.md
new file mode 100644
index 00000000..03ada3a6
--- /dev/null
+++ b/_layouts/config.md
@@ -0,0 +1,15 @@
+---
+layout: default
+---
+
+