diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md
index f66f74fe..534f7169 100644
--- a/.github/copilot-instructions.md
+++ b/.github/copilot-instructions.md
@@ -203,7 +203,7 @@ The plugin supports automation via:
- **Switches**: HomeKit switches for manual triggering
### Tested Configuration Management
-The repository maintains a collection of tested camera configurations submitted by users via GitHub issues labeled "tested config". These configurations are displayed on the project documentation website at https://sunoo.github.io/homebridge-camera-ffmpeg/configs/.
+The repository maintains a collection of tested camera configurations submitted by users via GitHub issues labeled "tested config". These configurations are displayed on the project documentation website at https://homebridge-plugins.github.io/homebridge-camera-ffmpeg/configs/.
#### Processing Tested Config Issues
When working with issues that have the "tested config" label:
@@ -239,7 +239,7 @@ When working with issues that have the "tested config" label:
- **Updates**: Update documentation links when adding new tested configurations
#### Integration with Documentation Website
-The project uses a documentation website (sunoo.github.io/homebridge-camera-ffmpeg/) that includes:
+The project uses a documentation website (homebridge-plugins.github.io/homebridge-camera-ffmpeg/) that includes:
- `/configs/` - Tested configuration repository
- `/automation/mqtt.html` - MQTT automation documentation
- `/automation/http.html` - HTTP automation documentation
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0c6c12d2..8515e31f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,18 @@
All notable changes to this project will be documented in this file. This project uses [Semantic Versioning](https://semver.org/)
+## [4.1.0](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v4.1.0) (2025-09-18)
+
+## What's Changed
+* Update Workflow by @Donavan Becker in https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/commit/5712800
+* update dependencies by @Donavan Becker in https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/commit/1c3eeec
+* Update Workflow by @Donavan Becker in https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/commit/76139d0
+* Fix camera streaming timeout issue causing premature stream termination by @Copilot in https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/pull/1515
+* Fix HKSV recording stream closure with prebuffer integration and H.264 optimization by @Copilot in https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/pull/1511
+* Add tested configuration management to copilot instructions by @Copilot in https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/pull/1513
+
+**Full Changelog**: https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/compare/v4.0.1...v4.1.0
+
## [4.0.1](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/releases/tag/v4.0.1) (2025-03-04)
### What's Changes
@@ -65,7 +77,7 @@ All notable changes to this project will be documented in this file. This projec
### 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).
+- 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://homebridge-plugins.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
diff --git a/README.md b/README.md
index 6208e81f..1821acdf 100755
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# 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)
+[ ](https://www.npmjs.com/package/@homebridge-plugins/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
@@ -15,7 +15,7 @@ This plugin is supported under both [Homebridge](https://homebridge.io) and [HOO
## 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.
+Other users have been sharing configurations that work for them on our GitHub site. You may want to [check that](https://homebridge-plugins.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
@@ -49,9 +49,9 @@ Other users have been sharing configurations that work for them on our GitHub si
### 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`)
+- `motion`: Exposes the motion sensor for this camera. This can be triggered with [dummy switches](https://homebridge-plugins.github.io/homebridge-camera-ffmpeg/automation/switch.html), [MQTT messages](https://homebridge-plugins.github.io/homebridge-camera-ffmpeg/automation/mqtt.html), or [via HTTP](https://homebridge-plugins.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://homebridge-plugins.github.io/homebridge-camera-ffmpeg/automation/switch.html), [MQTT messages](https://homebridge-plugins.github.io/homebridge-camera-ffmpeg/automation/mqtt.html), or [via HTTP](https://homebridge-plugins.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://homebridge-plugins.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`)
@@ -167,12 +167,12 @@ Other users have been sharing configurations that work for them on our GitHub si
### 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).
+- `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://homebridge-plugins.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).
+- `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://homebridge-plugins.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
diff --git a/config.schema.json b/config.schema.json
index ee1dc35c..08c1b48c 100644
--- a/config.schema.json
+++ b/config.schema.json
@@ -5,7 +5,7 @@
"customUi": true,
"customUiPath": "./dist/homebridge-ui",
"headerDisplay": "Homebridge Plugin Providing FFmpeg-based Camera Support.",
- "footerDisplay": "You can see configurations that have been shared by other users on [the project site](https://sunoo.github.io/homebridge-camera-ffmpeg/configs/).",
+ "footerDisplay": "You can see configurations that have been shared by other users on [the project site](https://homebridge-plugins.github.io/homebridge-camera-ffmpeg/configs/).",
"schema": {
"name": {
"title": "Name",
diff --git a/docs/404.html b/docs/404.html
new file mode 100644
index 00000000..c472b4ea
--- /dev/null
+++ b/docs/404.html
@@ -0,0 +1,24 @@
+---
+layout: default
+---
+
+
+
+
+
404
+
+
Page not found :(
+
The requested page could not be found.
+
diff --git a/docs/Gemfile b/docs/Gemfile
new file mode 100644
index 00000000..16163a31
--- /dev/null
+++ b/docs/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/docs/Gemfile.lock b/docs/Gemfile.lock
new file mode 100644
index 00000000..22feb457
--- /dev/null
+++ b/docs/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/docs/_automation/helpers.md b/docs/_automation/helpers.md
new file mode 100644
index 00000000..3d447b6b
--- /dev/null
+++ b/docs/_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/docs/_automation/http.md b/docs/_automation/http.md
new file mode 100644
index 00000000..01303871
--- /dev/null
+++ b/docs/_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/docs/_automation/motion.md b/docs/_automation/motion.md
new file mode 100644
index 00000000..d6a00b85
--- /dev/null
+++ b/docs/_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/docs/_automation/mqtt.md b/docs/_automation/mqtt.md
new file mode 100644
index 00000000..4e390353
--- /dev/null
+++ b/docs/_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/docs/_automation/switch.md b/docs/_automation/switch.md
new file mode 100644
index 00000000..6c8ec1e2
--- /dev/null
+++ b/docs/_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/docs/_config.yml b/docs/_config.yml
new file mode 100644
index 00000000..1b9cd20a
--- /dev/null
+++ b/docs/_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/docs/_configs/2n-HeliosIP.md b/docs/_configs/2n-HeliosIP.md
new file mode 100644
index 00000000..50666b6d
--- /dev/null
+++ b/docs/_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/docs/_configs/AVYCon-DVR-AVR-HN808P8.md b/docs/_configs/AVYCon-DVR-AVR-HN808P8.md
new file mode 100644
index 00000000..19e37458
--- /dev/null
+++ b/docs/_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/docs/_configs/AXIS-207W.md b/docs/_configs/AXIS-207W.md
new file mode 100644
index 00000000..cec0072c
--- /dev/null
+++ b/docs/_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/docs/_configs/AXIS-P1344.md b/docs/_configs/AXIS-P1344.md
new file mode 100644
index 00000000..62ac1d14
--- /dev/null
+++ b/docs/_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/docs/_configs/AirBeam-2.md b/docs/_configs/AirBeam-2.md
new file mode 100644
index 00000000..e13d9960
--- /dev/null
+++ b/docs/_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/docs/_configs/AirBeam.md b/docs/_configs/AirBeam.md
new file mode 100644
index 00000000..66dcc56b
--- /dev/null
+++ b/docs/_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/docs/_configs/Alptop-AT-200B.md b/docs/_configs/Alptop-AT-200B.md
new file mode 100644
index 00000000..a5c97e4e
--- /dev/null
+++ b/docs/_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/docs/_configs/Amcrest-AD110.md b/docs/_configs/Amcrest-AD110.md
new file mode 100644
index 00000000..280fb34a
--- /dev/null
+++ b/docs/_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/docs/_configs/Amcrest-IP2M-841-2.md b/docs/_configs/Amcrest-IP2M-841-2.md
new file mode 100644
index 00000000..4a522ce5
--- /dev/null
+++ b/docs/_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/docs/_configs/Amcrest-IP2M-841.md b/docs/_configs/Amcrest-IP2M-841.md
new file mode 100644
index 00000000..80a0cc16
--- /dev/null
+++ b/docs/_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/docs/_configs/Amcrest-IP2M-842E.md b/docs/_configs/Amcrest-IP2M-842E.md
new file mode 100644
index 00000000..2a426fb2
--- /dev/null
+++ b/docs/_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/docs/_configs/Amcrest-IP3M-943B.md b/docs/_configs/Amcrest-IP3M-943B.md
new file mode 100644
index 00000000..77711e62
--- /dev/null
+++ b/docs/_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/docs/_configs/Amcrest-IP3M-HX2W.md b/docs/_configs/Amcrest-IP3M-HX2W.md
new file mode 100644
index 00000000..0c104f51
--- /dev/null
+++ b/docs/_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/docs/_configs/Amcrest-IP4M-1026.md b/docs/_configs/Amcrest-IP4M-1026.md
new file mode 100644
index 00000000..08a78a11
--- /dev/null
+++ b/docs/_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/docs/_configs/Amcrest-IP8M-2496E.md b/docs/_configs/Amcrest-IP8M-2496E.md
new file mode 100644
index 00000000..37b95479
--- /dev/null
+++ b/docs/_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/docs/_configs/Amcrest-IP8M-2496EB.md b/docs/_configs/Amcrest-IP8M-2496EB.md
new file mode 100644
index 00000000..1a0f9c28
--- /dev/null
+++ b/docs/_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/docs/_configs/Amcrest-IPM-721W-2.md b/docs/_configs/Amcrest-IPM-721W-2.md
new file mode 100644
index 00000000..88cbdd2a
--- /dev/null
+++ b/docs/_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/docs/_configs/Amcrest-IPM-721W.md b/docs/_configs/Amcrest-IPM-721W.md
new file mode 100644
index 00000000..63d6a1ce
--- /dev/null
+++ b/docs/_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/docs/_configs/Amcrest-IPM-HX1B.md b/docs/_configs/Amcrest-IPM-HX1B.md
new file mode 100644
index 00000000..ed23b05e
--- /dev/null
+++ b/docs/_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/docs/_configs/Anran-DVR.md b/docs/_configs/Anran-DVR.md
new file mode 100644
index 00000000..60fda3c8
--- /dev/null
+++ b/docs/_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/docs/_configs/August-Doorbell-Cam-Pro.md b/docs/_configs/August-Doorbell-Cam-Pro.md
new file mode 100644
index 00000000..e31d04a0
--- /dev/null
+++ b/docs/_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/docs/_configs/August-Doorbell-Cam-Version-1.md b/docs/_configs/August-Doorbell-Cam-Version-1.md
new file mode 100644
index 00000000..29eed742
--- /dev/null
+++ b/docs/_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/docs/_configs/Avtech-AVM542B.md b/docs/_configs/Avtech-AVM542B.md
new file mode 100644
index 00000000..405c9613
--- /dev/null
+++ b/docs/_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/docs/_configs/Avtech-MDR751B-DVR.md b/docs/_configs/Avtech-MDR751B-DVR.md
new file mode 100644
index 00000000..53f1ca93
--- /dev/null
+++ b/docs/_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/docs/_configs/Axis-M3024-L.md b/docs/_configs/Axis-M3024-L.md
new file mode 100644
index 00000000..7bc6e7ca
--- /dev/null
+++ b/docs/_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/docs/_configs/Besder-POE-720P.md b/docs/_configs/Besder-POE-720P.md
new file mode 100644
index 00000000..b4a3a5f0
--- /dev/null
+++ b/docs/_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/docs/_configs/Blue-Iris-2.md b/docs/_configs/Blue-Iris-2.md
new file mode 100644
index 00000000..825c1b38
--- /dev/null
+++ b/docs/_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/docs/_configs/Blue-Iris.md b/docs/_configs/Blue-Iris.md
new file mode 100644
index 00000000..87793a01
--- /dev/null
+++ b/docs/_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/docs/_configs/Bosch-Security-Cameras.md b/docs/_configs/Bosch-Security-Cameras.md
new file mode 100644
index 00000000..9b6f7200
--- /dev/null
+++ b/docs/_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/docs/_configs/CNB-IVP4030VR.md b/docs/_configs/CNB-IVP4030VR.md
new file mode 100644
index 00000000..b9c9995f
--- /dev/null
+++ b/docs/_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/docs/_configs/D-Link-930L.md b/docs/_configs/D-Link-930L.md
new file mode 100644
index 00000000..fe3af1a5
--- /dev/null
+++ b/docs/_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/docs/_configs/D-Link-932L.md b/docs/_configs/D-Link-932L.md
new file mode 100644
index 00000000..9e478068
--- /dev/null
+++ b/docs/_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/docs/_configs/D-Link-934L.md b/docs/_configs/D-Link-934L.md
new file mode 100644
index 00000000..00361062
--- /dev/null
+++ b/docs/_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/docs/_configs/D-Link-936L.md b/docs/_configs/D-Link-936L.md
new file mode 100644
index 00000000..6ba7a7f6
--- /dev/null
+++ b/docs/_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/docs/_configs/D-Link-DCS-1130.md b/docs/_configs/D-Link-DCS-1130.md
new file mode 100644
index 00000000..805925e6
--- /dev/null
+++ b/docs/_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/docs/_configs/D-Link-DCS-2332L-DCS-2330L.md b/docs/_configs/D-Link-DCS-2332L-DCS-2330L.md
new file mode 100644
index 00000000..c80f5fa5
--- /dev/null
+++ b/docs/_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/docs/_configs/D-Link-DCS-5222LB1.md b/docs/_configs/D-Link-DCS-5222LB1.md
new file mode 100644
index 00000000..a47770bc
--- /dev/null
+++ b/docs/_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/docs/_configs/D-Link-DCS-933L.md b/docs/_configs/D-Link-DCS-933L.md
new file mode 100644
index 00000000..5fab34d7
--- /dev/null
+++ b/docs/_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/docs/_configs/D-Link-DCS-942L.md b/docs/_configs/D-Link-DCS-942L.md
new file mode 100644
index 00000000..9779de36
--- /dev/null
+++ b/docs/_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/docs/_configs/DBPOWER-MEYE-155303-FBACE.md b/docs/_configs/DBPOWER-MEYE-155303-FBACE.md
new file mode 100644
index 00000000..12bb85f1
--- /dev/null
+++ b/docs/_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/docs/_configs/Dahua-DH-SD22204T-GN.md b/docs/_configs/Dahua-DH-SD22204T-GN.md
new file mode 100644
index 00000000..8d190d9f
--- /dev/null
+++ b/docs/_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/docs/_configs/Dahua-IPC-A35.md b/docs/_configs/Dahua-IPC-A35.md
new file mode 100644
index 00000000..a494abfd
--- /dev/null
+++ b/docs/_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/docs/_configs/Dahua-IPC-HFW1320S-W.md b/docs/_configs/Dahua-IPC-HFW1320S-W.md
new file mode 100644
index 00000000..4ebb3702
--- /dev/null
+++ b/docs/_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/docs/_configs/Dahua-N41C2P2-NVR.md b/docs/_configs/Dahua-N41C2P2-NVR.md
new file mode 100644
index 00000000..8fa36d1b
--- /dev/null
+++ b/docs/_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/docs/_configs/Digoo-BB-M1X.md b/docs/_configs/Digoo-BB-M1X.md
new file mode 100644
index 00000000..1993b36d
--- /dev/null
+++ b/docs/_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/docs/_configs/Digoo-DG-W02F.md b/docs/_configs/Digoo-DG-W02F.md
new file mode 100644
index 00000000..c7238a33
--- /dev/null
+++ b/docs/_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/docs/_configs/Doorbird-Video-Doorbell-Basic.md b/docs/_configs/Doorbird-Video-Doorbell-Basic.md
new file mode 100644
index 00000000..736ffdb4
--- /dev/null
+++ b/docs/_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/docs/_configs/Doorbird-Video-Doorbell-Full.md b/docs/_configs/Doorbird-Video-Doorbell-Full.md
new file mode 100644
index 00000000..3c1c968a
--- /dev/null
+++ b/docs/_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/docs/_configs/ESP32-Cam-Module.md b/docs/_configs/ESP32-Cam-Module.md
new file mode 100644
index 00000000..3a9b2117
--- /dev/null
+++ b/docs/_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/docs/_configs/EZVIZ-C1C-720P.md b/docs/_configs/EZVIZ-C1C-720P.md
new file mode 100644
index 00000000..253d5b87
--- /dev/null
+++ b/docs/_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/docs/_configs/EZVIZ-C8T-C8C.md b/docs/_configs/EZVIZ-C8T-C8C.md
new file mode 100644
index 00000000..a8189660
--- /dev/null
+++ b/docs/_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/docs/_configs/EZVIZ-Mini-Plus.md b/docs/_configs/EZVIZ-Mini-Plus.md
new file mode 100644
index 00000000..161cf024
--- /dev/null
+++ b/docs/_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/docs/_configs/EzViz-C3-Husky.md b/docs/_configs/EzViz-C3-Husky.md
new file mode 100644
index 00000000..1b37ac63
--- /dev/null
+++ b/docs/_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/docs/_configs/EzViz-C3X.md b/docs/_configs/EzViz-C3X.md
new file mode 100644
index 00000000..587d4555
--- /dev/null
+++ b/docs/_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/docs/_configs/Flashforge-Adventurer-3.md b/docs/_configs/Flashforge-Adventurer-3.md
new file mode 100644
index 00000000..7884cc60
--- /dev/null
+++ b/docs/_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/docs/_configs/Foscam-DBW5.md b/docs/_configs/Foscam-DBW5.md
new file mode 100644
index 00000000..5b6e0471
--- /dev/null
+++ b/docs/_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/docs/_configs/Foscam-FI8910W.md b/docs/_configs/Foscam-FI8910W.md
new file mode 100644
index 00000000..08b5222d
--- /dev/null
+++ b/docs/_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/docs/_configs/Foscam-FI9900EP-FI9826P.md b/docs/_configs/Foscam-FI9900EP-FI9826P.md
new file mode 100644
index 00000000..e1b97227
--- /dev/null
+++ b/docs/_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/docs/_configs/Foscam-FosBaby.md b/docs/_configs/Foscam-FosBaby.md
new file mode 100644
index 00000000..e172f73b
--- /dev/null
+++ b/docs/_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/docs/_configs/Foscam-IQ200.md b/docs/_configs/Foscam-IQ200.md
new file mode 100644
index 00000000..a99c2116
--- /dev/null
+++ b/docs/_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/docs/_configs/Foscam-R2.md b/docs/_configs/Foscam-R2.md
new file mode 100644
index 00000000..1e91ff69
--- /dev/null
+++ b/docs/_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/docs/_configs/Foscam-R2C.md b/docs/_configs/Foscam-R2C.md
new file mode 100644
index 00000000..621d26df
--- /dev/null
+++ b/docs/_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/docs/_configs/G.Craftsman-5Mp-H.265.md b/docs/_configs/G.Craftsman-5Mp-H.265.md
new file mode 100644
index 00000000..4185bcfe
--- /dev/null
+++ b/docs/_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/docs/_configs/H.View-HV-E800A.md b/docs/_configs/H.View-HV-E800A.md
new file mode 100644
index 00000000..36c50c39
--- /dev/null
+++ b/docs/_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/docs/_configs/Hikam-S5.md b/docs/_configs/Hikam-S5.md
new file mode 100644
index 00000000..820c0478
--- /dev/null
+++ b/docs/_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/docs/_configs/Hikvision-DS-2CD2423G0-IW.md b/docs/_configs/Hikvision-DS-2CD2423G0-IW.md
new file mode 100644
index 00000000..f74e6f12
--- /dev/null
+++ b/docs/_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/docs/_configs/Hikvision-DS-2CD2542FWD-I.md b/docs/_configs/Hikvision-DS-2CD2542FWD-I.md
new file mode 100644
index 00000000..0fbea03e
--- /dev/null
+++ b/docs/_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/docs/_configs/Hikvision-DS-2CD2T22WD-I5-and-DS-2CD2322WD-I.md b/docs/_configs/Hikvision-DS-2CD2T22WD-I5-and-DS-2CD2322WD-I.md
new file mode 100644
index 00000000..14c34195
--- /dev/null
+++ b/docs/_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/docs/_configs/IP-Webcam-App.md b/docs/_configs/IP-Webcam-App.md
new file mode 100644
index 00000000..d7abae14
--- /dev/null
+++ b/docs/_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/docs/_configs/IP-Webcam.md b/docs/_configs/IP-Webcam.md
new file mode 100644
index 00000000..39d5669e
--- /dev/null
+++ b/docs/_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/docs/_configs/IeGeek-IP-camera.md b/docs/_configs/IeGeek-IP-camera.md
new file mode 100644
index 00000000..c7588826
--- /dev/null
+++ b/docs/_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/docs/_configs/Instar-IN-9008.md b/docs/_configs/Instar-IN-9008.md
new file mode 100644
index 00000000..65fad4e0
--- /dev/null
+++ b/docs/_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/docs/_configs/Insteon-2864-2xx.md b/docs/_configs/Insteon-2864-2xx.md
new file mode 100644
index 00000000..14be96a5
--- /dev/null
+++ b/docs/_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/docs/_configs/Intelbras-im3.md b/docs/_configs/Intelbras-im3.md
new file mode 100644
index 00000000..d8326a8c
--- /dev/null
+++ b/docs/_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/docs/_configs/Jawa-Z_22047.md b/docs/_configs/Jawa-Z_22047.md
new file mode 100644
index 00000000..fb04a10a
--- /dev/null
+++ b/docs/_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/docs/_configs/LaView-LV-PTK66802.md b/docs/_configs/LaView-LV-PTK66802.md
new file mode 100644
index 00000000..a529e062
--- /dev/null
+++ b/docs/_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/docs/_configs/Logitech-C270-webcam.md b/docs/_configs/Logitech-C270-webcam.md
new file mode 100644
index 00000000..90c5d5d3
--- /dev/null
+++ b/docs/_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/docs/_configs/Logitech-C525-USB-camera.md b/docs/_configs/Logitech-C525-USB-camera.md
new file mode 100644
index 00000000..27409641
--- /dev/null
+++ b/docs/_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/docs/_configs/Logitech-HD-Pro-Webcam-C920-2.md b/docs/_configs/Logitech-HD-Pro-Webcam-C920-2.md
new file mode 100644
index 00000000..dc8da78f
--- /dev/null
+++ b/docs/_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/docs/_configs/Logitech-HD-Pro-Webcam-C920.md b/docs/_configs/Logitech-HD-Pro-Webcam-C920.md
new file mode 100644
index 00000000..34c3dbe9
--- /dev/null
+++ b/docs/_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/docs/_configs/Lorex-LHV2008.md b/docs/_configs/Lorex-LHV2008.md
new file mode 100644
index 00000000..9d415d84
--- /dev/null
+++ b/docs/_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/docs/_configs/Maygion-H264-IPCam.md b/docs/_configs/Maygion-H264-IPCam.md
new file mode 100644
index 00000000..010f40ca
--- /dev/null
+++ b/docs/_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/docs/_configs/Mobotix-M24.md b/docs/_configs/Mobotix-M24.md
new file mode 100644
index 00000000..cc2c867b
--- /dev/null
+++ b/docs/_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/docs/_configs/MotionEyeOS.md b/docs/_configs/MotionEyeOS.md
new file mode 100644
index 00000000..fb44b212
--- /dev/null
+++ b/docs/_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/docs/_configs/Night-Owl-2.W.md b/docs/_configs/Night-Owl-2.W.md
new file mode 100644
index 00000000..af0dc596
--- /dev/null
+++ b/docs/_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/docs/_configs/Pelco-cameras.md b/docs/_configs/Pelco-cameras.md
new file mode 100644
index 00000000..96d664a8
--- /dev/null
+++ b/docs/_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/docs/_configs/Pi-Camera-V2.md b/docs/_configs/Pi-Camera-V2.md
new file mode 100644
index 00000000..99725fe9
--- /dev/null
+++ b/docs/_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/docs/_configs/ROCAM-NC400HD.md b/docs/_configs/ROCAM-NC400HD.md
new file mode 100644
index 00000000..14a34800
--- /dev/null
+++ b/docs/_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/docs/_configs/Raspberry-Pi-Camera-Module-V2.md b/docs/_configs/Raspberry-Pi-Camera-Module-V2.md
new file mode 100644
index 00000000..78b7e651
--- /dev/null
+++ b/docs/_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/docs/_configs/Raspberry-Pi-Camera-Module-v2-with-Restreamer.md b/docs/_configs/Raspberry-Pi-Camera-Module-v2-with-Restreamer.md
new file mode 100644
index 00000000..f98507cb
--- /dev/null
+++ b/docs/_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/docs/_configs/Raspberry-Pi-HQ-Camera.md b/docs/_configs/Raspberry-Pi-HQ-Camera.md
new file mode 100644
index 00000000..c5b876f8
--- /dev/null
+++ b/docs/_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/docs/_configs/Raspberry-Pi-NoIR-Camera.md b/docs/_configs/Raspberry-Pi-NoIR-Camera.md
new file mode 100644
index 00000000..45d497d8
--- /dev/null
+++ b/docs/_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/docs/_configs/Raspberry-Pi-camera-v1.3.md b/docs/_configs/Raspberry-Pi-camera-v1.3.md
new file mode 100644
index 00000000..feaa6579
--- /dev/null
+++ b/docs/_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/docs/_configs/Raspberry-Pi-with-Camera-Module.md b/docs/_configs/Raspberry-Pi-with-Camera-Module.md
new file mode 100644
index 00000000..99595660
--- /dev/null
+++ b/docs/_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/docs/_configs/ReoLink-RLC-410.md b/docs/_configs/ReoLink-RLC-410.md
new file mode 100644
index 00000000..07aca6cb
--- /dev/null
+++ b/docs/_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/docs/_configs/ReoLink-RLC-422.md b/docs/_configs/ReoLink-RLC-422.md
new file mode 100644
index 00000000..9c1dfb5c
--- /dev/null
+++ b/docs/_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/docs/_configs/Reolink-RLC-410W.md b/docs/_configs/Reolink-RLC-410W.md
new file mode 100644
index 00000000..845aa378
--- /dev/null
+++ b/docs/_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/docs/_configs/Reolink-camera.md b/docs/_configs/Reolink-camera.md
new file mode 100644
index 00000000..e3033328
--- /dev/null
+++ b/docs/_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/docs/_configs/Samsung-SNH-P6410BN.md b/docs/_configs/Samsung-SNH-P6410BN.md
new file mode 100644
index 00000000..1be9fec8
--- /dev/null
+++ b/docs/_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/docs/_configs/Sannce-1080P-IP-Cameras.md b/docs/_configs/Sannce-1080P-IP-Cameras.md
new file mode 100644
index 00000000..7b9a0dc3
--- /dev/null
+++ b/docs/_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/docs/_configs/SecuritySpy.md b/docs/_configs/SecuritySpy.md
new file mode 100644
index 00000000..bf1f9aef
--- /dev/null
+++ b/docs/_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/docs/_configs/Sercomm-OC810.md b/docs/_configs/Sercomm-OC810.md
new file mode 100644
index 00000000..4780f891
--- /dev/null
+++ b/docs/_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/docs/_configs/Sercomm-iCamera2.md b/docs/_configs/Sercomm-iCamera2.md
new file mode 100644
index 00000000..5d252fcd
--- /dev/null
+++ b/docs/_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/docs/_configs/Synology-Surveillance-Station-2.md b/docs/_configs/Synology-Surveillance-Station-2.md
new file mode 100644
index 00000000..37446555
--- /dev/null
+++ b/docs/_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/docs/_configs/Synology-Surveillance-Station.md b/docs/_configs/Synology-Surveillance-Station.md
new file mode 100644
index 00000000..94afc8c7
--- /dev/null
+++ b/docs/_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/docs/_configs/Szsinocam-ip-onvif.md b/docs/_configs/Szsinocam-ip-onvif.md
new file mode 100644
index 00000000..173a1c1c
--- /dev/null
+++ b/docs/_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/docs/_configs/TP-Link-C100.md b/docs/_configs/TP-Link-C100.md
new file mode 100644
index 00000000..599beabe
--- /dev/null
+++ b/docs/_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/docs/_configs/TP-Link-C200.md b/docs/_configs/TP-Link-C200.md
new file mode 100644
index 00000000..c32a1273
--- /dev/null
+++ b/docs/_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/docs/_configs/TP-Link-NC230-and-NC250.md b/docs/_configs/TP-Link-NC230-and-NC250.md
new file mode 100644
index 00000000..bb10ac45
--- /dev/null
+++ b/docs/_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/docs/_configs/TP-Link-Tapo-C200.md b/docs/_configs/TP-Link-Tapo-C200.md
new file mode 100644
index 00000000..4facc6b0
--- /dev/null
+++ b/docs/_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/docs/_configs/TP-Link-Tapo-C310.md b/docs/_configs/TP-Link-Tapo-C310.md
new file mode 100644
index 00000000..31bf3ab2
--- /dev/null
+++ b/docs/_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/docs/_configs/Techage-2MP-PoE-NVR.md b/docs/_configs/Techage-2MP-PoE-NVR.md
new file mode 100644
index 00000000..398369e1
--- /dev/null
+++ b/docs/_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/docs/_configs/ThomView-DSC-725S.md b/docs/_configs/ThomView-DSC-725S.md
new file mode 100644
index 00000000..a2a24dfe
--- /dev/null
+++ b/docs/_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/docs/_configs/Toadi-Automatic-Mower.md b/docs/_configs/Toadi-Automatic-Mower.md
new file mode 100644
index 00000000..dc217c0f
--- /dev/null
+++ b/docs/_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/docs/_configs/UNV-Uniview.md b/docs/_configs/UNV-Uniview.md
new file mode 100644
index 00000000..463b8cfe
--- /dev/null
+++ b/docs/_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/docs/_configs/Ubiquiti-AirCam.md b/docs/_configs/Ubiquiti-AirCam.md
new file mode 100644
index 00000000..695694dc
--- /dev/null
+++ b/docs/_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/docs/_configs/Ubiquiti-UVC-G3.md b/docs/_configs/Ubiquiti-UVC-G3.md
new file mode 100644
index 00000000..c271af75
--- /dev/null
+++ b/docs/_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/docs/_configs/UniFi-Video-G3-Micro.md b/docs/_configs/UniFi-Video-G3-Micro.md
new file mode 100644
index 00000000..87f56e7c
--- /dev/null
+++ b/docs/_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/docs/_configs/V380-Cloudcam.md b/docs/_configs/V380-Cloudcam.md
new file mode 100644
index 00000000..452c4a53
--- /dev/null
+++ b/docs/_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/docs/_configs/VESKYS-720P-Tilt-Pan.md b/docs/_configs/VESKYS-720P-Tilt-Pan.md
new file mode 100644
index 00000000..22526e9b
--- /dev/null
+++ b/docs/_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/docs/_configs/Vivint-Doorbell-Camera-Pro.md b/docs/_configs/Vivint-Doorbell-Camera-Pro.md
new file mode 100644
index 00000000..70478f87
--- /dev/null
+++ b/docs/_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/docs/_configs/Vivotek-CC-8130.md b/docs/_configs/Vivotek-CC-8130.md
new file mode 100644
index 00000000..060c8a57
--- /dev/null
+++ b/docs/_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/docs/_configs/Vstarcam-C7824WIP.md b/docs/_configs/Vstarcam-C7824WIP.md
new file mode 100644
index 00000000..c601df00
--- /dev/null
+++ b/docs/_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/docs/_configs/WaveShare-RPi-Camera.md b/docs/_configs/WaveShare-RPi-Camera.md
new file mode 100644
index 00000000..cb7d954c
--- /dev/null
+++ b/docs/_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/docs/_configs/Wyze-Cam-Pan-V1.md b/docs/_configs/Wyze-Cam-Pan-V1.md
new file mode 100644
index 00000000..c758be17
--- /dev/null
+++ b/docs/_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/docs/_configs/Wyze-Cam-v2-and-Pan.md b/docs/_configs/Wyze-Cam-v2-and-Pan.md
new file mode 100644
index 00000000..3506af74
--- /dev/null
+++ b/docs/_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/docs/_configs/Wyze-Cam-v3.md b/docs/_configs/Wyze-Cam-v3.md
new file mode 100644
index 00000000..0825325f
--- /dev/null
+++ b/docs/_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/docs/_configs/WyzeCam-V2.md b/docs/_configs/WyzeCam-V2.md
new file mode 100644
index 00000000..b873d681
--- /dev/null
+++ b/docs/_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/docs/_configs/WyzeCam.md b/docs/_configs/WyzeCam.md
new file mode 100644
index 00000000..e581780e
--- /dev/null
+++ b/docs/_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/docs/_configs/Wyzecam-V1.md b/docs/_configs/Wyzecam-V1.md
new file mode 100644
index 00000000..a69f0c7b
--- /dev/null
+++ b/docs/_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/docs/_configs/Wyzecam-V2-2.md b/docs/_configs/Wyzecam-V2-2.md
new file mode 100644
index 00000000..079885b6
--- /dev/null
+++ b/docs/_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/docs/_configs/Xiaomi-Dafang.md b/docs/_configs/Xiaomi-Dafang.md
new file mode 100644
index 00000000..51e92e7a
--- /dev/null
+++ b/docs/_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/docs/_configs/Xiaomi-Xiaofang-1S.md b/docs/_configs/Xiaomi-Xiaofang-1S.md
new file mode 100644
index 00000000..eab9d2cf
--- /dev/null
+++ b/docs/_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/docs/_configs/Xiaomi-Xiaofang.md b/docs/_configs/Xiaomi-Xiaofang.md
new file mode 100644
index 00000000..2c28ecb6
--- /dev/null
+++ b/docs/_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/docs/_configs/Y-cam-Cameras.md b/docs/_configs/Y-cam-Cameras.md
new file mode 100644
index 00000000..943515ec
--- /dev/null
+++ b/docs/_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/docs/_configs/ZNV-ZDIE-2121W-N3T-A.md b/docs/_configs/ZNV-ZDIE-2121W-N3T-A.md
new file mode 100644
index 00000000..c9654484
--- /dev/null
+++ b/docs/_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/docs/_configs/Zoneminder.md b/docs/_configs/Zoneminder.md
new file mode 100644
index 00000000..5bd737d5
--- /dev/null
+++ b/docs/_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/docs/_configs/eufy-Security-eufyCam.md b/docs/_configs/eufy-Security-eufyCam.md
new file mode 100644
index 00000000..cf61ea4b
--- /dev/null
+++ b/docs/_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/docs/_configs/iPCamera.md b/docs/_configs/iPCamera.md
new file mode 100644
index 00000000..b8c9fe51
--- /dev/null
+++ b/docs/_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/docs/_configs/ihoumi-AJ-Cloud-camera.md b/docs/_configs/ihoumi-AJ-Cloud-camera.md
new file mode 100644
index 00000000..1c9dd847
--- /dev/null
+++ b/docs/_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/docs/_configs/macOS-Screen.md b/docs/_configs/macOS-Screen.md
new file mode 100644
index 00000000..5c4c8a41
--- /dev/null
+++ b/docs/_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/docs/_layouts/config.md b/docs/_layouts/config.md
new file mode 100644
index 00000000..03ada3a6
--- /dev/null
+++ b/docs/_layouts/config.md
@@ -0,0 +1,15 @@
+---
+layout: default
+---
+
+
diff --git a/docs/assets/homebridge-color-round.svg b/docs/assets/homebridge-color-round.svg
new file mode 100644
index 00000000..f5be08c5
--- /dev/null
+++ b/docs/assets/homebridge-color-round.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/assets/iOS-13-Switch-Automation-Example.png b/docs/assets/iOS-13-Switch-Automation-Example.png
new file mode 100644
index 00000000..e78d21b9
Binary files /dev/null and b/docs/assets/iOS-13-Switch-Automation-Example.png differ
diff --git a/docs/automation.md b/docs/automation.md
new file mode 100644
index 00000000..44cc0dbb
--- /dev/null
+++ b/docs/automation.md
@@ -0,0 +1,12 @@
+---
+layout: page
+title: Motion
+permalink: /automation/
+---
+There are various ways to trigger the motion sensor or doorbell that can be exposed by Homebridge Camera FFmpeg. Here are some guides on using each of them.
+
+{% assign collection = site.automation | sort:"order" %}
+
+{% for automation in collection %}
++ [{{ automation.title }}]({{ site.baseurl }}{{ automation.url }}){% if automation.comment %}
+*{{ automation.comment }}*{% endif %}{% endfor %}
diff --git a/docs/configs.md b/docs/configs.md
new file mode 100644
index 00000000..4d9f4247
--- /dev/null
+++ b/docs/configs.md
@@ -0,0 +1,18 @@
+---
+layout: page
+title: Configurations
+permalink: /configs/
+---
+iSpyConnect [maintains a large database](https://www.ispyconnect.com/sources.aspx) of camera manufacturers, supported methods (MJPEG, FFMPEG, RTSP), and the necessary URLs for accessing video, audio, and stills. If you don’t know that information, iSpyConnect is a great place to start.
+
+If you want to share a configuration you have tested, submit a [Tested Configuration Issue](https://github.com/Sunoo/homebridge-camera-ffmpeg/issues/new?assignees=&labels=tested+config&template=tested_config.md) and it will be added to this list shortly.
+
+Keep in mind that many configs on this site were written for older versions of the plugin, and may require tweaks for the current version. Also, while many of these configs use the `-re` setting in the source, the FFmpeg developers recommend against using that for live sources, so I'd suggest first trying without that set. If you have any updates for any of these configs, please open an issue on the GitHub page.
+
+Users have submitted {{ site.configs | size }} configurations:
+
+{% assign collection = site.configs | sort_natural:"title" %}
+
+{% for config in collection %}
++ [{{ config.title }}]({{ site.baseurl }}{{ config.url }}){% if config.comment %}
+*{{ config.comment }}*{% endif %}{% endfor %}
diff --git a/docs/index.md b/docs/index.md
new file mode 100644
index 00000000..e0a96aca
--- /dev/null
+++ b/docs/index.md
@@ -0,0 +1,14 @@
+---
+layout: page
+---
+
+
+
+
+# Homebridge Camera FFmpeg
+
+[ ](https://www.npmjs.com/package/homebridge-camera-ffmpeg) [](https://github.com/homebridge/homebridge/wiki/Verified-Plugins)
+
+[Homebridge](https://homebridge.io) Plugin Providing [FFmpeg](https://www.ffmpeg.org)-based Camera Support
+
+
diff --git a/docs/serve-local.sh b/docs/serve-local.sh
new file mode 100755
index 00000000..42fdae69
--- /dev/null
+++ b/docs/serve-local.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+jekyll serve --host=0.0.0.0 --baseurl="" --watch
diff --git a/package-lock.json b/package-lock.json
index a744f6e5..d36fb90d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "@homebridge-plugins/homebridge-camera-ffmpeg",
- "version": "4.0.1",
+ "version": "4.1.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@homebridge-plugins/homebridge-camera-ffmpeg",
- "version": "4.0.1",
+ "version": "4.1.0",
"funding": [
{
"type": "kofi",
diff --git a/package.json b/package.json
index 2f391ce5..258196c2 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
"name": "@homebridge-plugins/homebridge-camera-ffmpeg",
"displayName": "Homebridge Camera FFmpeg",
"type": "module",
- "version": "4.0.1",
+ "version": "4.1.0",
"description": "Homebridge Plugin Providing FFmpeg-based Camera Support",
"author": {
"name": "Khaos Tian"
@@ -75,12 +75,14 @@
"watch": "npm run build && npm run plugin-ui && npm link && nodemon",
"plugin-ui": "rsync ./src/homebridge-ui/public/index.html ./dist/homebridge-ui/public/",
"build": "npm run clean && tsc && npm run plugin-ui",
- "prepublishOnly": "npm run lint && npm run build && npm run plugin-ui",
+ "prepublishOnly": "npm run lint && npm run build && npm run plugin-ui && npm run docs && npm run docs:lint",
"postpublish": "npm run clean && npm ci",
"clean": "shx rm -rf ./dist",
"test": "vitest run",
"test:watch": "vitest watch",
- "test-coverage": "npm run test -- --coverage"
+ "test-coverage": "npm run test -- --coverage",
+ "docs": "typedoc",
+ "docs:lint": "typedoc --emit none --treatWarningsAsErrors"
},
"dependencies": {
"@homebridge/camera-utils": "^3.0.0",
diff --git a/typedoc.json b/typedoc.json
new file mode 100644
index 00000000..9eb45d73
--- /dev/null
+++ b/typedoc.json
@@ -0,0 +1,17 @@
+{
+ "out": "docs",
+ "exclude": ["src/**/*.spec.ts"],
+ "entryPoints": [
+ "src/index.ts"
+ ],
+ "excludePrivate": true,
+ "excludeProtected": true,
+ "excludeExternals": true,
+ "hideGenerator": true,
+ "includeVersion": false,
+ "validation": {
+ "invalidLink": true,
+ "notExported": false
+ },
+ "inlineTags": ["@link", "@see"]
+}