From 51e03b7f41cb4262607a0aa5c365f9bee779b368 Mon Sep 17 00:00:00 2001 From: David Maher Date: Mon, 27 Jul 2020 22:46:22 -0400 Subject: [PATCH 01/38] Initial version --- .eslintrc.js | 39 +++ .github/FUNDING.yml | 4 + .github/ISSUE_TEMPLATE/bug_report.md | 49 +++ .github/ISSUE_TEMPLATE/config.yml | 5 + .github/ISSUE_TEMPLATE/feature_request.md | 23 ++ .github/ISSUE_TEMPLATE/support-request.md | 43 +++ .github/dependabot.yml | 15 + .github/workflows/nodejs.yml | 50 +++ .github/workflows/prerelease.js | 26 ++ .github/workflows/publish-beta.yml | 41 +++ .github/workflows/stale.yml | 27 ++ .gitignore | 39 +++ .gitignore.1 | 4 + .markdownlint.json | 5 + 404.html | 24 ++ Gemfile | 34 ++ Gemfile.lock | 256 +++++++++++++++ _config.yml | 14 + _configs/Alptop-AT-200B.md | 23 ++ _configs/Amcrest IP3M-HX2W.md | 30 ++ _configs/Amcrest-IP2M-841.md | 26 ++ _configs/Amcrest-IP4M-1026.md | 35 ++ _configs/Amcrest-IPM-HX1B.md | 25 ++ _configs/Anran-DVR.md | 40 +++ _configs/August-Doorbell-Cam-Version-1.md | 32 ++ _configs/Avtech-AVM542B.md | 22 ++ _configs/Avtech-MDR751B-DVR.md | 18 ++ _configs/Axis-M3024-L.md | 26 ++ _configs/Blue-Iris.md | 32 ++ _configs/CNB-IVP4030VR.md | 32 ++ _configs/D-Link-930L.md | 21 ++ _configs/D-Link-932L.md | 21 ++ _configs/D-Link-934L.md | 21 ++ _configs/D-Link-936L.md | 22 ++ _configs/D-Link-DCS-2332L-DCS-2330L.md | 33 ++ _configs/D-Link-DCS-5222LB1.md | 32 ++ _configs/DBPOWER-MEYE-155303-FBACE.md | 28 ++ _configs/Dahua-IPC-A35.md | 28 ++ _configs/Dahua-IPC-HFW1320S-W.md | 26 ++ _configs/Digoo-DG-W02F.md | 26 ++ _configs/Doorbird-Video-Doorbell-Basic.md | 26 ++ _configs/Doorbird-Video-Doorbell-Full.md | 27 ++ _configs/ESP32-Cam-Module.md | 33 ++ _configs/EZVIZ-C1C-720P.md | 27 ++ _configs/EZVIZ-Mini-Plus.md | 31 ++ _configs/Foscam-FI8910W.md | 24 ++ _configs/Foscam-FI9900EP-FI9826P.md | 39 +++ _configs/Foscam-IQ200.md | 26 ++ _configs/Foscam-R2.md | 24 ++ _configs/Hikam-S5.md | 9 + _configs/IP-Webcam-App.md | 25 ++ _configs/IP-Webcam.md | 33 ++ _configs/IeGeek-IP-camera.md | 28 ++ _configs/Logitech-C525-USB-camera.md | 28 ++ _configs/Logitech-HD-Pro-Webcam-C920-2.md | 43 +++ _configs/Logitech-HD-Pro-Webcam-C920.md | 27 ++ _configs/Lorex-LHV2008.md | 29 ++ _configs/Maygion-H264-IPCam.md | 28 ++ _configs/Mobotix-M24.md | 25 ++ _configs/MotionEyeOS.md | 24 ++ _configs/Pelco-cameras.md | 28 ++ _configs/Pi-Camera-V2.md | 27 ++ _configs/ROCAM-NC400HD.md | 27 ++ _configs/Raspberry-Pi-Camera-Module-V2.md | 33 ++ _configs/Raspberry-Pi-camera-v1.3.md | 59 ++++ _configs/ReoLink-Camera-RLC-410.md | 27 ++ _configs/ReoLink-RLC-422.md | 31 ++ _configs/Reolink-RLC-410W.md | 30 ++ _configs/Reolink-camera.md | 171 ++++++++++ _configs/Samsung-SNH-P6410BN.md | 44 +++ _configs/Sannce-1080P-IP-Cameras.md | 31 ++ _configs/SecuritySpy.md | 38 +++ _configs/Synology-Surveillance-Station-2.md | 31 ++ _configs/Synology-Surveillance-Station.md | 26 ++ _configs/Szsinocam-ip-onvif.md | 26 ++ _configs/TP-Link-C100.md | 34 ++ _configs/TP-Link-C200.md | 35 ++ _configs/UNV-Uniview.md | 45 +++ _configs/Ubiquiti-AirCam.md | 30 ++ _configs/Ubiquiti-UVC-G3.md | 26 ++ _configs/UniFi-Video-G3-Micro.md | 30 ++ _configs/V380-Cloudcam.md | 42 +++ _configs/VESKYS-720P-Tilt-Pan.md | 26 ++ _configs/Vivotek-CC-8130.md | 38 +++ _configs/Vstarcam-C7824WIP.md | 23 ++ _configs/WaveShare-RPi-Camera.md | 153 +++++++++ _configs/WyzeCam-V2.md | 24 ++ _configs/Wyzecam-V1.md | 31 ++ _configs/Xiaomi-Dafang.md | 33 ++ _configs/Xiaomi-Xiaofang-1S.md | 33 ++ _configs/Xiaomi-Xiaofang.md | 30 ++ _configs/Y-cam-Cameras.md | 39 +++ _configs/ZNV-ZDIE-2121W-N3T-A.md | 33 ++ _configs/Zoneminder.md | 22 ++ _configs/eufy-Security-eufyCam.md | 34 ++ _layouts/config.md | 6 + _site/404.html | 84 +++++ _site/assets/main.css | 196 +++++++++++ _site/assets/minima-social-icons.svg | 33 ++ _site/configs/Alptop-AT-200B.html | 89 +++++ _site/configs/Amcrest IP3M-HX2W.html | 95 ++++++ _site/configs/Amcrest-IP2M-841.html | 90 ++++++ _site/configs/Amcrest-IP4M-1026.html | 99 ++++++ _site/configs/Amcrest-IPM-HX1B.html | 88 +++++ _site/configs/Anran-DVR.html | 103 ++++++ .../August-Doorbell-Cam-Version-1.html | 96 ++++++ _site/configs/Avtech-AVM542B.html | 86 +++++ _site/configs/Avtech-MDR751B-DVR.html | 82 +++++ _site/configs/Axis-M3024-L.html | 89 +++++ _site/configs/Blue-Iris.html | 98 ++++++ _site/configs/CNB-IVP4030VR.html | 95 ++++++ _site/configs/D-Link-930L.html | 85 +++++ _site/configs/D-Link-932L.html | 85 +++++ _site/configs/D-Link-934L.html | 85 +++++ _site/configs/D-Link-936L.html | 86 +++++ _site/configs/D-Link-DCS-2332L-DCS-2330L.html | 101 ++++++ _site/configs/D-Link-DCS-5222LB1.html | 96 ++++++ _site/configs/DBPOWER-MEYE-155303-FBACE.html | 91 ++++++ _site/configs/Dahua-IPC-A35.html | 91 ++++++ _site/configs/Dahua-IPC-HFW1320S-W.html | 90 ++++++ _site/configs/Digoo-DG-W02F.html | 90 ++++++ .../Doorbird-Video-Doorbell-Basic.html | 89 +++++ .../configs/Doorbird-Video-Doorbell-Full.html | 90 ++++++ _site/configs/ESP32-Cam-Module.html | 97 ++++++ _site/configs/EZVIZ-C1C-720P.html | 91 ++++++ _site/configs/EZVIZ-Mini-Plus.html | 95 ++++++ _site/configs/Foscam-FI8910W.html | 88 +++++ _site/configs/Foscam-FI9900EP-FI9826P.html | 104 ++++++ _site/configs/Foscam-IQ200.html | 90 ++++++ _site/configs/Foscam-R2.html | 88 +++++ _site/configs/Hikam-S5.html | 75 +++++ _site/configs/IP-Webcam-App.html | 88 +++++ _site/configs/IP-Webcam.html | 97 ++++++ _site/configs/IeGeek-IP-camera.html | 91 ++++++ _site/configs/Logitech-C525-USB-camera.html | 91 ++++++ .../Logitech-HD-Pro-Webcam-C920-2.html | 106 ++++++ .../configs/Logitech-HD-Pro-Webcam-C920.html | 91 ++++++ _site/configs/Lorex-LHV2008.html | 93 ++++++ _site/configs/Maygion-H264-IPCam.html | 91 ++++++ _site/configs/Mobotix-M24.html | 88 +++++ _site/configs/MotionEyeOS.html | 88 +++++ _site/configs/Pelco-cameras.html | 92 ++++++ _site/configs/Pi-Camera-V2.html | 91 ++++++ _site/configs/ROCAM-NC400HD.html | 90 ++++++ .../Raspberry-Pi-Camera-Module-V2.html | 96 ++++++ _site/configs/Raspberry-Pi-camera-v1.3.html | 121 +++++++ _site/configs/ReoLink-Camera-RLC-410.html | 90 ++++++ _site/configs/ReoLink-RLC-422.html | 95 ++++++ _site/configs/Reolink-RLC-410W.html | 95 ++++++ _site/configs/Reolink-camera.html | 236 ++++++++++++++ _site/configs/Samsung-SNH-P6410BN.html | 107 ++++++ _site/configs/Sannce-1080P-IP-Cameras.html | 106 ++++++ _site/configs/SecuritySpy.html | 101 ++++++ .../Synology-Surveillance-Station-2.html | 95 ++++++ .../Synology-Surveillance-Station.html | 90 ++++++ _site/configs/Szsinocam-ip-onvif.html | 92 ++++++ _site/configs/TP-Link-C100.html | 98 ++++++ _site/configs/TP-Link-C200.html | 99 ++++++ _site/configs/UNV-Uniview.html | 108 +++++++ _site/configs/Ubiquiti-AirCam.html | 95 ++++++ _site/configs/Ubiquiti-UVC-G3.html | 90 ++++++ _site/configs/UniFi-Video-G3-Micro.html | 94 ++++++ _site/configs/V380-Cloudcam.html | 108 +++++++ _site/configs/VESKYS-720P-Tilt-Pan.html | 90 ++++++ _site/configs/Vivotek-CC-8130.html | 102 ++++++ _site/configs/Vstarcam-C7824WIP.html | 89 +++++ _site/configs/WaveShare-RPi-Camera.html | 214 ++++++++++++ _site/configs/WyzeCam-V2.html | 87 +++++ _site/configs/Wyzecam-V1.html | 94 ++++++ _site/configs/Xiaomi-Dafang.html | 96 ++++++ _site/configs/Xiaomi-Xiaofang-1S.html | 95 ++++++ _site/configs/Xiaomi-Xiaofang.html | 93 ++++++ _site/configs/Y-cam-Cameras.html | 105 ++++++ _site/configs/ZNV-ZDIE-2121W-N3T-A.html | 99 ++++++ _site/configs/Zoneminder.html | 86 +++++ _site/configs/eufy-Security-eufyCam.html | 100 ++++++ _site/contributing/index.html | 81 +++++ _site/feed.xml | 1 + _site/index.html | 305 ++++++++++++++++++ contributing.md | 10 + index.md | 13 + 181 files changed, 11452 insertions(+) create mode 100644 .eslintrc.js create mode 100644 .github/FUNDING.yml create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/ISSUE_TEMPLATE/support-request.md create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/nodejs.yml create mode 100644 .github/workflows/prerelease.js create mode 100644 .github/workflows/publish-beta.yml create mode 100644 .github/workflows/stale.yml create mode 100644 .gitignore create mode 100644 .gitignore.1 create mode 100644 .markdownlint.json create mode 100644 404.html create mode 100644 Gemfile create mode 100644 Gemfile.lock create mode 100644 _config.yml create mode 100644 _configs/Alptop-AT-200B.md create mode 100644 _configs/Amcrest IP3M-HX2W.md create mode 100644 _configs/Amcrest-IP2M-841.md create mode 100644 _configs/Amcrest-IP4M-1026.md create mode 100644 _configs/Amcrest-IPM-HX1B.md create mode 100644 _configs/Anran-DVR.md create mode 100644 _configs/August-Doorbell-Cam-Version-1.md create mode 100644 _configs/Avtech-AVM542B.md create mode 100644 _configs/Avtech-MDR751B-DVR.md create mode 100644 _configs/Axis-M3024-L.md create mode 100644 _configs/Blue-Iris.md create mode 100644 _configs/CNB-IVP4030VR.md create mode 100644 _configs/D-Link-930L.md create mode 100644 _configs/D-Link-932L.md create mode 100644 _configs/D-Link-934L.md create mode 100644 _configs/D-Link-936L.md create mode 100644 _configs/D-Link-DCS-2332L-DCS-2330L.md create mode 100644 _configs/D-Link-DCS-5222LB1.md create mode 100644 _configs/DBPOWER-MEYE-155303-FBACE.md create mode 100644 _configs/Dahua-IPC-A35.md create mode 100644 _configs/Dahua-IPC-HFW1320S-W.md create mode 100644 _configs/Digoo-DG-W02F.md create mode 100644 _configs/Doorbird-Video-Doorbell-Basic.md create mode 100644 _configs/Doorbird-Video-Doorbell-Full.md create mode 100644 _configs/ESP32-Cam-Module.md create mode 100644 _configs/EZVIZ-C1C-720P.md create mode 100644 _configs/EZVIZ-Mini-Plus.md create mode 100644 _configs/Foscam-FI8910W.md create mode 100644 _configs/Foscam-FI9900EP-FI9826P.md create mode 100644 _configs/Foscam-IQ200.md create mode 100644 _configs/Foscam-R2.md create mode 100644 _configs/Hikam-S5.md create mode 100644 _configs/IP-Webcam-App.md create mode 100644 _configs/IP-Webcam.md create mode 100644 _configs/IeGeek-IP-camera.md create mode 100644 _configs/Logitech-C525-USB-camera.md create mode 100644 _configs/Logitech-HD-Pro-Webcam-C920-2.md create mode 100644 _configs/Logitech-HD-Pro-Webcam-C920.md create mode 100644 _configs/Lorex-LHV2008.md create mode 100644 _configs/Maygion-H264-IPCam.md create mode 100644 _configs/Mobotix-M24.md create mode 100644 _configs/MotionEyeOS.md create mode 100644 _configs/Pelco-cameras.md create mode 100644 _configs/Pi-Camera-V2.md create mode 100644 _configs/ROCAM-NC400HD.md create mode 100644 _configs/Raspberry-Pi-Camera-Module-V2.md create mode 100644 _configs/Raspberry-Pi-camera-v1.3.md create mode 100644 _configs/ReoLink-Camera-RLC-410.md create mode 100644 _configs/ReoLink-RLC-422.md create mode 100644 _configs/Reolink-RLC-410W.md create mode 100644 _configs/Reolink-camera.md create mode 100644 _configs/Samsung-SNH-P6410BN.md create mode 100644 _configs/Sannce-1080P-IP-Cameras.md create mode 100644 _configs/SecuritySpy.md create mode 100644 _configs/Synology-Surveillance-Station-2.md create mode 100644 _configs/Synology-Surveillance-Station.md create mode 100644 _configs/Szsinocam-ip-onvif.md create mode 100644 _configs/TP-Link-C100.md create mode 100644 _configs/TP-Link-C200.md create mode 100644 _configs/UNV-Uniview.md create mode 100644 _configs/Ubiquiti-AirCam.md create mode 100644 _configs/Ubiquiti-UVC-G3.md create mode 100644 _configs/UniFi-Video-G3-Micro.md create mode 100644 _configs/V380-Cloudcam.md create mode 100644 _configs/VESKYS-720P-Tilt-Pan.md create mode 100644 _configs/Vivotek-CC-8130.md create mode 100644 _configs/Vstarcam-C7824WIP.md create mode 100644 _configs/WaveShare-RPi-Camera.md create mode 100644 _configs/WyzeCam-V2.md create mode 100644 _configs/Wyzecam-V1.md create mode 100644 _configs/Xiaomi-Dafang.md create mode 100644 _configs/Xiaomi-Xiaofang-1S.md create mode 100644 _configs/Xiaomi-Xiaofang.md create mode 100644 _configs/Y-cam-Cameras.md create mode 100644 _configs/ZNV-ZDIE-2121W-N3T-A.md create mode 100644 _configs/Zoneminder.md create mode 100644 _configs/eufy-Security-eufyCam.md create mode 100644 _layouts/config.md create mode 100644 _site/404.html create mode 100644 _site/assets/main.css create mode 100644 _site/assets/minima-social-icons.svg create mode 100644 _site/configs/Alptop-AT-200B.html create mode 100644 _site/configs/Amcrest IP3M-HX2W.html create mode 100644 _site/configs/Amcrest-IP2M-841.html create mode 100644 _site/configs/Amcrest-IP4M-1026.html create mode 100644 _site/configs/Amcrest-IPM-HX1B.html create mode 100644 _site/configs/Anran-DVR.html create mode 100644 _site/configs/August-Doorbell-Cam-Version-1.html create mode 100644 _site/configs/Avtech-AVM542B.html create mode 100644 _site/configs/Avtech-MDR751B-DVR.html create mode 100644 _site/configs/Axis-M3024-L.html create mode 100644 _site/configs/Blue-Iris.html create mode 100644 _site/configs/CNB-IVP4030VR.html create mode 100644 _site/configs/D-Link-930L.html create mode 100644 _site/configs/D-Link-932L.html create mode 100644 _site/configs/D-Link-934L.html create mode 100644 _site/configs/D-Link-936L.html create mode 100644 _site/configs/D-Link-DCS-2332L-DCS-2330L.html create mode 100644 _site/configs/D-Link-DCS-5222LB1.html create mode 100644 _site/configs/DBPOWER-MEYE-155303-FBACE.html create mode 100644 _site/configs/Dahua-IPC-A35.html create mode 100644 _site/configs/Dahua-IPC-HFW1320S-W.html create mode 100644 _site/configs/Digoo-DG-W02F.html create mode 100644 _site/configs/Doorbird-Video-Doorbell-Basic.html create mode 100644 _site/configs/Doorbird-Video-Doorbell-Full.html create mode 100644 _site/configs/ESP32-Cam-Module.html create mode 100644 _site/configs/EZVIZ-C1C-720P.html create mode 100644 _site/configs/EZVIZ-Mini-Plus.html create mode 100644 _site/configs/Foscam-FI8910W.html create mode 100644 _site/configs/Foscam-FI9900EP-FI9826P.html create mode 100644 _site/configs/Foscam-IQ200.html create mode 100644 _site/configs/Foscam-R2.html create mode 100644 _site/configs/Hikam-S5.html create mode 100644 _site/configs/IP-Webcam-App.html create mode 100644 _site/configs/IP-Webcam.html create mode 100644 _site/configs/IeGeek-IP-camera.html create mode 100644 _site/configs/Logitech-C525-USB-camera.html create mode 100644 _site/configs/Logitech-HD-Pro-Webcam-C920-2.html create mode 100644 _site/configs/Logitech-HD-Pro-Webcam-C920.html create mode 100644 _site/configs/Lorex-LHV2008.html create mode 100644 _site/configs/Maygion-H264-IPCam.html create mode 100644 _site/configs/Mobotix-M24.html create mode 100644 _site/configs/MotionEyeOS.html create mode 100644 _site/configs/Pelco-cameras.html create mode 100644 _site/configs/Pi-Camera-V2.html create mode 100644 _site/configs/ROCAM-NC400HD.html create mode 100644 _site/configs/Raspberry-Pi-Camera-Module-V2.html create mode 100644 _site/configs/Raspberry-Pi-camera-v1.3.html create mode 100644 _site/configs/ReoLink-Camera-RLC-410.html create mode 100644 _site/configs/ReoLink-RLC-422.html create mode 100644 _site/configs/Reolink-RLC-410W.html create mode 100644 _site/configs/Reolink-camera.html create mode 100644 _site/configs/Samsung-SNH-P6410BN.html create mode 100644 _site/configs/Sannce-1080P-IP-Cameras.html create mode 100644 _site/configs/SecuritySpy.html create mode 100644 _site/configs/Synology-Surveillance-Station-2.html create mode 100644 _site/configs/Synology-Surveillance-Station.html create mode 100644 _site/configs/Szsinocam-ip-onvif.html create mode 100644 _site/configs/TP-Link-C100.html create mode 100644 _site/configs/TP-Link-C200.html create mode 100644 _site/configs/UNV-Uniview.html create mode 100644 _site/configs/Ubiquiti-AirCam.html create mode 100644 _site/configs/Ubiquiti-UVC-G3.html create mode 100644 _site/configs/UniFi-Video-G3-Micro.html create mode 100644 _site/configs/V380-Cloudcam.html create mode 100644 _site/configs/VESKYS-720P-Tilt-Pan.html create mode 100644 _site/configs/Vivotek-CC-8130.html create mode 100644 _site/configs/Vstarcam-C7824WIP.html create mode 100644 _site/configs/WaveShare-RPi-Camera.html create mode 100644 _site/configs/WyzeCam-V2.html create mode 100644 _site/configs/Wyzecam-V1.html create mode 100644 _site/configs/Xiaomi-Dafang.html create mode 100644 _site/configs/Xiaomi-Xiaofang-1S.html create mode 100644 _site/configs/Xiaomi-Xiaofang.html create mode 100644 _site/configs/Y-cam-Cameras.html create mode 100644 _site/configs/ZNV-ZDIE-2121W-N3T-A.html create mode 100644 _site/configs/Zoneminder.html create mode 100644 _site/configs/eufy-Security-eufyCam.html create mode 100644 _site/contributing/index.html create mode 100644 _site/feed.xml create mode 100644 _site/index.html create mode 100644 contributing.md create mode 100644 index.md diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 00000000..fa5b4ab5 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,39 @@ +module.exports = { + parser: '@typescript-eslint/parser', + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/eslint-recommended', + 'plugin:@typescript-eslint/recommended' + ], + parserOptions: { + ecmaVersion: 2018, + sourceType: 'module', + project: './tsconfig.json' + }, + rules: { + '@typescript-eslint/array-type': ['error', {default: 'generic'}], + '@typescript-eslint/brace-style': 'error', + '@typescript-eslint/comma-spacing': 'error', + '@typescript-eslint/explicit-function-return-type': 'error', + '@typescript-eslint/func-call-spacing': 'error', + '@typescript-eslint/indent': ['error', 2], + '@typescript-eslint/lines-between-class-members': ['error', {"exceptAfterSingleLine": true}], + '@typescript-eslint/no-base-to-string': 'error', + '@typescript-eslint/no-explicit-any': 'error', + '@typescript-eslint/no-extra-parens': 'error', + '@typescript-eslint/no-unnecessary-boolean-literal-compare': ['error', {"allowComparingNullableBooleansToTrue": false, "allowComparingNullableBooleansToFalse": false}], + '@typescript-eslint/no-var-requires': 'error', + '@typescript-eslint/prefer-optional-chain': 'error', + '@typescript-eslint/prefer-readonly': 'error', + '@typescript-eslint/quotes': ['error', 'single', {"allowTemplateLiterals": false}], + '@typescript-eslint/semi': ['error'], + '@typescript-eslint/space-before-function-paren': ['error', 'never'], + '@typescript-eslint/type-annotation-spacing': 'error', + 'comma-dangle': 'error', + 'no-confusing-arrow': 'error', + 'no-lonely-if': 'error', + 'no-trailing-spaces': 'error', + 'no-unneeded-ternary': 'error', + 'one-var': ['error', 'never'] + } +} diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 00000000..b50dd7b7 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,4 @@ +github: Sunoo +ko_fi: sunookitsune +liberapay: Sunoo +custom: ["https://paypal.me/sunoo"] diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 00000000..52dd6ad1 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,49 @@ +--- +name: Bug Report +about: Create a report to help us improve +title: '' +labels: bug +assignees: '' + +--- + + + +**Describe The Bug:** + + +**To Reproduce:** + + +**Expected behavior:** + + +**Logs:** + + +``` +Show the Homebridge logs here. +Remove any sensitive information. +``` + +**Homebridge Config:** + +```json +Show your homebridge config.json here. +Remove any sensitive information, such as your homebridge-gsh / google-smarthome token. +``` + +**Screenshots:** + + +**Environment:** + +* **Node.js Version**: +* **NPM Version**: +* **Homebridge Version**: +* **Homebridge Camera FFmpeg Version**: +* **Homebridge Config UI X Plugin Version**: +* **Operating System**: + + + diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..8b7b7bd6 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Homebridge Discord Community + url: https://discord.gg/cFFBuvp + about: Ask your questions in the homebridge-camera-ffmpeg channel diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 00000000..f974b3b6 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,23 @@ +--- +name: Feature Request +about: Suggest an idea for this project +title: '' +labels: enhancement +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe:** + + +**Describe the solution you'd like:** + + +**Describe alternatives you've considered:** + + +**Additional context:** + + + + diff --git a/.github/ISSUE_TEMPLATE/support-request.md b/.github/ISSUE_TEMPLATE/support-request.md new file mode 100644 index 00000000..545af6a9 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/support-request.md @@ -0,0 +1,43 @@ +--- +name: Support Request +about: Need help? +title: '' +labels: question +assignees: '' + +--- + + + +**Describe Your Problem:** + + +**Logs:** + + +``` +Show the Homebridge logs here. +Remove any sensative information. +``` + +**Homebridge Config:** + +```json +Show your homebridge config.json here. +Remove any sensitive information, such as your homebridge-gsh / google-smarthome token. +``` + +**Screenshots:** + + +**Environment:** + +* **Node.js Version**: +* **NPM Version**: +* **Homebridge Version**: +* **Homebridge Camera FFmpeg Version**: +* **Homebridge Config UI X Plugin Version**: +* **Operating System**: + + + diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..53f3fecb --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,15 @@ +version: 2 +updates: +- package-ecosystem: npm + directory: "/" + schedule: + interval: daily + time: "10:00" + target-branch: "beta" + open-pull-requests-limit: 10 +- package-ecosystem: github-actions + directory: "/" + schedule: + interval: daily + time: "10:00" + open-pull-requests-limit: 10 diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml new file mode 100644 index 00000000..fcf8fe2a --- /dev/null +++ b/.github/workflows/nodejs.yml @@ -0,0 +1,50 @@ +name: NodeJS + +on: + push: + branches: '**' + pull_request: + release: # Run when release is created + types: [created] + +jobs: + build: + + strategy: + matrix: + node-version: [10.x, 12.x, 13.x, 14.x] + os: [ubuntu-latest] + + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v2.3.1 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2.1.1 + with: + node-version: ${{ matrix.node-version }} + - name: npm install and build + run: | + npm ci + npm run build --if-present + env: + CI: true + + publish-npm: + # publish only if we are on our own repo, event was 'release' (a tag was created) and the tag starts with "v" (aka version tag) + if: github.repository == 'Sunoo/homebridge-camera-ffmpeg' && github.event_name == 'release' && startsWith(github.ref, 'refs/tags/v') + + needs: build # only run if build succeeds + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2.3.1 + - uses: actions/setup-node@v2.1.1 + with: + node-version: 10 # use the minimum required version + registry-url: https://registry.npmjs.org/ + - run: npm ci + - run: npm publish + env: + NODE_AUTH_TOKEN: ${{ secrets.npm_token }} diff --git a/.github/workflows/prerelease.js b/.github/workflows/prerelease.js new file mode 100644 index 00000000..b46df5a8 --- /dev/null +++ b/.github/workflows/prerelease.js @@ -0,0 +1,26 @@ +#!/bin/env node + +const fs = require('fs'); +const semver = require('semver'); +const child_process = require('child_process'); + +function getTagVersionFromNpm(tag) { + try { + return child_process.execSync(`npm info ${package.name} version --tag="${tag}"`).toString('utf8').trim(); + } catch (e) { + return null; + } +} + +// load package.json +const package = JSON.parse(fs.readFileSync('package.json', 'utf8')); + +// work out the correct tag +const currentLatest = getTagVersionFromNpm('latest') || '0.0.0'; +const currentBeta = getTagVersionFromNpm('beta') || '0.0.0'; +const latestNpmTag = semver.gt(currentBeta, currentLatest, { includePrerelease: true }) ? currentBeta : currentLatest; +const publishTag = semver.gt(package.version, latestNpmTag, { includePrerelease: true }) ? package.version : latestNpmTag; + +// save the package.json +package.version = publishTag; +fs.writeFileSync('package.json', JSON.stringify(package, null, 4)); diff --git a/.github/workflows/publish-beta.yml b/.github/workflows/publish-beta.yml new file mode 100644 index 00000000..485a8f05 --- /dev/null +++ b/.github/workflows/publish-beta.yml @@ -0,0 +1,41 @@ +name: Publish Beta + +on: + workflow_dispatch + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2.3.1 + with: + ref: beta + - uses: actions/setup-node@v2.1.1 + with: + node-version: 10 + - name: npm install and build + run: | + npm ci + npm run build --if-present + env: + CI: true + + publish-npm: + if: github.repository == 'Sunoo/homebridge-camera-ffmpeg' + + needs: build + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2.3.1 + - uses: actions/setup-node@v2.1.1 + with: + node-version: 10 + registry-url: https://registry.npmjs.org/ + - run: npm ci + - run: node .github/workflows/prerelease.js + - run: npm --no-git-tag-version version prerelease --preid=beta + - run: npm publish --tag=beta + env: + NODE_AUTH_TOKEN: ${{secrets.npm_token}} diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 00000000..29929f3b --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,27 @@ +name: Stale + +on: + issues: + types: [reopened] + schedule: + - cron: "*/60 * * * *" + +jobs: + stale: + + runs-on: ubuntu-latest + env: + ACTIONS_STEP_DEBUG: true + steps: + - uses: actions/stale@v3.0.9 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + stale-issue-message: 'This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.' + stale-pr-message: 'This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.' + stale-issue-label: 'stale' + stale-pr-label: 'stale' + days-before-stale: 7 + days-before-close: 2 + exempt-issue-labels: 'long running,help wanted' + exempt-pr-labels: 'awaiting-approval,work-in-progress' + remove-stale-when-updated: true diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..11209755 --- /dev/null +++ b/.gitignore @@ -0,0 +1,39 @@ +# Logs +logs +*.log +npm-debug.log* + +# Runtime data +pids +*.pid +*.seed + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules +jspm_packages + +# Optional npm cache directory +.npm + +# Optional REPL history +.node_repl_history + +dist \ No newline at end of file diff --git a/.gitignore.1 b/.gitignore.1 new file mode 100644 index 00000000..2ca86829 --- /dev/null +++ b/.gitignore.1 @@ -0,0 +1,4 @@ +_site/ +.sass-cache/ +.jekyll-cache/ +.jekyll-metadata diff --git a/.markdownlint.json b/.markdownlint.json new file mode 100644 index 00000000..52d47b76 --- /dev/null +++ b/.markdownlint.json @@ -0,0 +1,5 @@ +{ + "default": true, + "line_length": false, + "no-duplicate-heading": false +} \ No newline at end of file diff --git a/404.html b/404.html new file mode 100644 index 00000000..c472b4ea --- /dev/null +++ b/404.html @@ -0,0 +1,24 @@ +--- +layout: default +--- + + + +
+

404

+ +

Page not found :(

+

The requested page could not be found.

+
diff --git a/Gemfile b/Gemfile new file mode 100644 index 00000000..9df16b95 --- /dev/null +++ b/Gemfile @@ -0,0 +1,34 @@ +source "https://rubygems.org" + +# Hello! This is where you manage which Jekyll version is used to run. +# When you want to use a different version, change it below, save the +# file and run `bundle install`. Run Jekyll with `bundle exec`, like so: +# +# bundle exec jekyll serve +# +# This will help ensure the proper Jekyll version is running. +# Happy Jekylling! +# gem "jekyll", "~> 3.8.7" + +# This is the default theme for new Jekyll sites. You may change this to anything you like. +gem "minima", "~> 2.0" + +# If you want to use GitHub Pages, remove the "gem "jekyll"" above and +# uncomment the line below. To upgrade, run `bundle update github-pages`. +gem "github-pages", group: :jekyll_plugins + +# If you have any plugins, put them here! +group :jekyll_plugins do + gem "jekyll-feed", "~> 0.6" +end + +# Windows does not include zoneinfo files, so bundle the tzinfo-data gem +# and associated library. +install_if -> { RUBY_PLATFORM =~ %r!mingw|mswin|java! } do + gem "tzinfo", "~> 1.2" + gem "tzinfo-data" +end + +# Performance-booster for watching directories on Windows +gem "wdm", "~> 0.1.0", :install_if => Gem.win_platform? + diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 00000000..17068599 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,256 @@ +GEM + remote: https://rubygems.org/ + specs: + activesupport (6.0.3.2) + 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.7.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.6) + dnsruby (1.61.3) + addressable (~> 2.5) + em-websocket (0.5.1) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0.6.0) + ethon (0.12.0) + ffi (>= 1.3.0) + eventmachine (1.2.7) + execjs (2.7.0) + faraday (1.0.1) + multipart-post (>= 1.2, < 3) + ffi (1.13.1) + forwardable-extended (2.6.0) + gemoji (3.0.1) + github-pages (206) + github-pages-health-check (= 1.16.1) + jekyll (= 3.8.7) + 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.13.0) + jekyll-gist (= 1.5.0) + jekyll-github-metadata (= 2.13.0) + jekyll-mentions (= 1.5.1) + jekyll-optional-front-matter (= 0.3.2) + jekyll-paginate (= 1.1.0) + jekyll-readme-index (= 0.3.0) + jekyll-redirect-from (= 0.15.0) + jekyll-relative-links (= 0.6.1) + jekyll-remote-theme (= 0.4.1) + jekyll-sass-converter (= 1.5.2) + jekyll-seo-tag (= 2.6.1) + jekyll-sitemap (= 1.4.0) + jekyll-swiss (= 1.0.0) + jekyll-theme-architect (= 0.1.1) + jekyll-theme-cayman (= 0.1.1) + jekyll-theme-dinky (= 0.1.1) + jekyll-theme-hacker (= 0.1.1) + jekyll-theme-leap-day (= 0.1.1) + jekyll-theme-merlot (= 0.1.1) + jekyll-theme-midnight (= 0.1.1) + jekyll-theme-minimal (= 0.1.1) + jekyll-theme-modernist (= 0.1.1) + jekyll-theme-primer (= 0.5.4) + jekyll-theme-slate (= 0.1.1) + jekyll-theme-tactile (= 0.1.1) + jekyll-theme-time-machine (= 0.1.1) + jekyll-titles-from-headings (= 0.5.3) + jemoji (= 0.11.1) + kramdown (= 1.17.0) + liquid (= 4.0.3) + mercenary (~> 0.3) + minima (= 2.5.1) + nokogiri (>= 1.10.4, < 2.0) + rouge (= 3.19.0) + terminal-table (~> 1.4) + github-pages-health-check (1.16.1) + addressable (~> 2.3) + dnsruby (~> 1.60) + octokit (~> 4.0) + public_suffix (~> 3.0) + typhoeus (~> 1.3) + html-pipeline (2.13.0) + activesupport (>= 2) + nokogiri (>= 1.4) + http_parser.rb (0.6.0) + i18n (0.9.5) + concurrent-ruby (~> 1.0) + jekyll (3.8.7) + addressable (~> 2.4) + colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (~> 0.7) + jekyll-sass-converter (~> 1.0) + jekyll-watch (~> 2.0) + kramdown (~> 1.14) + 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.13.0) + 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-mentions (1.5.1) + 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.15.0) + jekyll (>= 3.3, < 5.0) + jekyll-relative-links (0.6.1) + jekyll (>= 3.3, < 5.0) + jekyll-remote-theme (0.4.1) + addressable (~> 2.0) + jekyll (>= 3.5, < 5.0) + rubyzip (>= 1.3.0) + jekyll-sass-converter (1.5.2) + sass (~> 3.4) + jekyll-seo-tag (2.6.1) + jekyll (>= 3.3, < 5.0) + jekyll-sitemap (1.4.0) + jekyll (>= 3.7, < 5.0) + jekyll-swiss (1.0.0) + jekyll-theme-architect (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-cayman (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-dinky (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-hacker (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-leap-day (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-merlot (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-midnight (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-minimal (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-modernist (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-primer (0.5.4) + jekyll (> 3.5, < 5.0) + jekyll-github-metadata (~> 2.9) + jekyll-seo-tag (~> 2.0) + jekyll-theme-slate (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-tactile (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-time-machine (0.1.1) + jekyll (~> 3.5) + 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.11.1) + gemoji (~> 3.0) + html-pipeline (~> 2.2) + jekyll (>= 3.0, < 5.0) + kramdown (1.17.0) + liquid (4.0.3) + listen (3.2.1) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + mercenary (0.3.6) + mini_portile2 (2.4.0) + minima (2.5.1) + jekyll (>= 3.5, < 5.0) + jekyll-feed (~> 0.9) + jekyll-seo-tag (~> 2.1) + minitest (5.14.1) + multipart-post (2.1.1) + nokogiri (1.10.10) + mini_portile2 (~> 2.4.0) + octokit (4.18.0) + faraday (>= 0.9) + sawyer (~> 0.8.0, >= 0.5.3) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (3.1.1) + rb-fsevent (0.10.4) + rb-inotify (0.10.1) + ffi (~> 1.0) + rouge (3.19.0) + ruby-enum (0.8.0) + i18n + rubyzip (2.3.0) + 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) + 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.7) + thread_safe (~> 0.1) + tzinfo-data (1.2020.1) + tzinfo (>= 1.0.0) + unicode-display_width (1.7.0) + wdm (0.1.1) + zeitwerk (2.4.0) + +PLATFORMS + ruby + +DEPENDENCIES + github-pages + jekyll-feed (~> 0.6) + minima (~> 2.0) + tzinfo (~> 1.2) + tzinfo-data + wdm (~> 0.1.0) + +BUNDLED WITH + 2.1.4 diff --git a/_config.yml b/_config.yml new file mode 100644 index 00000000..baca2d22 --- /dev/null +++ b/_config.yml @@ -0,0 +1,14 @@ +title: Homebridge Camera FFmpeg +email: sunookitsune@kitsunet.org +description: A site created to store the tested configurations created by users of Homebridge Camera FFmpeg +twitter_username: sunookitsune +github_username: Sunoo + +markdown: kramdown +theme: minima +plugins: + - jekyll-feed + +collections: + configs: + output: true diff --git a/_configs/Alptop-AT-200B.md b/_configs/Alptop-AT-200B.md new file mode 100644 index 00000000..3381975e --- /dev/null +++ b/_configs/Alptop-AT-200B.md @@ -0,0 +1,23 @@ +--- +layout: config +title: Alptop AT-200B +--- +- using homebridge-camera-ffmpeg +- authentication for rtsp disabled in camera config +- RaspberryPi seems to work with higher res but chokes + +```json +{ + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "Crib Camera", + "videoConfig": { + "source": "-re -i rtsp://192.168.88.198/channel1", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 20 + } + }] +} +``` diff --git a/_configs/Amcrest IP3M-HX2W.md b/_configs/Amcrest IP3M-HX2W.md new file mode 100644 index 00000000..4c18079f --- /dev/null +++ b/_configs/Amcrest IP3M-HX2W.md @@ -0,0 +1,30 @@ +--- +layout: config +title: Amcrest IP3M-HX2W +comment: HOOBS + Raspberry Pi 4 +--- +- 7 cameras working as expected. Copy vcodec seems smoother but the other option here working fine with ultrafast option chosen + +```json +{ +"platform": "Camera-ffmpeg", +"cameras": [ +{ +"name": "Camera Living Room Amcrest", +"videoConfig": { +"source": "-rtsp_transport tcp -re -i rtsp://user:pwd@192.168.1.221/cam/realmonitor?channel=1&subtype=00&authbasic=YWRtaW46bG9sYTk2OTg=", +"stillImageSource": "-i http://user:pwd@192.168.1.221/cgi-bin/snapshot.cgi?1", +"maxStreams": 2, +"maxWidth": 1280, +"maxHeight": 720, +"maxFPS": 15, +"maxBitrate": 300, +"vcodec": "libx264 -preset ultrafast", +"packetSize": 1316, +"audio": false, +"debug": true +} +} +] +}, +``` diff --git a/_configs/Amcrest-IP2M-841.md b/_configs/Amcrest-IP2M-841.md new file mode 100644 index 00000000..62835673 --- /dev/null +++ b/_configs/Amcrest-IP2M-841.md @@ -0,0 +1,26 @@ +--- +layout: config +title: Amcrest IP2M-841 +--- +Tested from Linux. These camera's aren't that great and have difficulty holding a stream for longer than 30s. + +## config.json + +```json +{ + "platform": "Camera-ffmpeg", + "cameras": [ + { + "name": "Nursery Camera", + "videoConfig": { + "source": "-xerror -rtsp_transport tcp -i rtsp://username:password@10.0.1.5/cam/realmonitor?channel=1&subtype=0 -c:a aac -b:a 128k -c:v libx264 -b:v 2500k -preset superfast", + "stillImageSource": "-i http://username:password@10.0.1.5/cgi-bin/snapshot.cgi", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 30 + } + } + ] +} +``` diff --git a/_configs/Amcrest-IP4M-1026.md b/_configs/Amcrest-IP4M-1026.md new file mode 100644 index 00000000..53b0874e --- /dev/null +++ b/_configs/Amcrest-IP4M-1026.md @@ -0,0 +1,35 @@ +--- +layout: config +title: Amcrest IP4M-1026 +--- +## config.json + +```json +{ + "platforms": [ + { + "platform": "Camera-ffmpeg", + "cameras": [ + { + "name": "CAMERANAME", + "manufacturer": "Amcrest", + "model": "IP4M-1026", + "videoConfig": { + "source": "-rtsp_transport tcp -re -i rtsp://admin:PASSWORD@IPADDRESS:554/cam/realmonitor?channel=1&subtype=0", + "stillImageSource": "-i http://admin:PASSWORD@IPADDRESS/cgi-bin/snapshot.cgi?chn=1", + "maxStreams": 2, + "maxWidth": 2688, + "maxHeight": 1520, + "maxFPS": 30, + "maxBitrate": 2048, + "vcodec": "libx264 -preset ultrafast", + "packetSize": 1316, + "audio": false, + "debug": false + } + } + ] + } + ] +} +``` diff --git a/_configs/Amcrest-IPM-HX1B.md b/_configs/Amcrest-IPM-HX1B.md new file mode 100644 index 00000000..59fce112 --- /dev/null +++ b/_configs/Amcrest-IPM-HX1B.md @@ -0,0 +1,25 @@ +--- +layout: config +title: Amcrest IPM-HX1B +comment: with MP4 Passthrough +--- +## config.json + +```json +{ + "name": "Camera", + "motion": true, + "videoConfig": { + "source": "-i rtsp://admin:PASSWORD@192.168.1.2/cam/realmonitor?channel=1&subtype=0", + "stillImageSource": "-i http://admin:PASSWORD@192.168.1.2/cgi-bin/snapshot.cgi", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 960, + "maxFPS": 30, + "audio": true, + "preserveRatio": "W", + "vcodec": "copy", + "acodec": "copy" + } +} +``` diff --git a/_configs/Anran-DVR.md b/_configs/Anran-DVR.md new file mode 100644 index 00000000..4c308ec4 --- /dev/null +++ b/_configs/Anran-DVR.md @@ -0,0 +1,40 @@ +--- +layout: config +title: Anran DVR +comment: Generic Chinese DVR +--- +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: https://www.amazon.com/ANRAN-Detection-Surveillance-Security-Recorder/dp/B00JUPFVQE/ref=sr_1_3?ie=UTF8&qid=1485448120&sr=8-3&keywords=anran+dvr + +## config.json + +```json +{ + "platform":"Camera-ffmpeg", + "cameras":[ + { + "name":"Outside Front", + "videoConfig":{ + "source":"-re -i rtsp://10.0.1.93:554/user=admin&password=XXXXXX&channel=1&stream=0.sdp?real_stream--rtp-caching=100", + "stillImageSource":"-re -i rtsp://10.0.1.93:554/user=admin&password=XXXXXX&channel=1&stream=1.sdp?real_stream--rtp-caching=100", + "maxStreams":2, + "maxWidth":1280, + "maxHeight":720, + "maxFPS":50 + } + }, + { + "name":"Outside Rear", + "videoConfig":{ + "source":"-re -i rtsp://10.0.1.93:554/user=admin&password=XXXXXX&channel=2&stream=0.sdp?real_stream--rtp-caching=100", + "stillImageSource":"-re -i rtsp://10.0.1.93:554/user=admin&password=XXXXXX&channel=2&stream=1.sdp?real_stream--rtp-caching=100", + "maxStreams":2, + "maxWidth":1280, + "maxHeight":720, + "maxFPS":50 + } + } + ] +} +``` diff --git a/_configs/August-Doorbell-Cam-Version-1.md b/_configs/August-Doorbell-Cam-Version-1.md new file mode 100644 index 00000000..d1c6bd0b --- /dev/null +++ b/_configs/August-Doorbell-Cam-Version-1.md @@ -0,0 +1,32 @@ +--- +layout: config +title: August Doorbell Cam Version 1 +--- +## config.json + +```json +{ + "platform":"Camera-ffmpeg", + "cameras":[ + { + "name": "August", + "manufacturer": "August", + "model": "Doorbell Cam", + "serialNumber": "XXXXXXXXX", + "videoConfig": { + "source": "-rtsp_transport tcp -i rtsp://admin:password@XXX.XXX.XXX.XXX:554/stream0", + "stillImageSource": "-skip_frame nokey -i rtsp://admin:password@xxx.xxx.xxx.xxx:554/live/stream1 -frames:v 1", + "maxStreams": 10, + "maxWidth": 1280, + "maxHeight": 960, + "maxFPS": 30 + } + } + ] +} +``` + +### Notes + +Replace XXX.XXX.XXX.XXX, etc with your values. +Important that use make sure the live video is on stream0 and still is on stream1. diff --git a/_configs/Avtech-AVM542B.md b/_configs/Avtech-AVM542B.md new file mode 100644 index 00000000..6cb5fb67 --- /dev/null +++ b/_configs/Avtech-AVM542B.md @@ -0,0 +1,22 @@ +--- +layout: config +title: Avtech AVM542B +--- +Server on Synology with Docker via oznu's homebridge-syno-spk + +```json +{ + "name": "AVM542B", + "motion": false, + "manufacturer": "Avtech", + "model": "AVM-542B", + "videoConfig": { + "source": "-rtsp_transport tcp -re -i rtsp://admin:password@192.168.1.1/live/video/profile1", + "maxStreams": 2, + "maxWidth": 1920, + "maxHeight": 1080, + "maxBitrate": 500, + "maxFPS": 5 + } +} +``` diff --git a/_configs/Avtech-MDR751B-DVR.md b/_configs/Avtech-MDR751B-DVR.md new file mode 100644 index 00000000..0d4b8640 --- /dev/null +++ b/_configs/Avtech-MDR751B-DVR.md @@ -0,0 +1,18 @@ +--- +layout: config +title: Avtech MDR751B DVR +--- +Server running on windows 10. + +```json +{ + "name":"Entrance Camera", + "videoConfig": { + "source": "-rtsp_transport tcp -re -i rtsp://admin:admin@192.168.1.26/live/h264", + "maxStreams": 1, + "maxWidth": 640, + "maxHeight": 480, + "maxFPS": 30 + } +} +``` diff --git a/_configs/Axis-M3024-L.md b/_configs/Axis-M3024-L.md new file mode 100644 index 00000000..afcda57d --- /dev/null +++ b/_configs/Axis-M3024-L.md @@ -0,0 +1,26 @@ +--- +layout: config +title: Axis M3024-L +comment: with Raspberry Pi 3 Model B +--- +## config.json + +```json +{ + "platform":"Camera-ffmpeg", + "cameras":[ + { + "name": "Axis M3024-L", + "videoConfig": { + "source": "-rtsp_transport tcp -i rtsp://user:password@192.168.100.100:554/axis-media/media.amp?streamprofile=Media?tcp", + "stillImageSource": "-i http://user:password@192.168.100.100/axis-cgi/jpg/image.cgi", + "maxStreams": 3, + "maxWidth": 1920, + "maxHeight": 1080, + "maxFPS": 30, + "vcodec":"h264_omx" + } + } + ] +} +``` \ No newline at end of file diff --git a/_configs/Blue-Iris.md b/_configs/Blue-Iris.md new file mode 100644 index 00000000..a840cd66 --- /dev/null +++ b/_configs/Blue-Iris.md @@ -0,0 +1,32 @@ +--- +layout: config +title: Blue Iris +--- +If you have a Blue Iris server, you can add any camera with the following configuration: + +```json +{ + "platform": "Camera-IP", + "cameras": [ + { + "name": "My First Camera", + "videoConfig": { + "source": "-re -i http://user:password@serverip/h264/camshortname/temp.ts", + "stillImageSource": "-i http://user:password@serverip/image/camshortname?q=75", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 1024, + "maxFPS": 15 + } + } + ] +} +``` + +- user/password - user with camera view permissions in Blue Iris +- serverip - The IP or hostname of your Blue Iris server +- camshortname - The short name of the camera in Blue Iris +- maxWidth/maxHeight - set to the camera native resolution + +For example, you could use the following URL if for user:homebridge, password: password, server: bi.example.com, camshortname: driveway +`http://homebridge:password@bi.example.com/h264/driveway/temp.ts` diff --git a/_configs/CNB-IVP4030VR.md b/_configs/CNB-IVP4030VR.md new file mode 100644 index 00000000..14981d60 --- /dev/null +++ b/_configs/CNB-IVP4030VR.md @@ -0,0 +1,32 @@ +--- +layout: config +title: CNB IVP4030VR +comment: via RPI Model B +--- +CNB IP Camera +Model number:IVP4030VR + +Homebridge config.json: + +```json +{ + "platform": "Camera-ffmpeg", + "cameras": [ + { + "name": "Front Gate Camera", + "videoConfig": { + "source": "-re -i rtsp://<192.168.X.X:665", + "maxStreams": 2, + "maxWidth": 640, + "maxHeight": 480, + "maxFPS": 24, + "maxBitrate": 1024, + "vcodec": "h264_omx", + "audio": false, + "packetSize": 188, + "debug": true + } + } + ] +} +``` diff --git a/_configs/D-Link-930L.md b/_configs/D-Link-930L.md new file mode 100644 index 00000000..0d7dcc70 --- /dev/null +++ b/_configs/D-Link-930L.md @@ -0,0 +1,21 @@ +--- +layout: config +title: D-Link 930L +--- +Tested on Raspberry Pi 3 (with omx) + +## config.json + +```json +{ + "name": "D-Link Camera", + "videoConfig": { + "source": "-re -f mjpeg -i http://admin:password@localip:port/video.cgi", + "stillImageSource": "-f mjpeg -i http://admin:password@localip:port/image.jpg", + "maxStreams": 2, + "maxWidth": 640, + "maxHeight": 480, + "maxFPS": 20 + } +} +``` diff --git a/_configs/D-Link-932L.md b/_configs/D-Link-932L.md new file mode 100644 index 00000000..d198887d --- /dev/null +++ b/_configs/D-Link-932L.md @@ -0,0 +1,21 @@ +--- +layout: config +title: D-Link 932L +--- +Works on Mac Mini core i5, Raspberry Pi 3 (with and without omx) + +## config.json + +```json +{ + "name":"D-Link Camera", + "videoConfig":{ + "source":"-re -f mjpeg -i http://admin:password@10.0.1.101/mjpeg.cgi -i http://admin:password@10.0.1.101/audio.cgi", + "stillImageSource":"-f mjpeg -i http://admin:password@10.0.1.101/mjpeg.cgi", + "maxStreams":2, + "maxWidth":640, + "maxHeight":480, + "maxFPS":30 + } +}, +``` diff --git a/_configs/D-Link-934L.md b/_configs/D-Link-934L.md new file mode 100644 index 00000000..39c2c3ca --- /dev/null +++ b/_configs/D-Link-934L.md @@ -0,0 +1,21 @@ +--- +layout: config +title: D-Link 934L +--- +Tested on Raspberry Pi 3 (with omx) + +## config.json + +```json +{ + "name": "D-Link Camera", + "videoConfig": { + "source": "-re -f mjpeg -i http://admin:password@localip:port/video.cgi", + "stillImageSource": "-f mjpeg -i http://admin:password@localip:port/image/jpeg.cgi", + "maxStreams": 2, + "maxWidth": 640, + "maxHeight": 480, + "maxFPS": 20 + } +} +``` diff --git a/_configs/D-Link-936L.md b/_configs/D-Link-936L.md new file mode 100644 index 00000000..8a73c17e --- /dev/null +++ b/_configs/D-Link-936L.md @@ -0,0 +1,22 @@ +--- +layout: config +title: D-Link 936L +--- +Works on Raspberry Pi 3 (only with omx) + +## config.json + +```json +{ + "name":"D-Link Camera", + "videoConfig":{ + "source":"-rtsp_transport tcp -i rtsp://admin:password@10.0.1.101:554/play1.sdp", + "stillImageSource":"-i http://admin:password@10.0.1.101/image/jpeg.cgi", + "maxStreams":2, + "maxWidth":1280, + "maxHeight":720, + "maxFPS":30, + "vcodec": "h264_omx" + } +}, +``` diff --git a/_configs/D-Link-DCS-2332L-DCS-2330L.md b/_configs/D-Link-DCS-2332L-DCS-2330L.md new file mode 100644 index 00000000..f71839ea --- /dev/null +++ b/_configs/D-Link-DCS-2332L-DCS-2330L.md @@ -0,0 +1,33 @@ +--- +layout: config +title: D-Link DCS-2332L/DCS-2330L +--- +Works for both DCS-2332L and DCS2330L on Mac Mini late 2009 (MacOS El Capitan 10.11.6). The video profiles for the cameras are set as below in the web interface. + +### Video profile 1 +* H.264 +* Frame size/view window area 1280x720 +* Max frame rate 25 +* Video quality fixed/excellent + +### Video profile 2 +* JPEG +* Frame size/view window area 1280x720 +* Max frame rate 25 +* Video quality fixed/good + +## config.json + +```json +{ + "name":"D-Link Camera", + "videoConfig":{ + "source": "-re -i http://user:password@192.168.0.1/video2.mjpg", + "stillImageSource": "-i http://user:password@192.168.0.1/image/jpeg.cgi?profileid=1", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 30 + } +}, +``` diff --git a/_configs/D-Link-DCS-5222LB1.md b/_configs/D-Link-DCS-5222LB1.md new file mode 100644 index 00000000..53fa61d9 --- /dev/null +++ b/_configs/D-Link-DCS-5222LB1.md @@ -0,0 +1,32 @@ +--- +layout: config +title: D-Link DCS-5222LB1 +--- +Notes: Replace IPADDRESS XX.XX.XX.XX, USER and PASSWORD with your data. + +## config.json + +```json +{ + "name": "D-LINK CAMERA", + "cameras": [ + { + "name": "DCS-5222LB", + "videoConfig": { + "source": "-rtsp_transport tcp -i rtsp://USER:PASSWORD@XX.XX.XX.XX/live1.sdp", + "stillImageSource": "-i http://USER:PASSWORD@XX.XX.XX.XX/image/jpeg.cgi", + "maxStreams": 4, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 30, + "maxBitrate": 300, + "vcodec": "h264_omx", + "packetSize": 564, + "audio": true, + "debug": false + } + } + ], + "platform": "Camera-ffmpeg" +}, +``` diff --git a/_configs/DBPOWER-MEYE-155303-FBACE.md b/_configs/DBPOWER-MEYE-155303-FBACE.md new file mode 100644 index 00000000..08b14ace --- /dev/null +++ b/_configs/DBPOWER-MEYE-155303-FBACE.md @@ -0,0 +1,28 @@ +--- +layout: config +title: DBPOWER MEYE-155303-FBACE +comment: with Raspberry Pi 3 Model B +--- +No rtsp streams available - all via MJPEG... + +## config.json + +```json +{ + "platform":"Camera-ffmpeg", + "cameras":[ + { + "name":"DBPower", + "videoConfig":{ + "source":"-re -i http://[USER]:[PASSWORD]@ip-address:81/videostream.cgi", + "stillImageSource":"-i http://ip-address:81/snapshot.cgi?user=[USER]&pwd=[PASSWORD]", + "maxStreams":2, + "maxWidth":640, + "maxHeight":480, + "maxFPS":16, + "vcodec":"h264_omx" + } + } + ] +} +``` diff --git a/_configs/Dahua-IPC-A35.md b/_configs/Dahua-IPC-A35.md new file mode 100644 index 00000000..9e9da506 --- /dev/null +++ b/_configs/Dahua-IPC-A35.md @@ -0,0 +1,28 @@ +--- +layout: config +title: Dahua IPC-A35 +comment: with sound +--- +## config.json + +```json +{ + "name": "Chodba", + "manufacturer": "Dahua", + "model": "IPC-A35", + "serialNumber": "2L043A6AAK00059", + "firmwareRevision": "2.400.0000000.16.R", + "videoConfig": { + "source": "-rtsp_transport tcp -re -i rtsp://USERNAME:PASSWORD@CAMERA-IP:PORT//cam/realmonitor?channel=1&subtype=0", + "vcodec": "libx264 -preset ultrafast", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 30, + "maxBitrate": 2048, + "packetSize": 376, + "audio": true, + "mapaudio": "0:1" + } +} +``` diff --git a/_configs/Dahua-IPC-HFW1320S-W.md b/_configs/Dahua-IPC-HFW1320S-W.md new file mode 100644 index 00000000..b741d3b4 --- /dev/null +++ b/_configs/Dahua-IPC-HFW1320S-W.md @@ -0,0 +1,26 @@ +--- +layout: config +title: Dahua IPC-HFW1320S-W +--- +## config.json + +```json +{ + "name": "Pracovna", + "manufacturer": "Dahua", + "model": "IPC-HFW1320S-W", + "serialNumber": "4A040C2PAU4C91E", + "firmwareRevision": "2.400.0000000.16.R", + "videoConfig": { + "source": "-rtsp_transport tcp -re -i rtsp://USERNAME:PASSWORD@CAMERA-IP:PORT//cam/realmonitor?channel=1&subtype=0", + "vcodec": "libx264 -preset ultrafast", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 30, + "maxBitrate": 2048, + "packetSize": 376, + "audio": false + } +} +``` diff --git a/_configs/Digoo-DG-W02F.md b/_configs/Digoo-DG-W02F.md new file mode 100644 index 00000000..9c9c16fa --- /dev/null +++ b/_configs/Digoo-DG-W02F.md @@ -0,0 +1,26 @@ +--- +layout: config +title: Digoo DG-W02F +--- +Working through RTSP on RaspberryPi + +## config.json + +```json +{ + "platform":"Camera-ffmpeg", + "cameras":[ + { + "name" : "Digoo", + "videoConfig" : { + "vcodec" : "h264_omx", + "source" : "-re -i rtsp://XXX.XXX.XXX.XXX", + "maxFPS" : 25, + "maxHeight" : 720, + "maxStreams" : 2, + "maxWidth" : 1280 + } + } + ] +} +``` diff --git a/_configs/Doorbird-Video-Doorbell-Basic.md b/_configs/Doorbird-Video-Doorbell-Basic.md new file mode 100644 index 00000000..ff6b1d13 --- /dev/null +++ b/_configs/Doorbird-Video-Doorbell-Basic.md @@ -0,0 +1,26 @@ +--- +layout: config +title: Doorbird Video Doorbell +comment: Basic +--- +This works for me, it's for a Doorbird Video Doorbell, which I think uses the same hardware or at least same connection method as a Axis IP camera. + +## config.json + +```json +{ + "platform":"Camera-ffmpeg", + "cameras":[ + { + "name":"Front Door Camera", + "videoConfig":{ + "source":"-re -i http://192.168.1.100:80/bha-api/video.cgi?http-user=username&http-password=password", + "maxStreams":2, + "maxWidth":640, + "maxHeight":480, + "maxFPS":3 + } + } + ] +} +``` diff --git a/_configs/Doorbird-Video-Doorbell-Full.md b/_configs/Doorbird-Video-Doorbell-Full.md new file mode 100644 index 00000000..0fcfe5e7 --- /dev/null +++ b/_configs/Doorbird-Video-Doorbell-Full.md @@ -0,0 +1,27 @@ +--- +layout: config +title: Doorbird Video Doorbell +comment: Full +--- +This is a more complete set of settings for the Doorbird Video Doorbell based on the latest API and specs. The Doorbird video camera is 720p, capable of up to 15fps. Doorbird supports at most one live connection at a time currently. These settings use RTSP for speed / efficiency, but you can switch to HTTP if you prefer, though I wouldn't expect most people to want / need to. RTSP tends to be the standard for IP cameras. I would recommend looking at the [homebridge-doorbird plugin](https://github.com/brownad/homebridge-doorbird) as well to enable HomeKit doorbell integration on your Doorbird. + +## config.json + +```json +{ + "platform":"Camera-ffmpeg", + "cameras":[ + { + "name":"Doorbird Camera", + "videoConfig":{ + "source":"-re -i rtsp://:@:554/mpeg/media.amp", + "stillImageSource":"-i http://:@/bha-api/image.cgi", + "maxStreams":1, + "maxWidth":1280, + "maxHeight":720, + "maxFPS":15 + } + } + ] +} +``` diff --git a/_configs/ESP32-Cam-Module.md b/_configs/ESP32-Cam-Module.md new file mode 100644 index 00000000..4b5a1adf --- /dev/null +++ b/_configs/ESP32-Cam-Module.md @@ -0,0 +1,33 @@ +--- +layout: config +title: ESP32-Cam Module +--- +## 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: https://github.com/espressif/arduino-esp32/tree/master/docs/arduino-ide +You will just add your Wifi SSID and select camera model in the source code. diff --git a/_configs/EZVIZ-C1C-720P.md b/_configs/EZVIZ-C1C-720P.md new file mode 100644 index 00000000..895c45c6 --- /dev/null +++ b/_configs/EZVIZ-C1C-720P.md @@ -0,0 +1,27 @@ +--- +layout: config +title: EZVIZ C1C 720P +--- +[Product Page](https://www.ezvizlife.com/uk/product/mini-plus/916) + +Everithing just said about the Ezviz mini plus model is true for the C1C but with a 1280x720 pixel resolution. + +Camera password is the 6 character verification code printed on the back of each camera, too. Sorry, I haven't found a StillImageSource valid string yet + +### config.json + +```json +"platform": "Camera-ffmpeg", +"cameras": [ + { + "name": "CAMERA NAME", + "videoConfig": { + "source": "-re -i rtsp://admin:password@nn.nn.nn.nn:554/h264_stream", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "vcodec": "h264_omx" + } + } +] +``` diff --git a/_configs/EZVIZ-Mini-Plus.md b/_configs/EZVIZ-Mini-Plus.md new file mode 100644 index 00000000..855b694b --- /dev/null +++ b/_configs/EZVIZ-Mini-Plus.md @@ -0,0 +1,31 @@ +--- +layout: config +title: EZVIZ Mini Plus +--- +[Product Page](https://www.ezvizlife.com/uk/product/mini-plus/916) + +Great little cams - small, unobtrusive with good pic and great low light / IR capability. Not expensive either. Oh and 5Ghz wifi compatible. Add the cameras in the EZVIZ application downloaded from the app store, so that you can register them on them on your network, and change any settings required. Untick any cloud trials etc etc. + +Camera password is the 6 character verification code printed on the back of each camera. + +### config.json + +```json +"platform": "Camera-ffmpeg", +"cameras": [ + { + "name": "YOUR CAMERA NAME", + "videoConfig": { + "source": "-rtsp_transport tcp -vcodec h264_mmal -i rtsp://admin:password@nn.nn.nn.nn/Streaming/Channels/1", + "stillImageSource": "-i rtsp://admin:password@nn.nn.nn.nn/Streaming/Channels/1/picture", + "maxStreams": 2, + "maxWidth": 1920, + "maxHeight": 1080, + "maxBitrate": 500, + "vcodec": "h264_omx", + "maxFPS": 15, + "audio": true, + "packetSize": 564 + } + } +``` diff --git a/_configs/Foscam-FI8910W.md b/_configs/Foscam-FI8910W.md new file mode 100644 index 00000000..2aafb258 --- /dev/null +++ b/_configs/Foscam-FI8910W.md @@ -0,0 +1,24 @@ +--- +layout: config +title: Foscam FI8910W +--- +Streaming via http + +```json +{ + "platform": "Camera-ffmpeg", + "cameras": [ + { + "name": "Camera", + "videoConfig": { + "source": "-re -i http://user:pass@10.0.1.131:8090/videostream.asf?user=user&pwd=pass&resolution=320x240", + "stillImageSource": "-i http://user:pass@10.0.1.131:8090/snapshot.jpg?user=user&pwd=pass&strm=0", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 30 + } + } + ] +} +``` diff --git a/_configs/Foscam-FI9900EP-FI9826P.md b/_configs/Foscam-FI9900EP-FI9826P.md new file mode 100644 index 00000000..c9a9d227 --- /dev/null +++ b/_configs/Foscam-FI9900EP-FI9826P.md @@ -0,0 +1,39 @@ +--- +layout: config +title: Foscam FI9900EP / FI9826P +--- +Working through RTSP on RaspberryPi + + +## config.json + +```json +{ + "platform":"Camera-ffmpeg", + "cameras":[ + { + "name":"Camera", + "videoConfig":{ + "source":"-rtsp_transport tcp -re -i rtsp://username:password@XXX.XXX.XXX.XXX:port/videoSub", + "stillImageSource":"-i http://username:password@XXX.XXX.XXX.XXX:port/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=username&pwd=password", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 10, + "maxBitrate": 300, + "vcodec": "h264_omx", + "audio": false, + "packetSize": 1316, + "debug": false + } + } + ] +} +``` + +### Notes: + +- Replace XXX.XXX.XXX.XXX:port with the IP Address and port, ie: 192.168.0.10:88 +- For the source, use either “videoSub” or “videoMain” to select the sub or main stream +- Runs smoothly on a RaspberryPi 2 Model B or RaspberryPi 3 Model B+, with the MPEG-omx codec enabled +- Without the “-rtsp_transport tcp”, the live feed stutters, **so make sure it’s added** diff --git a/_configs/Foscam-IQ200.md b/_configs/Foscam-IQ200.md new file mode 100644 index 00000000..9839dce5 --- /dev/null +++ b/_configs/Foscam-IQ200.md @@ -0,0 +1,26 @@ +--- +layout: config +title: Foscam IQ200 +--- +Working through RTSP + +## config.json + +```json +{ + "platform":"Camera-ffmpeg", + "cameras":[ + { + "name":"Camera", + "videoConfig":{ + "source":"-re -i rtsp://username:password@192.168.31.51:88/videoMain", + "stillImageSource":"-i http://username:password@192.168.31.51:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=username&pwd=password&", + "maxStreams":2, + "maxWidth":1280, + "maxHeight":720, + "maxFPS":30 + } + } + ] +} +``` diff --git a/_configs/Foscam-R2.md b/_configs/Foscam-R2.md new file mode 100644 index 00000000..184a001c --- /dev/null +++ b/_configs/Foscam-R2.md @@ -0,0 +1,24 @@ +--- +layout: config +title: Foscam R2 +--- +Working through RTSP + +```json +{ + "platform": "Camera-ffmpeg", + "cameras": [ + { + "name": "Camera", + "videoConfig": { + "source": "-re -i rtsp://user:pass@10.0.1.132:47082/videoMain", + "stillImageSource": "-i http://10.0.1.132:47082/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=user&pwd=pass&", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 30 + } + } + ] +} +``` diff --git a/_configs/Hikam-S5.md b/_configs/Hikam-S5.md new file mode 100644 index 00000000..bc7ca84b --- /dev/null +++ b/_configs/Hikam-S5.md @@ -0,0 +1,9 @@ +--- +layout: config +title: Hikam S5 +comment: + Raspberry Pi2 +--- +- using homebridge-camera-ffmpeg-omx from legotheboss +- removed "-tune zerolatency" from ffmpeg.js (invalid option for my installation) +- low res "rtsp://xxx.xxx.xxx.xxx/onvif2" stream works fine w/ moderate cpu load +- high res "rtsp://xxx.xxx.xxx.xxx/onvif1" stream works w/ cpu load of 150% \ No newline at end of file diff --git a/_configs/IP-Webcam-App.md b/_configs/IP-Webcam-App.md new file mode 100644 index 00000000..3e51acf7 --- /dev/null +++ b/_configs/IP-Webcam-App.md @@ -0,0 +1,25 @@ +--- +layout: config +title: IP Webcam App +comment: by Pavel Khlebovich +--- +Working through http + +## config.json + +```json +{ + "name":"Bedroom", + "videoConfig":{ + "source":"-re -i http://src/video -i http://src/audio.opus", + "stillImageSource":"-i http://src/shot.jpg", + "maxStreams":2, + "maxWidth":640, + "maxHeight":480, + "maxFPS":30, + "audio": true, + "mapvideo": "0", + "mapaudio": "1" + } +}, +``` diff --git a/_configs/IP-Webcam.md b/_configs/IP-Webcam.md new file mode 100644 index 00000000..3a745aa4 --- /dev/null +++ b/_configs/IP-Webcam.md @@ -0,0 +1,33 @@ +--- +layout: config +title: IP Webcam +comment: running on an older Samsung Smartphone and Raspberry PI 2 (Jessie) +--- +To resolve playback issues I had to use the OMX fork to get the PI 2 and FFMPEG to work more or less reliably. +https://github.com/legotheboss/homebridge-camera-ffmpeg-omx + +## Camera Settings + + Video Resolution: 1920x1080 + Photo Resolution: 2048x1152 + +## config.json + +```json +{ + "platform":"Camera-ffmpeg", + "cameras":[ + { + "name":"Front Porch Camera", + "videoConfig":{ + "source":"-f mjpeg -i http://alice:8080/video", + "stillImageSource":"-i http://alice:8080/shot.jpg", + "maxStreams":2, + "maxWidth":1920, + "maxHeight":1080, + "maxFPS":30 + } + } + ] +} +``` diff --git a/_configs/IeGeek-IP-camera.md b/_configs/IeGeek-IP-camera.md new file mode 100644 index 00000000..c7afc767 --- /dev/null +++ b/_configs/IeGeek-IP-camera.md @@ -0,0 +1,28 @@ +--- +layout: config +title: IeGeek IP camera +comment: with Raspberry Pi 3 Model B +--- +You can also use "rtsp://ip-address/11" for HQ-Stream. + +## config.json + +```json +{ + "platform": "Camera-ffmpeg", + "cameras": [ + { + "name": "Camera", + "videoConfig": { + "source": "-rtsp_transport tcp -re -i rtsp://ip-address/12", + "stillImageSource": "-i http://username:password@ip-address/tmpfs/auto.jpg", + "maxStreams": 2, + "maxWidth": 640, + "maxHeight": 352, + "maxFPS": 5, + "vcodec": "h264_omx" + } + } + ] +} +``` diff --git a/_configs/Logitech-C525-USB-camera.md b/_configs/Logitech-C525-USB-camera.md new file mode 100644 index 00000000..cae4f54e --- /dev/null +++ b/_configs/Logitech-C525-USB-camera.md @@ -0,0 +1,28 @@ +--- +layout: config +title: Logitech C525 USB camera +comment: and Raspberry Pi 3 +--- +This configuration works with synchronized video/audio: + +```json +"platform": "Camera-ffmpeg", + "cameras": [ + { + "name": "Logitech-C525", + "videoConfig": { + "source": "-f alsa -ac 1 -ar 44100 -thread_queue_size 2048 -i plughw:CARD=C525,DEV=0 -re -f video4linux2 -i /dev/video0 -vsync 0 -af aresample=async=1", + "stillImageSource":"-s 1280x720 -f video4linux2 -i /dev/video0", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 30, + "audio": true, + "debug": true, + "packetSize": 188, + "mapvideo": "1", + "mapaudio": "0" + } + } + ] +``` diff --git a/_configs/Logitech-HD-Pro-Webcam-C920-2.md b/_configs/Logitech-HD-Pro-Webcam-C920-2.md new file mode 100644 index 00000000..16111c00 --- /dev/null +++ b/_configs/Logitech-HD-Pro-Webcam-C920-2.md @@ -0,0 +1,43 @@ +--- +layout: config +title: Logitech HD Pro Webcam C920 +comment: w/ Raspberry Pi +--- +I set up a Rpi1 with the camera and stream using [v4l2rtspserver](https://github.com/mpromonet/v4l2rtspserver). +Install a webserver (Apache / I use Lighttpd) and use this command to take a screenshot every 5 seconds from the stream for faster still image captures (also running on the pi1): + +`ffmpeg -f rtsp -vcodec h264_mmal -i rtsp://127.0.0.1:8555/unicast -vf fps=fps=1/5 -f image2 -update 1 /var/www/html/latest.jpg` + +Transcoding happens on a Rpi3. You might get everything to work on one Rpi3. +Results in delay of about 50-200ms, +Video takes ~10 Seconds to start streaming due to h264_mmal and h264_omx, hangs sometimes. + +With Audio: +`v4l2rtspserver -c -Q 512 -s -F 0 -H 720 -W 1280 -I 0.0.0.0 -P 8555 -A 32000 -C 2 /dev/video0,plughw:CARD=C920` + +Video Only: +`v4l2rtspserver -c -Q 512 -s -F 0 -H 720 -W 1280 -I 0.0.0.0 -P 8555 /dev/video0` + +## config.json + +```json +"platform": "Camera-ffmpeg", +"cameras": [ + { + "name": "C920", + "videoConfig": { + "source": "-f rtsp -vcodec h264_mmal -i rtsp://rpi:8555/unicast", + "stillImageSource": "-i http://rpi/latest.jpg", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 30, + "maxBitrate": 300, + "vcodec": "h264_omx", + "audio": true, + "packetSize": 188, + "debug": false + } + } +] +``` diff --git a/_configs/Logitech-HD-Pro-Webcam-C920.md b/_configs/Logitech-HD-Pro-Webcam-C920.md new file mode 100644 index 00000000..2bb0ac30 --- /dev/null +++ b/_configs/Logitech-HD-Pro-Webcam-C920.md @@ -0,0 +1,27 @@ +--- +layout: config +title: Logitech HD Pro Webcam C920 +--- +macOS (High Sierra), ffmpeg compiled through macports. Demonstrates use of avfoundation stream. I had to limit the video stream size and frame rate otherwise ffmpeg throws an input/output error. + +## config.json + +```json +"platform": "Camera-ffmpeg", +"cameras": [ +{ + "name": "macCam", + "uploader": true, + "videoConfig": { + "source": "-re -f avfoundation -video_size 640x480 -framerate 30 -i 0", + "stillImageSource": "-re -f avfoundation -video_size 640x480 -framerate 30 -ss 0.9 -i 0 -vframes 1", + "maxStreams": 2, + "maxWidth": 640, + "maxHeight": 480, + "maxFPS": 30, + "vcodec": "h264", + "debug": true + } +} +] +``` diff --git a/_configs/Lorex-LHV2008.md b/_configs/Lorex-LHV2008.md new file mode 100644 index 00000000..12ce3ca0 --- /dev/null +++ b/_configs/Lorex-LHV2008.md @@ -0,0 +1,29 @@ +--- +layout: config +title: Lorex LHV2008 +--- +## config.json + +```json +{ + "platform": "Camera-ffmpeg", + "name": "Camera ffmpeg", + "cameras": [ + { + "name": "CamName", + "videoConfig": { + "source": "-i rtsp://username:password@XXX.XXX.XXX.XXX:554/cam/realmonitor?channel=1&subtype=1", + "maxStreams": 2, + "maxWidth": 1080, + "maxHeight": 720, + "maxFPS": 15 + } + } + ] +} +``` + +### Notes + +Replace XXX.XXX.XXX.XXX, etc with your values. +This is the config for the Lorex LHV2008. diff --git a/_configs/Maygion-H264-IPCam.md b/_configs/Maygion-H264-IPCam.md new file mode 100644 index 00000000..af8db4b9 --- /dev/null +++ b/_configs/Maygion-H264-IPCam.md @@ -0,0 +1,28 @@ +--- +layout: config +title: Maygion H264 IPCam +comment: (Software Version H.264 6.40) with Raspberry Pi 3 Model B +--- +MPEG Snapshot & RTSP Stream + +## config.json + +```json +{ + "platform":"Camera-ffmpeg", + "cameras":[ + { + "name":"Maygion", + "videoConfig":{ + "source":"-re -i rtsp://[USER]:[PASSWORD]@ip-address:81/videostream.cgi", + "stillImageSource":"-i http://ip-address:81/snapshot.cgi?user=[USER]&pwd=[PASSWORD]", + "maxStreams":2, + "maxWidth":1280, + "maxHeight":720, + "maxFPS":16, + "vcodec":"h264_omx" + } + } + ] +} +``` diff --git a/_configs/Mobotix-M24.md b/_configs/Mobotix-M24.md new file mode 100644 index 00000000..47f29fa4 --- /dev/null +++ b/_configs/Mobotix-M24.md @@ -0,0 +1,25 @@ +--- +layout: config +title: Mobotix M24 +comment: with Raspberry Pi 3 Model B +--- +## config.json + +```json +{ + "platform":"Camera-ffmpeg", + "cameras":[ + { + "name": "Mobotix M24", + "videoConfig": { + "source": "-f mxg -i http://user:password@192.168.100.100/control/faststream.jpg?stream=MxPEG", + "stillImageSource": "-i http://user:password@192.168.100.100/cgi-bin/image.jpg", + "maxStreams": 3, + "maxWidth": 1920, + "maxHeight": 1080, + "maxFPS": 30 + } + } + ] +} +``` diff --git a/_configs/MotionEyeOS.md b/_configs/MotionEyeOS.md new file mode 100644 index 00000000..81297d4b --- /dev/null +++ b/_configs/MotionEyeOS.md @@ -0,0 +1,24 @@ +--- +layout: config +title: MotionEyeOS +--- +This config reads images from a remote computer (e.g. Raspberry Pi) running [MotionEyeOS](https://github.com/ccrisan/motioneyeos) with default settings, using an IP of 192.168.2.26. If you use MotionEyeOS' _fast network camera_ feature, then you need to change the stillImageSource to the appropriate URL. + +```json + { + "platform": "Camera-ffmpeg", + "cameras": [ + { + "name": "MotionEyeOS", + "videoConfig": { + "source": "-re -f mjpeg -i http://192.168.2.26:8081", + "stillImageSource": "-f mjpeg -i http://192.168.2.26/picture/1/current/", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 800, + "maxFPS": 10 + } + } + ] + } +``` diff --git a/_configs/Pelco-cameras.md b/_configs/Pelco-cameras.md new file mode 100644 index 00000000..6965f92d --- /dev/null +++ b/_configs/Pelco-cameras.md @@ -0,0 +1,28 @@ +--- +layout: config +title: Pelco cameras +--- +Working through RTSP + +Pelco cameras have two streams `rtsp//camera-ip/stream1` and `rtsp//camera-ip/stream2` In my example below I use a Sarix Pro IBP519 and use the second stream from the camera. I have configured the stream to be 640x480 and 12ips but in the config.json you see that I use 30ips and this is that HomeBridge working this way. I took my second camera IME219 and to get the jpeg to work in this I needed to change the `stillImageSource` to be `-f mjpeg -i http://192.168.5.33/jpeg` + +## config.json + +```json +{ + "platform":"Camera-ffmpeg", + "cameras":[ + { + "name":"Baksidan", + "videoConfig":{ + "source":"-re -i rtsp://192.168.5.34/stream2", + "stillImageSource":"-i http://192.168.5.34/jpeg", + "maxStreams":2, + "maxWidth":640, + "maxHeight":480, + "maxFPS":30 + } + } + ] +} +``` diff --git a/_configs/Pi-Camera-V2.md b/_configs/Pi-Camera-V2.md new file mode 100644 index 00000000..9ccbec58 --- /dev/null +++ b/_configs/Pi-Camera-V2.md @@ -0,0 +1,27 @@ +--- +layout: config +title: Pi Camera V2 +--- +The dedicated [homebridge-rpi-camera](https://github.com/moritzmhmk/homebridge-camera-rpi) plugin makes the ffmpeg process crash for me. + +According to [this comment](https://github.com/KhaosT/homebridge-camera-ffmpeg/issues/93#issuecomment-314479017), this adapted config work smoothly. + +```json +{ + "platform": "Camera-ffmpeg", + "cameras": [ + { + "name": "Pi Cam", + "videoConfig": { + "source": "-re -r 6 -s 1280x720 -f video4linux2 -i /dev/video0", + "stillImageSource": "-s 1280x720 -f video4linux2 -i /dev/video0", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 6, + "vcodec": "h264_omx" + } + } + ] +} +``` diff --git a/_configs/ROCAM-NC400HD.md b/_configs/ROCAM-NC400HD.md new file mode 100644 index 00000000..654cc807 --- /dev/null +++ b/_configs/ROCAM-NC400HD.md @@ -0,0 +1,27 @@ +--- +layout: config +title: ROCAM-NC400HD +comment: with Raspberry Pi Model B 512Mb RAM - jessie by BonRm +--- +## config.json + +```json +{ + "platform":"Camera-ffmpeg", + "cameras":[ + { + "name":"Camera Rocam-NC400HD", + "videoConfig":{ + "source":"-re -i http://IPADDRESS:PORT/videostream.cgi?loginuse=ADMIN&loginpas=PASSWORD", + "stillImageSource":"-i http://IPADDRESS:PORT/snapshot.cgi?user=ADMIN&pwd=PASSWORD", + "maxStreams":2, + "maxWidth":1280, + "maxHeight":720, + "maxFPS":30 + } + } + ] +} +``` + +### Notes: Replace IPADDRESS:PORT, ADMIN, PASSWORD with your data diff --git a/_configs/Raspberry-Pi-Camera-Module-V2.md b/_configs/Raspberry-Pi-Camera-Module-V2.md new file mode 100644 index 00000000..743c0b9d --- /dev/null +++ b/_configs/Raspberry-Pi-Camera-Module-V2.md @@ -0,0 +1,33 @@ +--- +layout: config +title: Raspberry Pi Camera Module V2 +comment: and Raspberry PI Zero W (Jessie) +--- +I had to build ffmpeg with "--enable-libx264" to be able to use the "-tune zerolatency" from ffmpeg.js, and with "--enable-omx" and "--enable-omx-rpi" to use the GPU encoding + +I had to remove from the homebridge-camera-ffmpeg code (ffmpeg.js) the resolution and scale for stillImage and videoStream to switch back to GPU encoding, and I now get a decent 10~20 FPS with pretty good video quality and ffmpeg using ~12% CPU on the pi zero + +Still image sometimes don't refresh in homekit App : Need to reboot the iPhone to get it back ... + +## config.json (credits [@GeorgViehoever ](https://github.com/KhaosT/homebridge-camera-ffmpeg/issues/22)) + +```json +{ + "platform": "Camera-ffmpeg", + "cameras": [ + { + "name": "piCam", + "uploader": false, + "videoConfig": { + "source": "-re -f video4linux2 -i /dev/video0", + "stillImageSource": "-re -f video4linux2 -ss 0.9 -i /dev/video0 -vframes 1", + "maxStreams": 2, + "maxWidth": 1920, + "maxHeight": 1080, + "maxFPS": 30, + "vcodec": "h264_omx" + } + } + ] +} +``` diff --git a/_configs/Raspberry-Pi-camera-v1.3.md b/_configs/Raspberry-Pi-camera-v1.3.md new file mode 100644 index 00000000..0aef01c7 --- /dev/null +++ b/_configs/Raspberry-Pi-camera-v1.3.md @@ -0,0 +1,59 @@ +--- +layout: config +title: Raspberry Pi camera v1.3 +comment: connected to another RasPi +--- +## Description + +**Raspberry Pi #1:** The one that has camera connected to it + +Cron job to create a snapshot every minute (if we are not currently streaming) + +`* * * * * /home/pi/latest.sh` + +### latest.sh + +```sh +#!/bin/sh + +if top -b -n1 | grep raspivid; then + exit 0 +else + raspistill -w 480 -h 270 -o /home/pi/latest.jpg -n -awb auto -ex auto + exit 0 +fi +``` + +### Command used for streaming + +`raspivid -o - -t 0 -w 1280 -h 720 -fps 15 -n -awb auto -ex auto | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8000/live}' :demux=h264` + +**Raspberry Pi #2:** The one that runs HomeBridge + +Cron job to pull the latest snapshot locally every minute + +`* * * * * ssh pi@192.168.1.107 'cat /home/pi/latest.jpg' > /home/pi/latest.jpg` + +### config.json + +```json +{ + "platform": "Camera-ffmpeg", + "cameras": [ + { + "name": "Balcony Camera", + "videoConfig": { + "source": "-f rtsp -re -i rtsp://192.168.1.107:8000/live", + "stillImageSource": "-i file:///home/pi/latest.jpg", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 15, + "maxBitrate": 299, + "audio": false, + "packetSize": 188 + } + } + ] +} +``` \ No newline at end of file diff --git a/_configs/ReoLink-Camera-RLC-410.md b/_configs/ReoLink-Camera-RLC-410.md new file mode 100644 index 00000000..cd30a725 --- /dev/null +++ b/_configs/ReoLink-Camera-RLC-410.md @@ -0,0 +1,27 @@ +--- +layout: config +title: ReoLink Camera RLC-410 +comment: (Should work with all ReoLink-Cams supporting RTSP) +--- +## config.json + +```json +{ + "platform":"Camera-ffmpeg", + "cameras":[ + { + "name":"ReoLink", + "videoConfig":{ + "source": "-rtsp_transport tcp -i rtsp://USER:PASSWORD@XXX.XXX.XXX.XXX:XXX/h264Preview_01_main", + "stillImageSource": "-i http://XXX.XXX.XXX.XXX:XXXX/image.jpeg", + "maxStreams":2, + "maxWidth":1280, + "maxHeight":720, + "maxFPS":30 + } + } + ] +} +``` + +### Notes: Replace IPADRESS, PASSWORD etc with your values. Port stays the same for usual. For the stillImageSource I used a motioneyeos implementation, but you can just use a snapshot image of the Reolink camera or don't use stillImageSource (it is optional) You can install omx. diff --git a/_configs/ReoLink-RLC-422.md b/_configs/ReoLink-RLC-422.md new file mode 100644 index 00000000..43667d2e --- /dev/null +++ b/_configs/ReoLink-RLC-422.md @@ -0,0 +1,31 @@ +--- +layout: config +title: ReoLink RLC-422 +--- +## config.json + +```json +{ + "platform":"Camera-ffmpeg", + "cameras":[ + { + "name": "RLC 422", + "manufacturer": "Reolink", + "model": "RLC-422", + "serialNumber": "XXXXXX", + "videoConfig": { + "source": "-rtsp_transport tcp -I rtsp://USER:PASSWORD@XXX.XXX.XXX.XXX:XXX:554/h264Preview_01_main", + "stillImageSource": "-i http://XXX.XXX.XXX.XXX/cgi-bin/api.cgi?cmd=Snap&channel=0&user=USER&password=PASSWORD", + "maxStreams": 10, + "maxWidth": 1920, + "maxHeight": 1080, + "maxFPS": 30 + } + } + ] +} +``` + +### Notes + +Replace XXX.XXX.XXX.XXX, USER, PASSWORD etc with your values. diff --git a/_configs/Reolink-RLC-410W.md b/_configs/Reolink-RLC-410W.md new file mode 100644 index 00000000..cf97e92f --- /dev/null +++ b/_configs/Reolink-RLC-410W.md @@ -0,0 +1,30 @@ +--- +layout: config +title: Reolink RLC-410W +comment: HOOBS + Raspberry Pi 4 +--- +- 7 cameras working as expected. Copy vcodec seems smoother but the other option here working fine with ultrafast option chosen + +```json +{ +"platform": "Camera-ffmpeg", +"cameras": [ +{ +"name": "Camera Driveway Reolink", +"videoConfig": { +"source": "-rtsp_transport tcp -re -i rtsp://admin:lola9698@192.168.1.241:554/h264Preview_01_main", +"stillImageSource": "-i http://192.168.1.241/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=pwd", +"maxStreams": 2, +"maxWidth": 1280, +"maxHeight": 720, +"maxFPS": 30, +"maxBitrate": 300, +"vcodec": "copy", +"packetSize": 1316, +"audio": false, +"debug": true +} +} +] +}, +``` diff --git a/_configs/Reolink-camera.md b/_configs/Reolink-camera.md new file mode 100644 index 00000000..4ea89965 --- /dev/null +++ b/_configs/Reolink-camera.md @@ -0,0 +1,171 @@ +--- +layout: config +title: Reolink camera +comment: with better picture (rtmp) and audio (Ffmpeg tutorial) +--- +Hello, + +here is a step by step tutorial how to make it work. + +The Reolink cameras have also 3 hidden streams that you get via **rtmp** protocol: +`rtmp://your.ip/bcs/channel0_ext.bcs?channel=0&stream=2&user=admin&password=XXX` + +You have stream 1-3: + +| ID | Name | +| ---|----------| +| 1 | fluent | +| 2 | balanced | +| 3 | clean | + +**balanced** is the one we want for cleaner image. + + +To make audio work we need to compile **FFMPEG** with some extras eg. **libfdk-aac-dev**... +so here the step by step ... took it from old source and made it work for actual FFMPEG & Raspberry + + +First you need to add following to your source list: + +shh into your Pi + +```console +$ cd /home +``` + +Now we’re going to edit a file which contains the sources of debian repositories. We’ll do this with nano – a text editor. + +```console +$ sudo nano /etc/apt/sources.list +``` + +Then use the cursor keys to get to line 2 and add… + +``` +deb http://www.deb-multimedia.org/ wheezy main non-free +deb http://www.deb-multimedia.org/ jessie main +``` + +Then +`CTRL` + `x` to exit, +`y` to confirm you want to save and +`ENTER` to confirm the filename (don’t change it) + +```console +$ sudo apt-get update +``` + +It will update some package lists and give two errors. +1. `W: GPG error` +2. `W: Duplicate sources` + +We’ll deal with those next… + +```console +$ sudo apt-get install deb-multimedia-keyring +``` + +`y` confirm install without verification + +```console +$ sudo apt-get update +``` + +Now we need to install all the development libraries required to build **FFMPEG**. From `sudo` to `libvorbis-dev` is is all one line. + +```console +$ sudo apt-get install libfdk-aac-dev libmp3lame-dev libx264-dev libxvidcore-dev libgsm1-dev libtheora-dev libvorbis-dev +``` + +Now let’s get the **FFMPEG** files themselves. + +```console +$ sudo git clone git://source.ffmpeg.org/ffmpeg.git +``` + +This is quite a large download and will **take a little while** (10-20 mins). Once complete… + +```console +$ cd ffmpeg +``` + +Note that the following command from `sudo` to `--enable-nonfree` is all one continuous command. + +```console +$ sudo ./configure --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libgsm --enable-postproc --enable-libxvid --enable-libfdk-aac --enable-pthreads --enable-libvorbis --enable-gpl --enable-nonfree +``` + +After a minute or so, you will get a warning about `pkg-config not found`. Ignore it. It’ll still work. Now to compile. :) + +**WARNING!** Once you press `ENTER` for the `sudo make` command it will tie up your Pi4 for **about 1.5 hours** until the compile is finished. (If you are accessing your Pi via ssh, you might want to run it via screen, so you can detach and reattach without killing the process.) + +```console +$ sudo make +``` + +This will show you what it is doing as it goes. There will be lots of scary messages you don’t understand. Best go and do something else. And best run the `sudo make` directly on the Pi if you can. If you do it by ssh you’ll have to leave your other computer on and connected until it finishes. + +Once compiled, the install is a fair bit faster. + +```console +$ sudo make install +``` + +```console +$ sudo ldconfig +``` + +```console +$ sudo chown -R pi /home/ffmpeg +``` + +------------------------------ +now in homebridge conf. +add "videoProcessor": "/home/ffmpeg/ffmpeg", +to the setup like shown below... +audio works now with all cameras that support it... +testet with Logitech USB Cam and Reolink + +```json +"name": "Camera ffmpeg", +"videoProcessor": "/home/ffmpeg/ffmpeg", +"cameras": [ + { + "name": "Reolink1", + "videoConfig": { + "source": "-i rtmp://192.168.178.93/bcs/channel0_ext.bcs?channel=0&stream=2&user=admin&password=XXX -map 0 -an -dn -flags -global_header", + "stillImageSource": "-i http://192.168.178.93/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=XXX", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "audio": false, + "debug": false + } + } +] +``` + +here another conf with audio and rtsp: + +```json +"name": "Reolink2", +"videoConfig": { + "source": "-rtsp_transport tcp -re -i rtsp://admin:XXX@192.168.178.91:554/h264Preview_01_sub", + "stillImageSource": "-i http://192.168.178.91/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=XXX", + "maxWidth": 1280, + "maxHeight": 720, + "vcodec": "copy", + "audio": true, + "debug": false +} +``` + +so if i use here the main stream it doesn't work because of the video image size... +but with rtmp i'll can get the balanced stream that's much better... + +hope this will help all other user who struggle with audio and rtmp +rtmp is really recommend for Reolink user... give it a try and you'll see... +but add -map 0 -dn -an -flags -global_header after your Url like you see in my conf. +took me a day to figure it out ... +best +M. diff --git a/_configs/Samsung-SNH-P6410BN.md b/_configs/Samsung-SNH-P6410BN.md new file mode 100644 index 00000000..cd5a9b55 --- /dev/null +++ b/_configs/Samsung-SNH-P6410BN.md @@ -0,0 +1,44 @@ +--- +layout: config +title: Samsung SNH-P6410BN +comment: Samsung SmartCam (firmware 1.08) and Raspberry PI 3 +--- +I had to use the OMX fork to get the PI 3 and FFMPEG to work more or less reliably. +https://github.com/legotheboss/homebridge-camera-ffmpeg-omx + +## Camera Settings + +I disabled WDR on the camera via the iOS app to get better frame rates at higher quality for my BlueIris setup using profile 5. + +rtsp://username:password@IPAddress:554/profile5/media.smp + +For the PI 3 I ended up using profile 2. + +rtsp://username:password@IPAddress:554/profile2/media.smp + +If you don't use the HD quality profile 5 or don't need/want higher frame rates when using it then you can experiment with WDR ON or OFF for your setup. + +There are also other profiles to try: +rtsp://username:password@IPAddress:554/profile3/media.smp +rtsp://username:password@IPAddress:554/profile4/media.smp +rtsp://username:password@IPAddress:554/profile6/media.smp + +## config.json + +```json +{ + "platform":"Camera-ffmpeg", + "cameras":[ + { + "name":"CamNameHere", + "videoConfig":{ + "source":"-re -i rtsp://username:password@ipaddress:554/profile2/media.smp", + "maxStreams":2, + "maxWidth":640, + "maxHeight":360, + "maxFPS":15 + } + } + ] +} +``` diff --git a/_configs/Sannce-1080P-IP-Cameras.md b/_configs/Sannce-1080P-IP-Cameras.md new file mode 100644 index 00000000..997b3dda --- /dev/null +++ b/_configs/Sannce-1080P-IP-Cameras.md @@ -0,0 +1,31 @@ +--- +layout: config +title: Sannce 1080P IP Cameras +--- +Purchased as a set of 4 with an NVR (no HD), available on [Amazon.ca] (https://www.amazon.ca/gp/product/B01ABRSM8S/ref=oh_aui_detailpage_o09_s00?ie=UTF8&psc=1) (Model POE-1080P-4CH) + +## config.json + +```json +{ + "name":"Sannce", + "videoConfig":{ + "source":"-rtsp_transport tcp -re -i rtsp://192.168.1.100/user=name_password=pass_channel=1_stream=0.sdp?real_stream", + "maxStreams":2, + "maxWidth":1920, + "maxHeight":1080, + "maxFPS":30 + } +} +``` + +### Notes: + +- The IP address can be the cameras themselves, or the NVR. + - You can specify different cameras from the NVR IP by incrementing the `channel` number. +- Adding the `-rtsp_transport tcp` option greatly improved the video performance and quality for me. + - Without it, stream would take a long time to load, stutter frequently, and would often be covered in streaks and artifacts. + - Anyone looking to improve the output of similar IP cameras should also look at ffmpeg's [RTSP-specific options](http://ffmpeg.org/ffmpeg-protocols.html#rtsp) +- I found that the quality of the stream would suffer when multiple devices were streaming straight from the cameras/NVR, so I've set up an [RTSP proxy](http://www.live555.com/proxyServer/) on the same machine running `homebridge-camera-ffmpeg` +- I'm running `homebridge-camera-ffmpeg` and its own instance of `homebridge` in a docker container using the [`marcoraddatz/homebridge`](https://hub.docker.com/r/marcoraddatz/homebridge/) image. + - This required installing ffmpeg from the `jessie-backports` apt source inside the container. diff --git a/_configs/SecuritySpy.md b/_configs/SecuritySpy.md new file mode 100644 index 00000000..db320ad8 --- /dev/null +++ b/_configs/SecuritySpy.md @@ -0,0 +1,38 @@ +--- +layout: config +title: SecuritySpy +comment: for MacOs +--- +[Product page](https://www.bensoftware.com/securityspy/) + +The great thing about this is, if SecuritySpy supports your camera ([which is an extensive list](https://www.bensoftware.com/securityspy/helpcameralist.html)) then you should be able to get it working within Homebridge. So you can add multi-random cameras and only have to worry about getting the config right once. + +```json +{ + "platform": "Camera-ffmpeg", + "cameras": [ + { + "name": "Security Cam 0", + "videoConfig": { + "source": "-i http://:@:/++hls?cameraNum=0&codec=h264&width=1280&height=720", + "stillImageSource": "-i http://:@:/++image?cameraNum=0&width=480&height=270", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 30 + }, + } + { + "name": "Security Cam 1", + "videoConfig": { + "source": "-i http://:@:/++hls?cameraNum=1&codec=h264&width=1280&height=720", + "stillImageSource": "-i http://:@:/++image?cameraNum=1&width=480&height=270", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 30 + } + } + ] +} +``` diff --git a/_configs/Synology-Surveillance-Station-2.md b/_configs/Synology-Surveillance-Station-2.md new file mode 100644 index 00000000..0a012081 --- /dev/null +++ b/_configs/Synology-Surveillance-Station-2.md @@ -0,0 +1,31 @@ +--- +layout: config +title: Synology Surveillance Station +--- +When using Surveillance Station to connect and record the camera there is no point in homebridge also connecting when it can simply connect to Surveillance Station's shared stream locally. Find the URL in Surveillance Station, IP Camera, right click camera, share stream path. By default this plugin is set to re-encode the video stream but that is a serious problem because the Alpine docker container cannot do hardware encoding of the video so when viewing the stream through the home app it destroys the Synology's CPU as it does software encoding. Since the Surveillance Station stream is already h264 the solution is for this plugin to just forward the existing stream and not re-encode it, that is done by setting the vcodec to copy. + +## config.json + +```json +{ +"platforms": [ + { + "cameras": [ + { + "name": "My Camera", + "videoConfig": { + "source": "-re -i rtsp://syno:1234567890abcdef1234567890abcdef@localhost:554/Sms=1.unicast", + "maxWidth": 1920, + "maxHeight": 1080, + "maxFPS": 30, + "maxBitrate": 3000, + "vcodec": "copy", + "audio": true + } + } + ], + "platform": "Camera-ffmpeg" + } + ] +} +``` diff --git a/_configs/Synology-Surveillance-Station.md b/_configs/Synology-Surveillance-Station.md new file mode 100644 index 00000000..953586c6 --- /dev/null +++ b/_configs/Synology-Surveillance-Station.md @@ -0,0 +1,26 @@ +--- +layout: config +title: Synology Surveillance Station +--- +For Synology Surveillance Station +Link for source and stillImageSource are generate by Surveillance Station, right clic on camera and select "Share streaming Path" + +```json +{ + "platform":"Camera-ffmpeg", + "cameras":[ + { + "name":"Camera-Salon", + "videoConfig":{ + "source":"-rtsp_transport tcp -re -i rtsp://USER:PASS@IP:554/Sms=CAMID.unicast", + "stillImageSource":"-rtsp_transport tcp -re -i rtsp://USER:PASS@IP:554/Sms=CAMID.unicast -updatefirst", + "maxStreams":2, + "maxWidth":2688, + "maxHeight":1520, + "maxFPS":20, + "vcodec": "h264" + } + } + ] +} +``` diff --git a/_configs/Szsinocam-ip-onvif.md b/_configs/Szsinocam-ip-onvif.md new file mode 100644 index 00000000..f37ba815 --- /dev/null +++ b/_configs/Szsinocam-ip-onvif.md @@ -0,0 +1,26 @@ +--- +layout: config +title: Szsinocam ip onvif +--- +- using homebridge-camera-ffmpeg +- authentication for rtsp disabled in camera config + +```json +{ + "cameras": [ + { + "name": "Camera", + "manufacturer": "SZSINOCAM ", + "model": "IPCAM", + "motion": false, + "videoConfig": { + "source": "-rtsp_transport tcp -re -i rtsp://192.168.1.50:554/ucast/11", + "stillImageSource": "-re -i http://192.168.1.50/cgi-bin/anv/images_cgi?channel=0", + "maxFPS": 20, + "debug": false + } + } + ], + "platform": "Camera-ffmpeg" +} +``` diff --git a/_configs/TP-Link-C100.md b/_configs/TP-Link-C100.md new file mode 100644 index 00000000..9840bdd8 --- /dev/null +++ b/_configs/TP-Link-C100.md @@ -0,0 +1,34 @@ +--- +layout: config +title: TP-Link C100 +--- +Model C 100 + +## config.json + +```json +{ + "cameras": [ + { + "name": "TP-Link Camera C100", + "manufacturer": "TP-Link", + "model": "C100", + "motion": true, + "videoConfig": { + "source": "-rtsp_transport http -re -i rtsp://user:password@ip:554/stream1", + "stillImageSource": "-rtsp_transport tcp -re -i rtsp://user:password@ip:554/stream1", + "maxStreams": 2, + "maxWidth": 1024, + "maxHeight": 576, + "maxFPS": 10, + "maxBitrate": 300, + "vcodec": "h264_omx", + "packetSize": 188, + "audio": true, + "debug": true + } + } + ], + "platform": "Camera-ffmpeg" +} +``` diff --git a/_configs/TP-Link-C200.md b/_configs/TP-Link-C200.md new file mode 100644 index 00000000..7a45801a --- /dev/null +++ b/_configs/TP-Link-C200.md @@ -0,0 +1,35 @@ +--- +layout: config +title: TP-Link C200 +--- +Model C 200 + +## config.json + +```json +{ + "name": "Camera ffmpeg", + "cameras": [ + { + "name": "Camera-Salo_", + "manufacturer": "TP-Link", + "model": "C200", + "serialNumber": "1C3BF372F96C", + "firmwareRevision": "1.0.5", + "videoConfig": { + "source": "-re -i rtsp://user:password@ip:554/stream2", + "stillImageSource": "-i rtsp:// user:password@ip:554/stream2", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 10, + "maxBitrate": 300, + "vcodec": "libx264", + "packetSize": 1316, + "audio": true, + "debug": true + } + } + ], +} +``` diff --git a/_configs/UNV-Uniview.md b/_configs/UNV-Uniview.md new file mode 100644 index 00000000..bad6db92 --- /dev/null +++ b/_configs/UNV-Uniview.md @@ -0,0 +1,45 @@ +--- +layout: config +title: UNV Uniview +--- +Model NVR301-04LB-P4 +Cameras are UNV IPC2122LR3-PF40-E +NVR Camera Encoding Setup - Menu > Cameras > Encoding + +``` +Sub Stream +Stream Type Network Transmission +Video Compression h264 +Resolution 640*360 +Bitrate Type VBR +Bit Rate 512 +Frame Rate 10 +Image Quality level 4 +I Frame Interval 50 +Smoothing 4 +U-Code Off +``` + +## config.json + +```json +[ + { + "name": "Front of House", + "videoConfig": { + "source": "-rtsp_transport tcp -re -i rtsp://username:password@ipaddress:554/unicast/c1/s1/live", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 10, + "maxBitrate": 256, + "mapvideo": "0:0", + "mapaudio": "0:1", + "vcodec": "copy", + "packetSize": 376, + "audio": false, + "debug": true + } + } +] +``` diff --git a/_configs/Ubiquiti-AirCam.md b/_configs/Ubiquiti-AirCam.md new file mode 100644 index 00000000..3d4c2fe9 --- /dev/null +++ b/_configs/Ubiquiti-AirCam.md @@ -0,0 +1,30 @@ +--- +layout: config +title: Ubiquiti AirCam +comment: (Generation 1, firmware v3.1.4.39), RPi 3 +--- +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 https://github.com/legotheboss/homebridge-camera-ffmpeg-omx fork for RPi 3 support. + +## config.json + +```json +{ + "name":"Driveway", + "videoConfig":{ + "source":"-rtsp_transport http -re -i rtsp://domain:port/4a1baa33-31a8-52f3-5524-12345aa111a7_0", + "maxStreams":2, + "maxWidth":1270, + "maxHeight":720, + "maxFPS":15 + } +} +``` + +### Notes: + +- The RTSP stream can come from cameras or UniFi Video server (probably from the NVR too). +- Works remotely if you have Apple TV 4/iPad setup as a homekit hub. +- Running homebridge on Raspberry Pi 3. +- Streaming startup takes ~10s, thumbnails get generated automatically. diff --git a/_configs/Ubiquiti-UVC-G3.md b/_configs/Ubiquiti-UVC-G3.md new file mode 100644 index 00000000..c1aa2eae --- /dev/null +++ b/_configs/Ubiquiti-UVC-G3.md @@ -0,0 +1,26 @@ +--- +layout: config +title: Ubiquiti UVC G3 +--- +## config.json + +```json +{ + "name": "CCTV Camera", + "manufacturer": "Ubiquiti", + "model": "UVC G3", + "serialNumber": "XYZXYZYZY", + "firmwareRevision": "4.14", + "videoConfig": { + "source": "-rtsp_transport tcp -re -i rtsp://admin:xxxxxxx@172.16.33.67:554/s0", + "maxStreams": 2, + "maxWidth": 1920, + "maxHeight": 1080, + "maxFPS": 30, + "vcodec": "copy", + "audio": true, + "mapvideo": "0:1", + "mapaudio": "0:0" + } +} +``` diff --git a/_configs/UniFi-Video-G3-Micro.md b/_configs/UniFi-Video-G3-Micro.md new file mode 100644 index 00000000..9d5aa19c --- /dev/null +++ b/_configs/UniFi-Video-G3-Micro.md @@ -0,0 +1,30 @@ +--- +layout: config +title: UniFi Video G3-Micro +--- +### Description + +Audio and video working on a Raspberry Pi 3 Model B using the instructions [here](https://github.com/KhaosT/homebridge-camera-ffmpeg/wiki/Raspberry-PI). "source" is from UniFi Protect (medium RTSP URL) hosted on an UniFi Cloud Key G2+ and "stillImageSource" is directly from camera. Connection takes less than 10 seconds. + +## config.json + +```json +{ + "name": "UniFi-G3-Micro", + "videoConfig": { + "source": "-re -rtsp_transport tcp -i rtsp://UNIFI_CLOUD_KEY_G2_IP:PORT/UNIQUE_ID", + "stillImageSource": "-i http://UNIFI_CAMERA_IP/snap.jpeg", + "additionalCommandline": "-preset slow -profile:v high -level 4.2 -x264-params intra-refresh=1:bframes=0", + "vcodec": "h264_omx", + "audio": true, + "packetsize": 188, + "maxStreams": 2, + "maxWidth": 1024, + "maxHeight": 576, + "maxFPS": 20, + "debug": true, + "mapvideo": "0:1", + "mapaudio": "0:0" + } +} +``` diff --git a/_configs/V380-Cloudcam.md b/_configs/V380-Cloudcam.md new file mode 100644 index 00000000..3fde8b36 --- /dev/null +++ b/_configs/V380-Cloudcam.md @@ -0,0 +1,42 @@ +--- +layout: config +title: V380 Cloudcam +--- +**Need to patch the firmware to activate RTSP on port 554.** + +Solution found [here](https://community.netcamstudio.com/t/fentac-v380-connection/1334/12) + +I found the solution after talking with the support team of these cameras. It is necessary to upgrade the firmware of the camera to open the onvif ports. +Download files [here](https://drive.google.com/file/d/0B8j89vcA6EWGdlgxcWVuZTlJZ0I2U292bE5QRU1xR0YybEl3/view) +1. Unzip the files +1. Copy the files to the root of the microSD +1. Restart the camera +1. Wait until the update finishes, listening if you have a horn or watching the LEDs +1. Check that the 554 port has been opened +1. Delete the SD update files + +## config.json + +```json +{ + "platform":"Camera-ffmpeg", + "cameras":[ + { + "name" : "V380", + "videoConfig" : { + "vcodec" : "h264_omx", + "source" : "-re -i rtsp://admin:password@XXX.XXX.XXX.XXX/live/ch00_1", + "maxFPS" : 25, + "maxHeight" : 720, + "maxStreams" : 2, + "maxWidth" : 1280 + } + } + ] +} +``` + +### Notes +/live/ch00_1 : 1280x720 + +/live/ch00_0 : 640x480 diff --git a/_configs/VESKYS-720P-Tilt-Pan.md b/_configs/VESKYS-720P-Tilt-Pan.md new file mode 100644 index 00000000..4d337c52 --- /dev/null +++ b/_configs/VESKYS-720P-Tilt-Pan.md @@ -0,0 +1,26 @@ +--- +layout: config +title: VESKYS 720P Tilt / Pan +--- +## config.json + +```json +{ + "platform":"Camera-ffmpeg", + "cameras":[ + { + "name":"Veskys Camera", + "videoConfig":{ + "source":"-rtsp_transport tcp -i rtsp://admin:PASSWORD@IPADDRESS:10554/tcp/av0_0 -map 0", + "stillImageSource":"-i http://IPADDRESS:81/snapshot.cgi?user=admin&pwd=PASSWORD", + "maxStreams":2, + "maxWidth":1280, + "maxHeight":720, + "maxFPS":30 + } + } + ] +} +``` + +### Notes: Replace IPADDRESS, PASSWORD with your data. I could not get this working with RPi and ffmpeg-omx, but working successfully on a macOS installation diff --git a/_configs/Vivotek-CC-8130.md b/_configs/Vivotek-CC-8130.md new file mode 100644 index 00000000..8bc35106 --- /dev/null +++ b/_configs/Vivotek-CC-8130.md @@ -0,0 +1,38 @@ +--- +layout: config +title: Vivotek CC-8130 +comment: and Raspberry PI 2 (Jessie) +--- +To resolve playback issues I had to use the OMX fork to get the PI 2 and FFMPEG to work more or less reliably. +https://github.com/legotheboss/homebridge-camera-ffmpeg-omx + +## Camera Settings + + the settings for Media->Video->Stream 2 to + JPEG + Frame Size 1280x800 + Maximum frame rate 30 + Video Quality: Fixed + Video Quality: Excellent + Maximum bit rate 40 Mbps + +## config.json + +```json +{ + "platform":"Camera-ffmpeg", + "cameras":[ + { + "name":"Office Camera", + "videoConfig":{ + "source":"-re -i http://login:password@192.168.1.98/video2.mjpg", + "stillImageSource":"-f mjpeg -i http://login:password@192.168.1.98/cgi-bin/viewer/video.jpg", + "maxStreams":2, + "maxWidth":1920, + "maxHeight":1080, + "maxFPS":30 + } + } + ] +} +``` diff --git a/_configs/Vstarcam-C7824WIP.md b/_configs/Vstarcam-C7824WIP.md new file mode 100644 index 00000000..4c6dc6f2 --- /dev/null +++ b/_configs/Vstarcam-C7824WIP.md @@ -0,0 +1,23 @@ +--- +layout: config +title: Vstarcam C7824WIP +--- +- using homebridge-camera-ffmpeg 2.3.0 +- authentication for rtsp admin and camera password + +```json +{ + "name": "Entrance Camera", + "motion": true, + "switches": false, + "motionTimeout": 35, + "videoConfig": { + "source": "-rtsp_transport udp -i rtsp://admin:yourpassword@cam-ip:10554/udp/av0_0", + "stillImageSource": "-i http://cam-ip/img/snapshot.cgi?user=admin&pwd=yourpassword&res=0", + "maxFPS": 25, + "packetSize": 1316, + "audio": true, + "debug": false + } +} +``` diff --git a/_configs/WaveShare-RPi-Camera.md b/_configs/WaveShare-RPi-Camera.md new file mode 100644 index 00000000..f9dbe27a --- /dev/null +++ b/_configs/WaveShare-RPi-Camera.md @@ -0,0 +1,153 @@ +--- +layout: config +title: WaveShare RPi Camera +comment: and Raspberry PI 3B (Stretch) +--- +3 configurations using the following video codecs as per the `vcodec` parameter: +- `copy` codec for streaming with much higher quality but with a downside that you must specify the target video resolution for your iOS/MacOS device by updating the `video_size` parameter. +- `h264` codec for streaming with good quality but using more processor power +- `h264_omx` codec for streaming with minimal processing power but with lower quality + +## copy video codec + +### config.json + +```json +{ + "cameras": [ + { + "name": "Pi 3B Camera", + "motion": true, + "switches": true, + "videoConfig": { + "source": "-re -r 30 -video_size 1920x1080 -f video4linux2 -input_format h264 -i /dev/video0 -copyts -start_at_zero -timestamps abs", + "stillImageSource": "-video_size 1920x1080 -f video4linux2 -i /dev/video0 -ss 1.5", + "maxStreams": 2, + "maxFPS": 30, + "maxBitrate": 500000000, + "vcodec": "copy", + "audio": false, + "vflip": false, + "hflip": false, + "debug": true + } + } + ], + "platform": "Camera-ffmpeg" +} +``` + +### notes + +The resolution in the example configuration above has been tested to work for iPad and MacOS. It will not work for other devices that require difference resolutions. + +Since the Raspberry Pi lacks an RTC, it should be ensured that `timesyncd` is correctly functioning, otherwise streaming will stop working as the Pi's clock drifts. E.g. + +``` +$ systemctl status systemd-timesyncd.service +● systemd-timesyncd.service - Network Time Synchronization + Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled) + Drop-In: /lib/systemd/system/systemd-timesyncd.service.d + └─disable-with-time-daemon.conf + Active: active (running) since Sun 2020-07-19 09:48:38 BST; 5h 9min ago + Docs: man:systemd-timesyncd.service(8) + Main PID: 30120 (systemd-timesyn) + Status: "Synchronized to time server 216.239.35.4:123 (time.google.com)." + CGroup: /system.slice/systemd-timesyncd.service + └─30120 /lib/systemd/systemd-timesyncd + +Jul 19 09:48:38 raspberrypizerow systemd[1]: Starting Network Time Synchronization... +Jul 19 09:48:38 raspberrypizerow systemd[1]: Started Network Time Synchronization. +Jul 19 09:48:38 raspberrypizerow systemd-timesyncd[30120]: Synchronized to time server 216.239.35.4:123 (time.google.com). +``` + +If necessary it may be needed to update the NTP server configuration in `/etc/systemd/timesyncd.conf` + +## h264 video codec + +### config.json + +```json +{ + "cameras": [ + { + "name": "Pi 3B Camera", + "motion": true, + "switches": true, + "videoConfig": { + "source": "-re -r 30 -video_size 1920x1080 -f video4linux2 -input_format h264 -i /dev/video0 -crf 18 -threads 3", + "stillImageSource": "-video_size 1920x1080 -f video4linux2 -i /dev/video0 -ss 1.5", + "maxStreams": 2, + "maxFPS": 30, + "vcodec": "h264", + "audio": false, + "vflip": false, + "hflip": false, + "debug": true + } + } + ], + "platform": "Camera-ffmpeg" +} +``` + +### notes + +The `crf` and `threads` parameters allow for setting adequate video quality and using multiple RPI cores. Works across all iOS/MacOS devices but with significant CPU overhead. + +## h264_omx video codec + +### config.json + +```json +{ + "cameras": [ + { + "name": "Pi 3B Camera", + "motion": true, + "switches": true, + "videoConfig": { + "source": "-re -r 30 -video_size 1920x1080 -f video4linux2 -input_format h264 -i /dev/video0", + "stillImageSource": "-video_size 1920x1080 -f video4linux2 -i /dev/video0 -ss 1.5", + "maxStreams": 2, + "maxFPS": 30, + "maxBitrate": 500000000, + "vcodec": "h264_omx", + "audio": false, + "vflip": false, + "hflip": false, + "debug": true + } + } + ], + "platform": "Camera-ffmpeg" +} +``` + +### notes + +While fast, and working across all iOS/MacOS devices, the `h264_omx` video codec doesn't support many options and provides sub-standard quality compared to the other options (at least when using a RPI camera). E.g. + +``` +$ ffmpeg -h encoder=h264_omx +ffmpeg version 3.2.14-1~deb9u1+rpt1 Copyright (c) 2000-2019 the FFmpeg developers + built with gcc 6.3.0 (Raspbian 6.3.0-18+rpi1+deb9u1) 20170516 + configuration: --prefix=/usr --extra-version='1~deb9u1+rpt1' --toolchain=hardened --libdir=/usr/lib/arm-linux-gnueabihf --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libebur128 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-omx-rpi --enable-mmal --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libiec61883 --arch=armhf --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared + libavutil 55. 34.101 / 55. 34.101 + libavcodec 57. 64.101 / 57. 64.101 + libavformat 57. 56.101 / 57. 56.101 + libavdevice 57. 1.100 / 57. 1.100 + libavfilter 6. 65.100 / 6. 65.100 + libavresample 3. 1. 0 / 3. 1. 0 + libswscale 4. 2.100 / 4. 2.100 + libswresample 2. 3.100 / 2. 3.100 + libpostproc 54. 1.100 / 54. 1.100 +Encoder h264_omx [OpenMAX IL H.264 video encoder]: + General capabilities: delay + Threading capabilities: none + Supported pixel formats: yuv420p +h264_omx AVOptions: + -omx_libname ED.V.... OpenMAX library name + -omx_libprefix ED.V.... OpenMAX library prefix + -zerocopy E..V.... Try to avoid copying input frames if possible (from 0 to 1) (default 0) +``` diff --git a/_configs/WyzeCam-V2.md b/_configs/WyzeCam-V2.md new file mode 100644 index 00000000..c3c63365 --- /dev/null +++ b/_configs/WyzeCam-V2.md @@ -0,0 +1,24 @@ +--- +layout: config +title: WyzeCam V2 +comment: with Raspberry Pi 4 Model B +--- +As described in this [blog post](https://medium.com/dirigible/wyze-cam-homekit-58c4878c4124), I was able to get the WyzeCam V2 streaming to HomeKit with no transcoding and no custom compiling required using the following settings. + +## config.json + +```json +{ + "platform": "Camera-ffmpeg", + "cameras": [ + { + "name": "Wyze Cam", + "videoConfig": { + "source": "-i rtsp://username:password@192.168.0.100/live", + "stillImageSource": "-i rtsp://username:password@192.168.0.100/live -vframes 1 -r 1", + "vcodec": "copy" + } + } + ] +} +``` diff --git a/_configs/Wyzecam-V1.md b/_configs/Wyzecam-V1.md new file mode 100644 index 00000000..ea750ac9 --- /dev/null +++ b/_configs/Wyzecam-V1.md @@ -0,0 +1,31 @@ +--- +layout: config +title: Wyzecam V1 +comment: with Raspberry Pi 3 Model B Rev 1.2 +--- +Replica of the Xiaomi Xiaofang (Small White Square) + +Note: I used the homebridge-camera-ffmpeg-omx plugin (https://github.com/legotheboss/homebridge-camera-ffmpeg-omx) along with OpenIPC v0.2.4 for Wyze V1 (https://github.com/openipcamera/openipc-firmware) which is forked from Fang-Hacks(https://github.com/samtap/fang-hacks) + +The rest of the `config.json` file is similar to the above Xioami Xiaofang `config.json` + +## config.json + +```json +{ + "platform": "Camera-ffmpeg-omx", + "cameras": [ + { + "name": "Garage Camera", + "videoConfig": { + "source": "-re -i rtsp://192.168.2.128/unicast", + "stillImageSource": "-i rtsp://192.168.2.128/unicast -vframes 1 -r 1", + "maxStreams": 2, + "maxWidth": 1920, + "maxHeight": 1080, + "maxFPS": 30 + } + } + ] +} +``` diff --git a/_configs/Xiaomi-Dafang.md b/_configs/Xiaomi-Dafang.md new file mode 100644 index 00000000..d1fa8eb8 --- /dev/null +++ b/_configs/Xiaomi-Dafang.md @@ -0,0 +1,33 @@ +--- +layout: config +title: Xiaomi Dafang +comment: with Raspberry Pi 3 Model B +--- +Note: [Dafang-Hacks](https://github.com/EliasKotlyar/Xiaomi-Dafang-Hacks) Enable the RTSP stream. + +Reduced the RTSP output to 720p which is helpful when your Wi-Fi link is not great. +Remove the "-rtsp_transport tcp" if you got FFMpeg Zombie's + +I run this config for my 3 Cams. + +## config.json + +```json +{ + "platform":"Camera-ffmpeg", + "cameras":[ + { + "name":"Camera 1", + "videoConfig":{ + "source":"-rtsp_transport tcp -i rtsp://ip-address/unicast", + "stillImageSource":"-rtsp_transport tcp -i rtsp://ip-address/unicast -vframes 1 -r 1", + "maxStreams":5, + "maxWidth":1280, + "maxHeight":720, + "maxFPS":25, + "vcodec":"h264_omx" + } + } + ] +} +``` diff --git a/_configs/Xiaomi-Xiaofang-1S.md b/_configs/Xiaomi-Xiaofang-1S.md new file mode 100644 index 00000000..35050dc4 --- /dev/null +++ b/_configs/Xiaomi-Xiaofang-1S.md @@ -0,0 +1,33 @@ +--- +layout: config +title: Xiaomi Xiaofang 1S +comment: on Raspberry Pi3b (maybe also for Pi2 etc) +--- +Hello, + +I've had the issue with `vcodec copy` option for a long time - Live stream was always failing after 1 second. +Not it's fixed (config for Xiaomi Xiaofang 1S): + +```json +{ + "name":"Camera", + "videoConfig":{ + "source": "-rtsp_transport tcp -re -i rtsp://your_ip_address", + "maxFPS":30, + "maxWidth": 1280, + "maxHeight": 720, + "videoFilter":"none", + "maxBitrate":1024, + "packetSize": 188, + "maxStreams":2, + "vcodec":"copy", + "audio":false + } +} +``` + +Tested on ffmpeg version 4.1.4 (built with gcc 8.3.0 (Alpine 8.3.0) + +``` +configuration: --prefix=/usr --enable-avresample --enable-avfilter --enable-gnutls --enable-gpl --enable-libass --enable-libmp3lame --enable-libvorbis --enable-libvpx --enable-libxvid --enable-libx264 --enable-libx265 --enable-libtheora --enable-libv4l2 --enable-postproc --enable-pic --enable-pthreads --enable-shared --enable-libxcb --disable-stripping --disable-static --disable-librtmp --enable-vaapi --enable-vdpau --enable-libopus --disable-asm --disable-debug libavutil 56. 22.100 / 56. 22.100 libavcodec 58. 35.100 / 58. 35.100 libavformat 58. 20.100 / 58. 20.100 libavdevice 58. 5.100 / 58. 5.100 libavfilter 7. 40.101 / 7. 40.101 libavresample 4. 0. 0 / 4. 0. 0 libswscale 5. 3.100 / 5. 3.100 libswresample 3. 3.100 / 3. 3.100 libpostproc 55. 3.100 / 55. 3.100 +``` diff --git a/_configs/Xiaomi-Xiaofang.md b/_configs/Xiaomi-Xiaofang.md new file mode 100644 index 00000000..de62e821 --- /dev/null +++ b/_configs/Xiaomi-Xiaofang.md @@ -0,0 +1,30 @@ +--- +layout: config +title: Xiaomi Xiaofang +comment: (Small White Square) with Raspberry Pi 3 Model B +--- +Note: I applied [Fang-Hacks](https://github.com/samtap/fang-hacks) to the camera to enable the RTSP stream. + +I also reduced the RTSP output to 720p which is helpful when your Wi-Fi link is not great. + +## config.json + +```json +{ + "platform":"Camera-ffmpeg", + "cameras":[ + { + "name":"Camera 1", + "videoConfig":{ + "source":"-rtsp_transport tcp -i rtsp://ip-address/unicast", + "stillImageSource":"-i rtsp://ip-address/unicast -vframes 1 -r 1", + "maxStreams":2, + "maxWidth":720, + "maxHeight":480, + "maxFPS":10, + "vcodec":"h264_omx" + } + } + ] +} +``` diff --git a/_configs/Y-cam-Cameras.md b/_configs/Y-cam-Cameras.md new file mode 100644 index 00000000..fe7d09dc --- /dev/null +++ b/_configs/Y-cam-Cameras.md @@ -0,0 +1,39 @@ +--- +layout: config +title: Y-cam Cameras +--- +Working through RTSP + +This applies to the Y-Cam Cube HD1080 & Y-Cam Bullet HD1080. These are a few years old, not the current generation. These cameras have 3 Stream types; Primary (Stream "live/0"), Secondary (Stream "live/1"), and Mobile Stream (Stream "live/2"). The Primary has higher resolution(image size) options. The mobile is designed for streaming with low-bandwidth. I have my configuration setup to use the Primary stream at 1920x1080, 18 fps, MJPEG & JPEG Snapshot Quality set to 90. I enabled authentication, but this can be disabled. For the Preview image (stillImageSource) to work, I had to add the "-f mjpeg" to the stream. Away from home, I get very good image/video quality.' + +It may be worth mentioning, there are several streams available coming from the Y-Cam. This is by default and they are all on all the time. I tested them all, and had better image quality away from home using the RTSP MJPEG stream. + ++ RTSP H.264 stream: rtsp://ip_address/live/0/h264.sdp ++ RTSP MPEG4 stream: rtsp://ip_address/live/0/mpeg4.sdp ++ RTSP MJPEG stream: rtsp://ip_address/live/0/mjpeg.sdp ++ RTSP audio stream: rtsp://ip_address/live/0/audio.sdp ++ HTTP M3U8 stream: http://ip_address/live/0/h264.m3u8 ++ HTTP MJPEG stream: http://ip_address/live/0/mjpeg.jpg ++ HTTP ASF stream: http://ip_address/live/0/mpeg4.asf ++ HTTP snapshot image: http://ip_address/live/0/jpeg.jpg + +## config.json + +```json +{ + "platform":"Camera-ffmpeg", + "cameras":[ + { + "name":"Y-Cam", + "videoConfig":{ + "source":"-rtsp_transport tcp -re -i rtsp://user:pass@ip:554/live/0/mjpeg.sdp", + "stillImageSource":"-f mjpeg -i http://user:pass@ip:554/live/0/mjpeg.jpg", + "maxStreams":2, + "maxWidth":1920, + "maxHeight":1080, + "maxFPS":30 + } + } + ] +} +``` diff --git a/_configs/ZNV-ZDIE-2121W-N3T-A.md b/_configs/ZNV-ZDIE-2121W-N3T-A.md new file mode 100644 index 00000000..6f08de68 --- /dev/null +++ b/_configs/ZNV-ZDIE-2121W-N3T-A.md @@ -0,0 +1,33 @@ +--- +layout: config +title: ZNV ZDIE-2121W-N3T-A +--- +[Product page](http://www.znv.com/product/detail.aspx?id=100000569652783&nodecode=101002001010) + +**Frame Rate:** +* Master: 1280×960@25/30fps, 1280×720@25/30fps +* Slave: 704×576@25/30fps, 640×480@25/30fps + +### config.json + +```json +{ + "platform": "Camera-ffmpeg", + "cameras": [ + { + "name": "ZNVCam", + "uploader": false, + "videoConfig": { + "source": "-rtsp_transport tcp -re -I rtsp://:@192.168.0.254:554/ch0_0.h264", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "packetSize": 188, + "maxFPS": 30, + "maxBitrate": 300, + "debug": false + } + } + ] +} +``` diff --git a/_configs/Zoneminder.md b/_configs/Zoneminder.md new file mode 100644 index 00000000..2758926d --- /dev/null +++ b/_configs/Zoneminder.md @@ -0,0 +1,22 @@ +--- +layout: config +title: Zoneminder +--- +works pretty well with zoneminder, using the ZM 'nph-zms' urls. Since the stream is already "cleaned up", it's pretty fast starting the stream as well. If you have a decent zoneminder setup (on a beefy server, since you need that anyway for motion detection), just run homebridge-camera-ffmpeg straight there. + +## config.json + +```json +{ + "name": "Sideyard Cam", + "videoConfig": { + "source": "-re -i http://localhost/zm/cgi-bin/nph-zms?mode=jpeg&monitor=&scale=100&maxfps=15&buffer=1000&user=&pass=", + "stillImageSource": "-i http://localhost/zm/cgi-bin/nph-zms?mode=single&monitor=&scale=100&user=&pass=", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 15, + "debug": true + } +} +``` diff --git a/_configs/eufy-Security-eufyCam.md b/_configs/eufy-Security-eufyCam.md new file mode 100644 index 00000000..3beba07a --- /dev/null +++ b/_configs/eufy-Security-eufyCam.md @@ -0,0 +1,34 @@ +--- +layout: config +title: eufy Security eufyCam +--- +### 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 https://community.anker.com/t/how-to-setup-rtsp-on-eufycam-to-stream-video-to-your-compatible-nas/64833 diff --git a/_layouts/config.md b/_layouts/config.md new file mode 100644 index 00000000..f4272f32 --- /dev/null +++ b/_layouts/config.md @@ -0,0 +1,6 @@ +--- +layout: default +--- +

{{ page.title }}

+

{{ page.comment }}

+
{{ content }}
diff --git a/_site/404.html b/_site/404.html new file mode 100644 index 00000000..488d646d --- /dev/null +++ b/_site/404.html @@ -0,0 +1,84 @@ + + + + + +Homebridge Camera FFmpeg | A site created to store the tested configurations created by users of Homebridge Camera FFmpeg + + + + + + + + + + + + +
+
+ + +
+

404

+ +

Page not found :(

+

The requested page could not be found.

+
+ +
+
+ + +
+ + + + + +
+ +
+ + + diff --git a/_site/assets/main.css b/_site/assets/main.css new file mode 100644 index 00000000..83b91248 --- /dev/null +++ b/_site/assets/main.css @@ -0,0 +1,196 @@ +/** Reset some basic elements */ +body, h1, h2, h3, h4, h5, h6, p, blockquote, pre, hr, dl, dd, ol, ul, figure { margin: 0; padding: 0; } + +/** Basic styling */ +body { font: 400 16px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; color: #111; background-color: #fdfdfd; -webkit-text-size-adjust: 100%; -webkit-font-feature-settings: "kern" 1; -moz-font-feature-settings: "kern" 1; -o-font-feature-settings: "kern" 1; font-feature-settings: "kern" 1; font-kerning: normal; display: flex; min-height: 100vh; flex-direction: column; } + +/** Set `margin-bottom` to maintain vertical rhythm */ +h1, h2, h3, h4, h5, h6, p, blockquote, pre, ul, ol, dl, figure, .highlight { margin-bottom: 15px; } + +/** `main` element */ +main { display: block; /* Default value of `display` of `main` element is 'inline' in IE 11. */ } + +/** Images */ +img { max-width: 100%; vertical-align: middle; } + +/** Figures */ +figure > img { display: block; } + +figcaption { font-size: 14px; } + +/** Lists */ +ul, ol { margin-left: 30px; } + +li > ul, li > ol { margin-bottom: 0; } + +/** Headings */ +h1, h2, h3, h4, h5, h6 { font-weight: 400; } + +/** Links */ +a { color: #2a7ae2; text-decoration: none; } +a:visited { color: #1756a9; } +a:hover { color: #111; text-decoration: underline; } +.social-media-list a:hover { text-decoration: none; } +.social-media-list a:hover .username { text-decoration: underline; } + +/** Blockquotes */ +blockquote { color: #828282; border-left: 4px solid #e8e8e8; padding-left: 15px; font-size: 18px; letter-spacing: -1px; font-style: italic; } +blockquote > :last-child { margin-bottom: 0; } + +/** Code formatting */ +pre, code { font-size: 15px; border: 1px solid #e8e8e8; border-radius: 3px; background-color: #eef; } + +code { padding: 1px 5px; } + +pre { padding: 8px 12px; overflow-x: auto; } +pre > code { border: 0; padding-right: 0; padding-left: 0; } + +/** Wrapper */ +.wrapper { max-width: -webkit-calc(800px - (30px * 2)); max-width: calc(800px - (30px * 2)); margin-right: auto; margin-left: auto; padding-right: 30px; padding-left: 30px; } +@media screen and (max-width: 800px) { .wrapper { max-width: -webkit-calc(800px - (30px)); max-width: calc(800px - (30px)); padding-right: 15px; padding-left: 15px; } } + +/** Clearfix */ +.wrapper:after, .footer-col-wrapper:after { content: ""; display: table; clear: both; } + +/** Icons */ +.svg-icon { width: 16px; height: 16px; display: inline-block; fill: #828282; padding-right: 5px; vertical-align: text-top; } + +.social-media-list li + li { padding-top: 5px; } + +/** Tables */ +table { margin-bottom: 30px; width: 100%; text-align: left; color: #3f3f3f; border-collapse: collapse; border: 1px solid #e8e8e8; } +table tr:nth-child(even) { background-color: #f7f7f7; } +table th, table td { padding: 10px 15px; } +table th { background-color: #f0f0f0; border: 1px solid #dedede; border-bottom-color: #c9c9c9; } +table td { border: 1px solid #e8e8e8; } + +/** Site header */ +.site-header { border-top: 5px solid #424242; border-bottom: 1px solid #e8e8e8; min-height: 55.95px; position: relative; } + +.site-title { font-size: 26px; font-weight: 300; line-height: 54px; letter-spacing: -1px; margin-bottom: 0; float: left; } +.site-title, .site-title:visited { color: #424242; } + +.site-nav { float: right; line-height: 54px; } +.site-nav .nav-trigger { display: none; } +.site-nav .menu-icon { display: none; } +.site-nav .page-link { color: #111; line-height: 1.5; } +.site-nav .page-link:not(:last-child) { margin-right: 20px; } +@media screen and (max-width: 600px) { .site-nav { position: absolute; top: 9px; right: 15px; background-color: #fdfdfd; border: 1px solid #e8e8e8; border-radius: 5px; text-align: right; } + .site-nav label[for="nav-trigger"] { display: block; float: right; width: 36px; height: 36px; z-index: 2; cursor: pointer; } + .site-nav .menu-icon { display: block; float: right; width: 36px; height: 26px; line-height: 0; padding-top: 10px; text-align: center; } + .site-nav .menu-icon > svg { fill: #424242; } + .site-nav input ~ .trigger { clear: both; display: none; } + .site-nav input:checked ~ .trigger { display: block; padding-bottom: 5px; } + .site-nav .page-link { display: block; padding: 5px 10px; margin-left: 20px; } + .site-nav .page-link:not(:last-child) { margin-right: 0; } } + +/** Site footer */ +.site-footer { border-top: 1px solid #e8e8e8; padding: 30px 0; } + +.footer-heading { font-size: 18px; margin-bottom: 15px; } + +.contact-list, .social-media-list { list-style: none; margin-left: 0; } + +.footer-col-wrapper { font-size: 15px; color: #828282; margin-left: -15px; } + +.footer-col { float: left; margin-bottom: 15px; padding-left: 15px; } + +.footer-col-1 { width: -webkit-calc(35% - (30px / 2)); width: calc(35% - (30px / 2)); } + +.footer-col-2 { width: -webkit-calc(20% - (30px / 2)); width: calc(20% - (30px / 2)); } + +.footer-col-3 { width: -webkit-calc(45% - (30px / 2)); width: calc(45% - (30px / 2)); } + +@media screen and (max-width: 800px) { .footer-col-1, .footer-col-2 { width: -webkit-calc(50% - (30px / 2)); width: calc(50% - (30px / 2)); } + .footer-col-3 { width: -webkit-calc(100% - (30px / 2)); width: calc(100% - (30px / 2)); } } +@media screen and (max-width: 600px) { .footer-col { float: none; width: -webkit-calc(100% - (30px / 2)); width: calc(100% - (30px / 2)); } } +/** Page content */ +.page-content { padding: 30px 0; flex: 1; } + +.page-heading { font-size: 32px; } + +.post-list-heading { font-size: 28px; } + +.post-list { margin-left: 0; list-style: none; } +.post-list > li { margin-bottom: 30px; } + +.post-meta { font-size: 14px; color: #828282; } + +.post-link { display: block; font-size: 24px; } + +/** Posts */ +.post-header { margin-bottom: 30px; } + +.post-title { font-size: 42px; letter-spacing: -1px; line-height: 1; } +@media screen and (max-width: 800px) { .post-title { font-size: 36px; } } + +.post-content { margin-bottom: 30px; } +.post-content h2 { font-size: 32px; } +@media screen and (max-width: 800px) { .post-content h2 { font-size: 28px; } } +.post-content h3 { font-size: 26px; } +@media screen and (max-width: 800px) { .post-content h3 { font-size: 22px; } } +.post-content h4 { font-size: 20px; } +@media screen and (max-width: 800px) { .post-content h4 { font-size: 18px; } } + +/** Syntax highlighting styles */ +.highlight { background: #fff; } +.highlighter-rouge .highlight { background: #eef; } +.highlight .c { color: #998; font-style: italic; } +.highlight .err { color: #a61717; background-color: #e3d2d2; } +.highlight .k { font-weight: bold; } +.highlight .o { font-weight: bold; } +.highlight .cm { color: #998; font-style: italic; } +.highlight .cp { color: #999; font-weight: bold; } +.highlight .c1 { color: #998; font-style: italic; } +.highlight .cs { color: #999; font-weight: bold; font-style: italic; } +.highlight .gd { color: #000; background-color: #fdd; } +.highlight .gd .x { color: #000; background-color: #faa; } +.highlight .ge { font-style: italic; } +.highlight .gr { color: #a00; } +.highlight .gh { color: #999; } +.highlight .gi { color: #000; background-color: #dfd; } +.highlight .gi .x { color: #000; background-color: #afa; } +.highlight .go { color: #888; } +.highlight .gp { color: #555; } +.highlight .gs { font-weight: bold; } +.highlight .gu { color: #aaa; } +.highlight .gt { color: #a00; } +.highlight .kc { font-weight: bold; } +.highlight .kd { font-weight: bold; } +.highlight .kp { font-weight: bold; } +.highlight .kr { font-weight: bold; } +.highlight .kt { color: #458; font-weight: bold; } +.highlight .m { color: #099; } +.highlight .s { color: #d14; } +.highlight .na { color: #008080; } +.highlight .nb { color: #0086B3; } +.highlight .nc { color: #458; font-weight: bold; } +.highlight .no { color: #008080; } +.highlight .ni { color: #800080; } +.highlight .ne { color: #900; font-weight: bold; } +.highlight .nf { color: #900; font-weight: bold; } +.highlight .nn { color: #555; } +.highlight .nt { color: #000080; } +.highlight .nv { color: #008080; } +.highlight .ow { font-weight: bold; } +.highlight .w { color: #bbb; } +.highlight .mf { color: #099; } +.highlight .mh { color: #099; } +.highlight .mi { color: #099; } +.highlight .mo { color: #099; } +.highlight .sb { color: #d14; } +.highlight .sc { color: #d14; } +.highlight .sd { color: #d14; } +.highlight .s2 { color: #d14; } +.highlight .se { color: #d14; } +.highlight .sh { color: #d14; } +.highlight .si { color: #d14; } +.highlight .sx { color: #d14; } +.highlight .sr { color: #009926; } +.highlight .s1 { color: #d14; } +.highlight .ss { color: #990073; } +.highlight .bp { color: #999; } +.highlight .vc { color: #008080; } +.highlight .vg { color: #008080; } +.highlight .vi { color: #008080; } +.highlight .il { color: #099; } diff --git a/_site/assets/minima-social-icons.svg b/_site/assets/minima-social-icons.svg new file mode 100644 index 00000000..fa7399fe --- /dev/null +++ b/_site/assets/minima-social-icons.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/_site/configs/Alptop-AT-200B.html b/_site/configs/Alptop-AT-200B.html new file mode 100644 index 00000000..3bee9e1f --- /dev/null +++ b/_site/configs/Alptop-AT-200B.html @@ -0,0 +1,89 @@ + + + + + +Alptop AT-200B | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Alptop AT-200B

+

+
    +
  • using homebridge-camera-ffmpeg
  • +
  • authentication for rtsp disabled in camera config
  • +
  • RaspberryPi seems to work with higher res but chokes
  • +
+ +
{
+	"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/_site/configs/Amcrest IP3M-HX2W.html b/_site/configs/Amcrest IP3M-HX2W.html new file mode 100644 index 00000000..6fc89b2f --- /dev/null +++ b/_site/configs/Amcrest IP3M-HX2W.html @@ -0,0 +1,95 @@ + + + + + +Amcrest IP3M-HX2W | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Amcrest IP3M-HX2W

+

HOOBS + Raspberry Pi 4

+
    +
  • 7 cameras working as expected. Copy vcodec seems smoother but the other option here working fine with ultrafast option chosen
  • +
+ +
{
+"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/_site/configs/Amcrest-IP2M-841.html b/_site/configs/Amcrest-IP2M-841.html new file mode 100644 index 00000000..9ada1dec --- /dev/null +++ b/_site/configs/Amcrest-IP2M-841.html @@ -0,0 +1,90 @@ + + + + + +Amcrest IP2M-841 | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Amcrest IP2M-841

+

+

Tested from Linux. These camera’s aren’t that great and have difficulty holding a stream for longer than 30s.

+ +

config.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/_site/configs/Amcrest-IP4M-1026.html b/_site/configs/Amcrest-IP4M-1026.html new file mode 100644 index 00000000..1105f391 --- /dev/null +++ b/_site/configs/Amcrest-IP4M-1026.html @@ -0,0 +1,99 @@ + + + + + +Amcrest IP4M-1026 | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Amcrest IP4M-1026

+

+

config.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/_site/configs/Amcrest-IPM-HX1B.html b/_site/configs/Amcrest-IPM-HX1B.html new file mode 100644 index 00000000..9305b8ce --- /dev/null +++ b/_site/configs/Amcrest-IPM-HX1B.html @@ -0,0 +1,88 @@ + + + + + +Amcrest IPM-HX1B | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Amcrest IPM-HX1B

+

with MP4 Passthrough

+

config.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/_site/configs/Anran-DVR.html b/_site/configs/Anran-DVR.html new file mode 100644 index 00000000..55e70d8c --- /dev/null +++ b/_site/configs/Anran-DVR.html @@ -0,0 +1,103 @@ + + + + + +Anran DVR | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Anran DVR

+

Generic Chinese DVR

+

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: https://www.amazon.com/ANRAN-Detection-Surveillance-Security-Recorder/dp/B00JUPFVQE/ref=sr_1_3?ie=UTF8&qid=1485448120&sr=8-3&keywords=anran+dvr

+ +

config.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/_site/configs/August-Doorbell-Cam-Version-1.html b/_site/configs/August-Doorbell-Cam-Version-1.html new file mode 100644 index 00000000..fb8cc9f1 --- /dev/null +++ b/_site/configs/August-Doorbell-Cam-Version-1.html @@ -0,0 +1,96 @@ + + + + + +August Doorbell Cam Version 1 | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

August Doorbell Cam Version 1

+

+

config.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/_site/configs/Avtech-AVM542B.html b/_site/configs/Avtech-AVM542B.html new file mode 100644 index 00000000..e7e69947 --- /dev/null +++ b/_site/configs/Avtech-AVM542B.html @@ -0,0 +1,86 @@ + + + + + +Avtech AVM542B | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Avtech AVM542B

+

+

Server on Synology with Docker via oznu’s homebridge-syno-spk

+ +
{
+  "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/_site/configs/Avtech-MDR751B-DVR.html b/_site/configs/Avtech-MDR751B-DVR.html new file mode 100644 index 00000000..d6453ce1 --- /dev/null +++ b/_site/configs/Avtech-MDR751B-DVR.html @@ -0,0 +1,82 @@ + + + + + +Avtech MDR751B DVR | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Avtech MDR751B DVR

+

+

Server running on windows 10.

+ +
{
+ "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/_site/configs/Axis-M3024-L.html b/_site/configs/Axis-M3024-L.html new file mode 100644 index 00000000..f286f044 --- /dev/null +++ b/_site/configs/Axis-M3024-L.html @@ -0,0 +1,89 @@ + + + + + +Axis M3024-L | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Axis M3024-L

+

with Raspberry Pi 3 Model B

+

config.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"
+          }
+      }
+    ]
+}
+
+
+ +
+
+ + +
+ + + + + +
+ +
+ + + diff --git a/_site/configs/Blue-Iris.html b/_site/configs/Blue-Iris.html new file mode 100644 index 00000000..8fa9b3c1 --- /dev/null +++ b/_site/configs/Blue-Iris.html @@ -0,0 +1,98 @@ + + + + + +Blue Iris | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Blue Iris

+

+

If you have a Blue Iris server, you can add any camera with the following configuration:

+ +
{
+      "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/_site/configs/CNB-IVP4030VR.html b/_site/configs/CNB-IVP4030VR.html new file mode 100644 index 00000000..3556678f --- /dev/null +++ b/_site/configs/CNB-IVP4030VR.html @@ -0,0 +1,95 @@ + + + + + +CNB IVP4030VR | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

CNB IVP4030VR

+

via RPI Model B

+

CNB IP Camera +Model number:IVP4030VR

+ +

Homebridge config.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/_site/configs/D-Link-930L.html b/_site/configs/D-Link-930L.html new file mode 100644 index 00000000..1428b653 --- /dev/null +++ b/_site/configs/D-Link-930L.html @@ -0,0 +1,85 @@ + + + + + +D-Link 930L | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

D-Link 930L

+

+

Tested on Raspberry Pi 3 (with omx)

+ +

config.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/_site/configs/D-Link-932L.html b/_site/configs/D-Link-932L.html new file mode 100644 index 00000000..ec5b1551 --- /dev/null +++ b/_site/configs/D-Link-932L.html @@ -0,0 +1,85 @@ + + + + + +D-Link 932L | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

D-Link 932L

+

+

Works on Mac Mini core i5, Raspberry Pi 3 (with and without omx)

+ +

config.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/_site/configs/D-Link-934L.html b/_site/configs/D-Link-934L.html new file mode 100644 index 00000000..1af1177a --- /dev/null +++ b/_site/configs/D-Link-934L.html @@ -0,0 +1,85 @@ + + + + + +D-Link 934L | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

D-Link 934L

+

+

Tested on Raspberry Pi 3 (with omx)

+ +

config.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/_site/configs/D-Link-936L.html b/_site/configs/D-Link-936L.html new file mode 100644 index 00000000..6d12dd50 --- /dev/null +++ b/_site/configs/D-Link-936L.html @@ -0,0 +1,86 @@ + + + + + +D-Link 936L | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

D-Link 936L

+

+

Works on Raspberry Pi 3 (only with omx)

+ +

config.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/_site/configs/D-Link-DCS-2332L-DCS-2330L.html b/_site/configs/D-Link-DCS-2332L-DCS-2330L.html new file mode 100644 index 00000000..76a98e6b --- /dev/null +++ b/_site/configs/D-Link-DCS-2332L-DCS-2330L.html @@ -0,0 +1,101 @@ + + + + + +D-Link DCS-2332L/DCS-2330L | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

D-Link DCS-2332L/DCS-2330L

+

+

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

+ +
{
+   "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/_site/configs/D-Link-DCS-5222LB1.html b/_site/configs/D-Link-DCS-5222LB1.html new file mode 100644 index 00000000..fa071085 --- /dev/null +++ b/_site/configs/D-Link-DCS-5222LB1.html @@ -0,0 +1,96 @@ + + + + + +D-Link DCS-5222LB1 | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

D-Link DCS-5222LB1

+

+

Notes: Replace IPADDRESS XX.XX.XX.XX, USER and PASSWORD with your data.

+ +

config.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/_site/configs/DBPOWER-MEYE-155303-FBACE.html b/_site/configs/DBPOWER-MEYE-155303-FBACE.html new file mode 100644 index 00000000..1d0af145 --- /dev/null +++ b/_site/configs/DBPOWER-MEYE-155303-FBACE.html @@ -0,0 +1,91 @@ + + + + + +DBPOWER MEYE-155303-FBACE | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

DBPOWER MEYE-155303-FBACE

+

with Raspberry Pi 3 Model B

+

No rtsp streams available - all via MJPEG…

+ +

config.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/_site/configs/Dahua-IPC-A35.html b/_site/configs/Dahua-IPC-A35.html new file mode 100644 index 00000000..97c672c9 --- /dev/null +++ b/_site/configs/Dahua-IPC-A35.html @@ -0,0 +1,91 @@ + + + + + +Dahua IPC-A35 | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Dahua IPC-A35

+

with sound

+

config.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/_site/configs/Dahua-IPC-HFW1320S-W.html b/_site/configs/Dahua-IPC-HFW1320S-W.html new file mode 100644 index 00000000..1fd0bb16 --- /dev/null +++ b/_site/configs/Dahua-IPC-HFW1320S-W.html @@ -0,0 +1,90 @@ + + + + + +Dahua IPC-HFW1320S-W | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Dahua IPC-HFW1320S-W

+

+

config.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/_site/configs/Digoo-DG-W02F.html b/_site/configs/Digoo-DG-W02F.html new file mode 100644 index 00000000..d7aaca4e --- /dev/null +++ b/_site/configs/Digoo-DG-W02F.html @@ -0,0 +1,90 @@ + + + + + +Digoo DG-W02F | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Digoo DG-W02F

+

+

Working through RTSP on RaspberryPi

+ +

config.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/_site/configs/Doorbird-Video-Doorbell-Basic.html b/_site/configs/Doorbird-Video-Doorbell-Basic.html new file mode 100644 index 00000000..6d59d93e --- /dev/null +++ b/_site/configs/Doorbird-Video-Doorbell-Basic.html @@ -0,0 +1,89 @@ + + + + + +Doorbird Video Doorbell | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Doorbird Video Doorbell

+

Basic

+

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

+ +
{
+    "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/_site/configs/Doorbird-Video-Doorbell-Full.html b/_site/configs/Doorbird-Video-Doorbell-Full.html new file mode 100644 index 00000000..ebf62037 --- /dev/null +++ b/_site/configs/Doorbird-Video-Doorbell-Full.html @@ -0,0 +1,90 @@ + + + + + +Doorbird Video Doorbell | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Doorbird Video Doorbell

+

Full

+

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 as well to enable HomeKit doorbell integration on your Doorbird.

+ +

config.json

+ +
{
+    "platform":"Camera-ffmpeg",
+    "cameras":[
+      {
+          "name":"Doorbird Camera",
+          "videoConfig":{
+            "source":"-re -i rtsp://<username>:<password>@<doorbird_ip>:554/mpeg/media.amp",
+            "stillImageSource":"-i http://<username>:<password>@<doorbird_ip>/bha-api/image.cgi",
+            "maxStreams":1,
+            "maxWidth":1280,
+            "maxHeight":720,
+            "maxFPS":15
+          }
+      }
+    ]
+}
+
+
+ +
+
+ + +
+ + + + + +
+ +
+ + + diff --git a/_site/configs/ESP32-Cam-Module.html b/_site/configs/ESP32-Cam-Module.html new file mode 100644 index 00000000..6a32792b --- /dev/null +++ b/_site/configs/ESP32-Cam-Module.html @@ -0,0 +1,97 @@ + + + + + +ESP32-Cam Module | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

ESP32-Cam Module

+

+

config.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: https://github.com/espressif/arduino-esp32/tree/master/docs/arduino-ide +You will just add your Wifi SSID and select camera model in the source code.

+
+ +
+
+ + +
+ + + + + +
+ +
+ + + diff --git a/_site/configs/EZVIZ-C1C-720P.html b/_site/configs/EZVIZ-C1C-720P.html new file mode 100644 index 00000000..16374813 --- /dev/null +++ b/_site/configs/EZVIZ-C1C-720P.html @@ -0,0 +1,91 @@ + + + + + +EZVIZ C1C 720P | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

EZVIZ C1C 720P

+

+

Product Page

+ +

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

+ +
"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/_site/configs/EZVIZ-Mini-Plus.html b/_site/configs/EZVIZ-Mini-Plus.html new file mode 100644 index 00000000..f3fdeb17 --- /dev/null +++ b/_site/configs/EZVIZ-Mini-Plus.html @@ -0,0 +1,95 @@ + + + + + +EZVIZ Mini Plus | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

EZVIZ Mini Plus

+

+

Product Page

+ +

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

+ +
"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/_site/configs/Foscam-FI8910W.html b/_site/configs/Foscam-FI8910W.html new file mode 100644 index 00000000..5ebc56fc --- /dev/null +++ b/_site/configs/Foscam-FI8910W.html @@ -0,0 +1,88 @@ + + + + + +Foscam FI8910W | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Foscam FI8910W

+

+

Streaming via http

+ +
{
+  "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/_site/configs/Foscam-FI9900EP-FI9826P.html b/_site/configs/Foscam-FI9900EP-FI9826P.html new file mode 100644 index 00000000..8c7c318e --- /dev/null +++ b/_site/configs/Foscam-FI9900EP-FI9826P.html @@ -0,0 +1,104 @@ + + + + + +Foscam FI9900EP / FI9826P | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Foscam FI9900EP / FI9826P

+

+

Working through RTSP on RaspberryPi

+ +

config.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/_site/configs/Foscam-IQ200.html b/_site/configs/Foscam-IQ200.html new file mode 100644 index 00000000..912301e5 --- /dev/null +++ b/_site/configs/Foscam-IQ200.html @@ -0,0 +1,90 @@ + + + + + +Foscam IQ200 | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Foscam IQ200

+

+

Working through RTSP

+ +

config.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/_site/configs/Foscam-R2.html b/_site/configs/Foscam-R2.html new file mode 100644 index 00000000..dad8f8ff --- /dev/null +++ b/_site/configs/Foscam-R2.html @@ -0,0 +1,88 @@ + + + + + +Foscam R2 | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Foscam R2

+

+

Working through RTSP

+ +
{
+  "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/_site/configs/Hikam-S5.html b/_site/configs/Hikam-S5.html new file mode 100644 index 00000000..b16d667d --- /dev/null +++ b/_site/configs/Hikam-S5.html @@ -0,0 +1,75 @@ + + + + + +Hikam S5 | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Hikam S5

+

+ Raspberry Pi2

+
    +
  • 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%
  • +
+
+ +
+
+ + +
+ + + + + +
+ +
+ + + diff --git a/_site/configs/IP-Webcam-App.html b/_site/configs/IP-Webcam-App.html new file mode 100644 index 00000000..5bf3c35a --- /dev/null +++ b/_site/configs/IP-Webcam-App.html @@ -0,0 +1,88 @@ + + + + + +IP Webcam App | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

IP Webcam App

+

by Pavel Khlebovich

+

Working through http

+ +

config.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/_site/configs/IP-Webcam.html b/_site/configs/IP-Webcam.html new file mode 100644 index 00000000..fd1a47f2 --- /dev/null +++ b/_site/configs/IP-Webcam.html @@ -0,0 +1,97 @@ + + + + + +IP Webcam | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

IP Webcam

+

running on an older Samsung Smartphone and Raspberry PI 2 (Jessie)

+

To resolve playback issues I had to use the OMX fork to get the PI 2 and FFMPEG to work more or less reliably. +https://github.com/legotheboss/homebridge-camera-ffmpeg-omx

+ +

Camera Settings

+ +
Video Resolution: 1920x1080
+Photo Resolution: 2048x1152
+
+ +

config.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/_site/configs/IeGeek-IP-camera.html b/_site/configs/IeGeek-IP-camera.html new file mode 100644 index 00000000..c565c2a9 --- /dev/null +++ b/_site/configs/IeGeek-IP-camera.html @@ -0,0 +1,91 @@ + + + + + +IeGeek IP camera | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

IeGeek IP camera

+

with Raspberry Pi 3 Model B

+

You can also use “rtsp://ip-address/11” for HQ-Stream.

+ +

config.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/_site/configs/Logitech-C525-USB-camera.html b/_site/configs/Logitech-C525-USB-camera.html new file mode 100644 index 00000000..74807226 --- /dev/null +++ b/_site/configs/Logitech-C525-USB-camera.html @@ -0,0 +1,91 @@ + + + + + +Logitech C525 USB camera | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Logitech C525 USB camera

+

and Raspberry Pi 3

+

This configuration works with synchronized video/audio:

+ +
"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/_site/configs/Logitech-HD-Pro-Webcam-C920-2.html b/_site/configs/Logitech-HD-Pro-Webcam-C920-2.html new file mode 100644 index 00000000..9755a50d --- /dev/null +++ b/_site/configs/Logitech-HD-Pro-Webcam-C920-2.html @@ -0,0 +1,106 @@ + + + + + +Logitech HD Pro Webcam C920 | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Logitech HD Pro Webcam C920

+

w/ Raspberry Pi

+

I set up a Rpi1 with the camera and stream using 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

+ +
"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/_site/configs/Logitech-HD-Pro-Webcam-C920.html b/_site/configs/Logitech-HD-Pro-Webcam-C920.html new file mode 100644 index 00000000..e47a204f --- /dev/null +++ b/_site/configs/Logitech-HD-Pro-Webcam-C920.html @@ -0,0 +1,91 @@ + + + + + +Logitech HD Pro Webcam C920 | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Logitech HD Pro Webcam C920

+

+

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

+ +
"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/_site/configs/Lorex-LHV2008.html b/_site/configs/Lorex-LHV2008.html new file mode 100644 index 00000000..b84f960e --- /dev/null +++ b/_site/configs/Lorex-LHV2008.html @@ -0,0 +1,93 @@ + + + + + +Lorex LHV2008 | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Lorex LHV2008

+

+

config.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/_site/configs/Maygion-H264-IPCam.html b/_site/configs/Maygion-H264-IPCam.html new file mode 100644 index 00000000..fad6ecda --- /dev/null +++ b/_site/configs/Maygion-H264-IPCam.html @@ -0,0 +1,91 @@ + + + + + +Maygion H264 IPCam | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Maygion H264 IPCam

+

(Software Version H.264 6.40) with Raspberry Pi 3 Model B

+

MPEG Snapshot & RTSP Stream

+ +

config.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/_site/configs/Mobotix-M24.html b/_site/configs/Mobotix-M24.html new file mode 100644 index 00000000..d1bfb8e5 --- /dev/null +++ b/_site/configs/Mobotix-M24.html @@ -0,0 +1,88 @@ + + + + + +Mobotix M24 | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Mobotix M24

+

with Raspberry Pi 3 Model B

+

config.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/_site/configs/MotionEyeOS.html b/_site/configs/MotionEyeOS.html new file mode 100644 index 00000000..2a024866 --- /dev/null +++ b/_site/configs/MotionEyeOS.html @@ -0,0 +1,88 @@ + + + + + +MotionEyeOS | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

MotionEyeOS

+

+

This config reads images from a remote computer (e.g. Raspberry Pi) running 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.

+ +
    {
+        "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/_site/configs/Pelco-cameras.html b/_site/configs/Pelco-cameras.html new file mode 100644 index 00000000..cd481a84 --- /dev/null +++ b/_site/configs/Pelco-cameras.html @@ -0,0 +1,92 @@ + + + + + +Pelco cameras | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Pelco cameras

+

+

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

+ +
{
+    "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/_site/configs/Pi-Camera-V2.html b/_site/configs/Pi-Camera-V2.html new file mode 100644 index 00000000..79d65864 --- /dev/null +++ b/_site/configs/Pi-Camera-V2.html @@ -0,0 +1,91 @@ + + + + + +Pi Camera V2 | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Pi Camera V2

+

+

The dedicated homebridge-rpi-camera plugin makes the ffmpeg process crash for me.

+ +

According to this comment, this adapted config work smoothly.

+ +
{
+   "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/_site/configs/ROCAM-NC400HD.html b/_site/configs/ROCAM-NC400HD.html new file mode 100644 index 00000000..06c71fcf --- /dev/null +++ b/_site/configs/ROCAM-NC400HD.html @@ -0,0 +1,90 @@ + + + + + +ROCAM-NC400HD | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

ROCAM-NC400HD

+

with Raspberry Pi Model B 512Mb RAM - jessie by BonRm

+

config.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/_site/configs/Raspberry-Pi-Camera-Module-V2.html b/_site/configs/Raspberry-Pi-Camera-Module-V2.html new file mode 100644 index 00000000..412ce8e3 --- /dev/null +++ b/_site/configs/Raspberry-Pi-Camera-Module-V2.html @@ -0,0 +1,96 @@ + + + + + +Raspberry Pi Camera Module V2 | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Raspberry Pi Camera Module V2

+

and Raspberry PI Zero W (Jessie)

+

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 )

+ +
{
+  "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/_site/configs/Raspberry-Pi-camera-v1.3.html b/_site/configs/Raspberry-Pi-camera-v1.3.html new file mode 100644 index 00000000..fb188518 --- /dev/null +++ b/_site/configs/Raspberry-Pi-camera-v1.3.html @@ -0,0 +1,121 @@ + + + + + +Raspberry Pi camera v1.3 | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Raspberry Pi camera v1.3

+

connected to another RasPi

+

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

+ +
#!/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

+ +
{
+    "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
+            }
+        }
+    ]
+}
+
+
+ +
+
+ + +
+ + + + + +
+ +
+ + + diff --git a/_site/configs/ReoLink-Camera-RLC-410.html b/_site/configs/ReoLink-Camera-RLC-410.html new file mode 100644 index 00000000..80fa8714 --- /dev/null +++ b/_site/configs/ReoLink-Camera-RLC-410.html @@ -0,0 +1,90 @@ + + + + + +ReoLink Camera RLC-410 | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

ReoLink Camera RLC-410

+

(Should work with all ReoLink-Cams supporting RTSP)

+

config.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
+         }
+      }
+   ]
+}
+
+ + +
+ +
+
+ + +
+ + + + + +
+ +
+ + + diff --git a/_site/configs/ReoLink-RLC-422.html b/_site/configs/ReoLink-RLC-422.html new file mode 100644 index 00000000..ae4bb88d --- /dev/null +++ b/_site/configs/ReoLink-RLC-422.html @@ -0,0 +1,95 @@ + + + + + +ReoLink RLC-422 | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

ReoLink RLC-422

+

+

config.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/_site/configs/Reolink-RLC-410W.html b/_site/configs/Reolink-RLC-410W.html new file mode 100644 index 00000000..84736b4e --- /dev/null +++ b/_site/configs/Reolink-RLC-410W.html @@ -0,0 +1,95 @@ + + + + + +Reolink RLC-410W | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Reolink RLC-410W

+

HOOBS + Raspberry Pi 4

+
    +
  • 7 cameras working as expected. Copy vcodec seems smoother but the other option here working fine with ultrafast option chosen
  • +
+ +
{
+"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/_site/configs/Reolink-camera.html b/_site/configs/Reolink-camera.html new file mode 100644 index 00000000..1b3947a3 --- /dev/null +++ b/_site/configs/Reolink-camera.html @@ -0,0 +1,236 @@ + + + + + +Reolink camera | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Reolink camera

+

with better picture (rtmp) and audio (Ffmpeg tutorial)

+

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:

+ + + + + + + + + + + + + + + + + + + + + + +
IDName
1fluent
2balanced
3clean
+ +

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

+ +
$ 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.

+ +
$ 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)

+ +
$ sudo apt-get update
+
+ +

It will update some package lists and give two errors.

+
    +
  1. W: GPG error
  2. +
  3. W: Duplicate sources
  4. +
+ +

We’ll deal with those next…

+ +
$ sudo apt-get install deb-multimedia-keyring
+
+ +

y confirm install without verification

+ +
$ 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.

+ +
$ 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.

+ +
$ 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…

+ +
$ cd ffmpeg
+
+ +

Note that the following command from sudo to --enable-nonfree is all one continuous command.

+ +
$ 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.)

+ +
$ 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.

+ +
$ sudo make install
+
+ +
$ sudo ldconfig
+
+ +
$ 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

+ +
"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:

+ +
"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/_site/configs/Samsung-SNH-P6410BN.html b/_site/configs/Samsung-SNH-P6410BN.html new file mode 100644 index 00000000..ae037597 --- /dev/null +++ b/_site/configs/Samsung-SNH-P6410BN.html @@ -0,0 +1,107 @@ + + + + + +Samsung SNH-P6410BN | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Samsung SNH-P6410BN

+

Samsung SmartCam (firmware 1.08) and Raspberry PI 3

+

I had to use the OMX fork to get the PI 3 and FFMPEG to work more or less reliably. +https://github.com/legotheboss/homebridge-camera-ffmpeg-omx

+ +

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

+ +
{
+   "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/_site/configs/Sannce-1080P-IP-Cameras.html b/_site/configs/Sannce-1080P-IP-Cameras.html new file mode 100644 index 00000000..64173608 --- /dev/null +++ b/_site/configs/Sannce-1080P-IP-Cameras.html @@ -0,0 +1,106 @@ + + + + + +Sannce 1080P IP Cameras | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Sannce 1080P IP Cameras

+

+

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

+ +
{
+   "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
    • +
    +
  • +
  • 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 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 image. +
      +
    • This required installing ffmpeg from the jessie-backports apt source inside the container.
    • +
    +
  • +
+
+ +
+
+ + +
+ + + + + +
+ +
+ + + diff --git a/_site/configs/SecuritySpy.html b/_site/configs/SecuritySpy.html new file mode 100644 index 00000000..ad364cb3 --- /dev/null +++ b/_site/configs/SecuritySpy.html @@ -0,0 +1,101 @@ + + + + + +SecuritySpy | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

SecuritySpy

+

for MacOs

+

Product page

+ +

The great thing about this is, if SecuritySpy supports your camera (which is an extensive list) 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.

+ +
{
+  "platform": "Camera-ffmpeg",
+  "cameras": [
+    {
+      "name": "Security Cam 0",
+      "videoConfig": {
+        "source": "-i http://<SecurityspyUsername>:<SecurityspyPassword>@<SecurityspyIP>:<SecurityspyPort>/++hls?cameraNum=0&codec=h264&width=1280&height=720",
+        "stillImageSource": "-i http://<SecurityspyUsername>:<SecurityspyPassword>@<SecurityspyIP>:<SecurityspyPort>/++image?cameraNum=0&width=480&height=270",
+        "maxStreams": 2,
+        "maxWidth": 1280,
+        "maxHeight": 720,
+        "maxFPS": 30
+      },
+    }
+    {
+      "name": "Security Cam 1",
+      "videoConfig": {
+        "source": "-i http://<SecurityspyUsername>:<SecurityspyPassword>@<SecurityspyIP>:<SecurityspyPort>/++hls?cameraNum=1&codec=h264&width=1280&height=720",
+        "stillImageSource": "-i http://<SecurityspyUsername>:<SecurityspyPassword>@<SecurityspyIP>:<SecurityspyPort>/++image?cameraNum=1&width=480&height=270",
+        "maxStreams": 2,
+        "maxWidth": 1280,
+        "maxHeight": 720,
+        "maxFPS": 30
+      }
+    }
+  ]
+}
+
+
+ +
+
+ + +
+ + + + + +
+ +
+ + + diff --git a/_site/configs/Synology-Surveillance-Station-2.html b/_site/configs/Synology-Surveillance-Station-2.html new file mode 100644 index 00000000..873ec0ba --- /dev/null +++ b/_site/configs/Synology-Surveillance-Station-2.html @@ -0,0 +1,95 @@ + + + + + +Synology Surveillance Station | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Synology Surveillance Station

+

+

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

+ +
{
+"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/_site/configs/Synology-Surveillance-Station.html b/_site/configs/Synology-Surveillance-Station.html new file mode 100644 index 00000000..998d84e1 --- /dev/null +++ b/_site/configs/Synology-Surveillance-Station.html @@ -0,0 +1,90 @@ + + + + + +Synology Surveillance Station | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Synology Surveillance Station

+

+

For Synology Surveillance Station +Link for source and stillImageSource are generate by Surveillance Station, right clic on camera and select “Share streaming Path”

+ +
{
+   "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/_site/configs/Szsinocam-ip-onvif.html b/_site/configs/Szsinocam-ip-onvif.html new file mode 100644 index 00000000..8db8d7e8 --- /dev/null +++ b/_site/configs/Szsinocam-ip-onvif.html @@ -0,0 +1,92 @@ + + + + + +Szsinocam ip onvif | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Szsinocam ip onvif

+

+
    +
  • using homebridge-camera-ffmpeg
  • +
  • authentication for rtsp disabled in camera config
  • +
+ +
{
+    "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/_site/configs/TP-Link-C100.html b/_site/configs/TP-Link-C100.html new file mode 100644 index 00000000..56c9b836 --- /dev/null +++ b/_site/configs/TP-Link-C100.html @@ -0,0 +1,98 @@ + + + + + +TP-Link C100 | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

TP-Link C100

+

+

Model C 100

+ +

config.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/_site/configs/TP-Link-C200.html b/_site/configs/TP-Link-C200.html new file mode 100644 index 00000000..9391f37f --- /dev/null +++ b/_site/configs/TP-Link-C200.html @@ -0,0 +1,99 @@ + + + + + +TP-Link C200 | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

TP-Link C200

+

+

Model C 200

+ +

config.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/_site/configs/UNV-Uniview.html b/_site/configs/UNV-Uniview.html new file mode 100644 index 00000000..e398e1ac --- /dev/null +++ b/_site/configs/UNV-Uniview.html @@ -0,0 +1,108 @@ + + + + + +UNV Uniview | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

UNV Uniview

+

+

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

+ +
[
+    {
+        "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/_site/configs/Ubiquiti-AirCam.html b/_site/configs/Ubiquiti-AirCam.html new file mode 100644 index 00000000..40ec0b3e --- /dev/null +++ b/_site/configs/Ubiquiti-AirCam.html @@ -0,0 +1,95 @@ + + + + + +Ubiquiti AirCam | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Ubiquiti AirCam

+

(Generation 1, firmware v3.1.4.39), RPi 3

+

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 https://github.com/legotheboss/homebridge-camera-ffmpeg-omx fork for RPi 3 support.

+ +

config.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/_site/configs/Ubiquiti-UVC-G3.html b/_site/configs/Ubiquiti-UVC-G3.html new file mode 100644 index 00000000..0e2c7d12 --- /dev/null +++ b/_site/configs/Ubiquiti-UVC-G3.html @@ -0,0 +1,90 @@ + + + + + +Ubiquiti UVC G3 | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Ubiquiti UVC G3

+

+

config.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/_site/configs/UniFi-Video-G3-Micro.html b/_site/configs/UniFi-Video-G3-Micro.html new file mode 100644 index 00000000..7e12e8af --- /dev/null +++ b/_site/configs/UniFi-Video-G3-Micro.html @@ -0,0 +1,94 @@ + + + + + +UniFi Video G3-Micro | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

UniFi Video G3-Micro

+

+

Description

+ +

Audio and video working on a Raspberry Pi 3 Model B using the instructions here. “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

+ +
{
+  "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/_site/configs/V380-Cloudcam.html b/_site/configs/V380-Cloudcam.html new file mode 100644 index 00000000..51f97850 --- /dev/null +++ b/_site/configs/V380-Cloudcam.html @@ -0,0 +1,108 @@ + + + + + +V380 Cloudcam | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

V380 Cloudcam

+

+

Need to patch the firmware to activate RTSP on port 554.

+ +

Solution found here

+ +

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

+
    +
  1. Unzip the files
  2. +
  3. Copy the files to the root of the microSD
  4. +
  5. Restart the camera
  6. +
  7. Wait until the update finishes, listening if you have a horn or watching the LEDs
  8. +
  9. Check that the 554 port has been opened
  10. +
  11. Delete the SD update files
  12. +
+ +

config.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/_site/configs/VESKYS-720P-Tilt-Pan.html b/_site/configs/VESKYS-720P-Tilt-Pan.html new file mode 100644 index 00000000..434ff8f7 --- /dev/null +++ b/_site/configs/VESKYS-720P-Tilt-Pan.html @@ -0,0 +1,90 @@ + + + + + +VESKYS 720P Tilt / Pan | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

VESKYS 720P Tilt / Pan

+

+

config.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/_site/configs/Vivotek-CC-8130.html b/_site/configs/Vivotek-CC-8130.html new file mode 100644 index 00000000..62835118 --- /dev/null +++ b/_site/configs/Vivotek-CC-8130.html @@ -0,0 +1,102 @@ + + + + + +Vivotek CC-8130 | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Vivotek CC-8130

+

and Raspberry PI 2 (Jessie)

+

To resolve playback issues I had to use the OMX fork to get the PI 2 and FFMPEG to work more or less reliably. +https://github.com/legotheboss/homebridge-camera-ffmpeg-omx

+ +

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

+ +
{
+   "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/_site/configs/Vstarcam-C7824WIP.html b/_site/configs/Vstarcam-C7824WIP.html new file mode 100644 index 00000000..0115320b --- /dev/null +++ b/_site/configs/Vstarcam-C7824WIP.html @@ -0,0 +1,89 @@ + + + + + +Vstarcam C7824WIP | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Vstarcam C7824WIP

+

+
    +
  • using homebridge-camera-ffmpeg 2.3.0
  • +
  • authentication for rtsp admin and camera password
  • +
+ +
{
+    "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/_site/configs/WaveShare-RPi-Camera.html b/_site/configs/WaveShare-RPi-Camera.html new file mode 100644 index 00000000..40015791 --- /dev/null +++ b/_site/configs/WaveShare-RPi-Camera.html @@ -0,0 +1,214 @@ + + + + + +WaveShare RPi Camera | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

WaveShare RPi Camera

+

and Raspberry PI 3B (Stretch)

+

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

+ +
{
+    "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

+ +
{
+    "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

+ +
{
+    "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       <string>     ED.V.... OpenMAX library name
+  -omx_libprefix     <string>     ED.V.... OpenMAX library prefix
+  -zerocopy          <int>        E..V.... Try to avoid copying input frames if possible (from 0 to 1) (default 0)
+
+
+ +
+
+ + +
+ + + + + +
+ +
+ + + diff --git a/_site/configs/WyzeCam-V2.html b/_site/configs/WyzeCam-V2.html new file mode 100644 index 00000000..141e5af0 --- /dev/null +++ b/_site/configs/WyzeCam-V2.html @@ -0,0 +1,87 @@ + + + + + +WyzeCam V2 | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

WyzeCam V2

+

with Raspberry Pi 4 Model B

+

As described in this blog post, 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

+ +
{
+    "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/_site/configs/Wyzecam-V1.html b/_site/configs/Wyzecam-V1.html new file mode 100644 index 00000000..706206de --- /dev/null +++ b/_site/configs/Wyzecam-V1.html @@ -0,0 +1,94 @@ + + + + + +Wyzecam V1 | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Wyzecam V1

+

with Raspberry Pi 3 Model B Rev 1.2

+

Replica of the Xiaomi Xiaofang (Small White Square)

+ +

Note: I used the homebridge-camera-ffmpeg-omx plugin (https://github.com/legotheboss/homebridge-camera-ffmpeg-omx) along with OpenIPC v0.2.4 for Wyze V1 (https://github.com/openipcamera/openipc-firmware) which is forked from Fang-Hacks(https://github.com/samtap/fang-hacks)

+ +

The rest of the config.json file is similar to the above Xioami Xiaofang config.json

+ +

config.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/_site/configs/Xiaomi-Dafang.html b/_site/configs/Xiaomi-Dafang.html new file mode 100644 index 00000000..9487be77 --- /dev/null +++ b/_site/configs/Xiaomi-Dafang.html @@ -0,0 +1,96 @@ + + + + + +Xiaomi Dafang | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Xiaomi Dafang

+

with Raspberry Pi 3 Model B

+

Note: 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

+ +
{
+   "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/_site/configs/Xiaomi-Xiaofang-1S.html b/_site/configs/Xiaomi-Xiaofang-1S.html new file mode 100644 index 00000000..fb91658f --- /dev/null +++ b/_site/configs/Xiaomi-Xiaofang-1S.html @@ -0,0 +1,95 @@ + + + + + +Xiaomi Xiaofang 1S | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Xiaomi Xiaofang 1S

+

on Raspberry Pi3b (maybe also for Pi2 etc)

+

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):

+ +
{
+  "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/_site/configs/Xiaomi-Xiaofang.html b/_site/configs/Xiaomi-Xiaofang.html new file mode 100644 index 00000000..eb814ad0 --- /dev/null +++ b/_site/configs/Xiaomi-Xiaofang.html @@ -0,0 +1,93 @@ + + + + + +Xiaomi Xiaofang | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Xiaomi Xiaofang

+

(Small White Square) with Raspberry Pi 3 Model B

+

Note: I applied 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

+ +
{
+   "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/_site/configs/Y-cam-Cameras.html b/_site/configs/Y-cam-Cameras.html new file mode 100644 index 00000000..dfb3d639 --- /dev/null +++ b/_site/configs/Y-cam-Cameras.html @@ -0,0 +1,105 @@ + + + + + +Y-cam Cameras | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Y-cam Cameras

+

+

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

+ +
{
+    "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/_site/configs/ZNV-ZDIE-2121W-N3T-A.html b/_site/configs/ZNV-ZDIE-2121W-N3T-A.html new file mode 100644 index 00000000..acff4005 --- /dev/null +++ b/_site/configs/ZNV-ZDIE-2121W-N3T-A.html @@ -0,0 +1,99 @@ + + + + + +ZNV ZDIE-2121W-N3T-A | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

ZNV ZDIE-2121W-N3T-A

+

+

Product page

+ +

Frame Rate:

+
    +
  • Master: 1280×960@25/30fps, 1280×720@25/30fps
  • +
  • Slave: 704×576@25/30fps, 640×480@25/30fps
  • +
+ +

config.json

+ +
{
+    "platform": "Camera-ffmpeg",
+    "cameras": [
+        {
+            "name": "ZNVCam",
+            "uploader": false,
+            "videoConfig": {
+                "source": "-rtsp_transport tcp -re -I rtsp://<admin>:<password>@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/_site/configs/Zoneminder.html b/_site/configs/Zoneminder.html new file mode 100644 index 00000000..34ea9316 --- /dev/null +++ b/_site/configs/Zoneminder.html @@ -0,0 +1,86 @@ + + + + + +Zoneminder | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

Zoneminder

+

+

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

+ +
{
+  "name": "Sideyard Cam",
+  "videoConfig": {
+    "source": "-re -i http://localhost/zm/cgi-bin/nph-zms?mode=jpeg&monitor=<zm monitor id>&scale=100&maxfps=15&buffer=1000&user=<zm user>&pass=<zm passwd>",
+    "stillImageSource": "-i http://localhost/zm/cgi-bin/nph-zms?mode=single&monitor=<zm monitor id>&scale=100&user=<zm user>&pass=<zm passwd>",
+    "maxStreams": 2,
+    "maxWidth": 1280,
+    "maxHeight": 720,
+    "maxFPS": 15,
+    "debug": true
+  }
+}
+
+
+ +
+
+ + +
+ + + + + +
+ +
+ + + diff --git a/_site/configs/eufy-Security-eufyCam.html b/_site/configs/eufy-Security-eufyCam.html new file mode 100644 index 00000000..6fe078a4 --- /dev/null +++ b/_site/configs/eufy-Security-eufyCam.html @@ -0,0 +1,100 @@ + + + + + +eufy Security eufyCam | Homebridge Camera FFmpeg + + + + + + + + + + + + + + +
+
+

eufy Security eufyCam

+

+

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

+ +

config.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. +
  3. 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 https://community.anker.com/t/how-to-setup-rtsp-on-eufycam-to-stream-video-to-your-compatible-nas/64833
  4. +
+
+ +
+
+ + +
+ + + + + +
+ +
+ + + diff --git a/_site/contributing/index.html b/_site/contributing/index.html new file mode 100644 index 00000000..b8167dbd --- /dev/null +++ b/_site/contributing/index.html @@ -0,0 +1,81 @@ + + + + + +Contributing | Homebridge Camera FFmpeg + + + + + + + + + + + + +
+
+
+ +
+

Contributing

+
+ +
+

If you’d like to contribute a camera configuration, you have two main options:

+ +
    +
  1. Open an Issue on this project and submit the details there.
  2. +
  3. Fork this repository and create a Pull Request after you make a new page.
  4. +
+ +
+ +
+ +
+
+ + +
+ + + + + +
+ +
+ + + diff --git a/_site/feed.xml b/_site/feed.xml new file mode 100644 index 00000000..42a894c0 --- /dev/null +++ b/_site/feed.xml @@ -0,0 +1 @@ +Jekyll2020-07-27T22:37:41-04:00http://0.0.0.0:4000/feed.xmlHomebridge Camera FFmpegA site created to store the tested configurations created by users of Homebridge Camera FFmpeg \ No newline at end of file diff --git a/_site/index.html b/_site/index.html new file mode 100644 index 00000000..8f62b91d --- /dev/null +++ b/_site/index.html @@ -0,0 +1,305 @@ + + + + + +Tested Configurations | Homebridge Camera FFmpeg + + + + + + + + + + + + +
+
+

Tested Configurations

iSpyConnect maintains a large database of camera manufacturers, supported methods (MJPEG, FFMPEG, RTSP), and the necessary URLs for accessing video, audio, and stills.

+ +

If you don’t know, or can’t find this information, start with this website.

+ +

While many of these configurations use the -re option in their source configs, it is strongly recommended that you do not use that, as it may cause problems with live video.

+ + + +
+ +
+
+ + +
+ + + + + +
+ +
+ + + diff --git a/contributing.md b/contributing.md new file mode 100644 index 00000000..fa142b53 --- /dev/null +++ b/contributing.md @@ -0,0 +1,10 @@ +--- +layout: page +title: Contributing +permalink: /contributing/ +--- + +If you'd like to contribute a camera configuration, you have two main options: + +1. Open an Issue on this project and submit the details there. +2. Fork this repository and create a Pull Request after you make a new page. diff --git a/index.md b/index.md new file mode 100644 index 00000000..af6af578 --- /dev/null +++ b/index.md @@ -0,0 +1,13 @@ +--- +layout: home +title: Tested Configurations +--- +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, or can’t find this information, start with this website. + +While many of these configurations use the `-re` option in their source configs, it is strongly recommended that you do not use that, as it may cause problems with live video. +{% assign collection = site.configs | sort_natural:"title" %} +{% for config in collection %} + - [{{ config.title }}]({{ config.url }}){% if config.comment %}: {{ config.comment }}{% endif %} +{% endfor %} From 26c41eba7d2eaadcd3952c1c835fa19bb2b7256d Mon Sep 17 00:00:00 2001 From: David Maher Date: Mon, 27 Jul 2020 22:55:02 -0400 Subject: [PATCH 02/38] Fix paths --- .eslintrc.js | 39 --- .github/FUNDING.yml | 4 - .github/ISSUE_TEMPLATE/bug_report.md | 49 --- .github/ISSUE_TEMPLATE/config.yml | 5 - .github/ISSUE_TEMPLATE/feature_request.md | 23 -- .github/ISSUE_TEMPLATE/support-request.md | 43 --- .github/dependabot.yml | 15 - .github/workflows/nodejs.yml | 50 --- .github/workflows/prerelease.js | 26 -- .github/workflows/publish-beta.yml | 41 --- .github/workflows/stale.yml | 27 -- .gitignore | 43 +-- .gitignore.1 | 4 - .markdownlint.json | 5 - _config.yml | 2 + _site/404.html | 84 ----- _site/assets/main.css | 196 ----------- _site/assets/minima-social-icons.svg | 33 -- _site/configs/Alptop-AT-200B.html | 89 ----- _site/configs/Amcrest IP3M-HX2W.html | 95 ------ _site/configs/Amcrest-IP2M-841.html | 90 ------ _site/configs/Amcrest-IP4M-1026.html | 99 ------ _site/configs/Amcrest-IPM-HX1B.html | 88 ----- _site/configs/Anran-DVR.html | 103 ------ .../August-Doorbell-Cam-Version-1.html | 96 ------ _site/configs/Avtech-AVM542B.html | 86 ----- _site/configs/Avtech-MDR751B-DVR.html | 82 ----- _site/configs/Axis-M3024-L.html | 89 ----- _site/configs/Blue-Iris.html | 98 ------ _site/configs/CNB-IVP4030VR.html | 95 ------ _site/configs/D-Link-930L.html | 85 ----- _site/configs/D-Link-932L.html | 85 ----- _site/configs/D-Link-934L.html | 85 ----- _site/configs/D-Link-936L.html | 86 ----- _site/configs/D-Link-DCS-2332L-DCS-2330L.html | 101 ------ _site/configs/D-Link-DCS-5222LB1.html | 96 ------ _site/configs/DBPOWER-MEYE-155303-FBACE.html | 91 ------ _site/configs/Dahua-IPC-A35.html | 91 ------ _site/configs/Dahua-IPC-HFW1320S-W.html | 90 ------ _site/configs/Digoo-DG-W02F.html | 90 ------ .../Doorbird-Video-Doorbell-Basic.html | 89 ----- .../configs/Doorbird-Video-Doorbell-Full.html | 90 ------ _site/configs/ESP32-Cam-Module.html | 97 ------ _site/configs/EZVIZ-C1C-720P.html | 91 ------ _site/configs/EZVIZ-Mini-Plus.html | 95 ------ _site/configs/Foscam-FI8910W.html | 88 ----- _site/configs/Foscam-FI9900EP-FI9826P.html | 104 ------ _site/configs/Foscam-IQ200.html | 90 ------ _site/configs/Foscam-R2.html | 88 ----- _site/configs/Hikam-S5.html | 75 ----- _site/configs/IP-Webcam-App.html | 88 ----- _site/configs/IP-Webcam.html | 97 ------ _site/configs/IeGeek-IP-camera.html | 91 ------ _site/configs/Logitech-C525-USB-camera.html | 91 ------ .../Logitech-HD-Pro-Webcam-C920-2.html | 106 ------ .../configs/Logitech-HD-Pro-Webcam-C920.html | 91 ------ _site/configs/Lorex-LHV2008.html | 93 ------ _site/configs/Maygion-H264-IPCam.html | 91 ------ _site/configs/Mobotix-M24.html | 88 ----- _site/configs/MotionEyeOS.html | 88 ----- _site/configs/Pelco-cameras.html | 92 ------ _site/configs/Pi-Camera-V2.html | 91 ------ _site/configs/ROCAM-NC400HD.html | 90 ------ .../Raspberry-Pi-Camera-Module-V2.html | 96 ------ _site/configs/Raspberry-Pi-camera-v1.3.html | 121 ------- _site/configs/ReoLink-Camera-RLC-410.html | 90 ------ _site/configs/ReoLink-RLC-422.html | 95 ------ _site/configs/Reolink-RLC-410W.html | 95 ------ _site/configs/Reolink-camera.html | 236 -------------- _site/configs/Samsung-SNH-P6410BN.html | 107 ------ _site/configs/Sannce-1080P-IP-Cameras.html | 106 ------ _site/configs/SecuritySpy.html | 101 ------ .../Synology-Surveillance-Station-2.html | 95 ------ .../Synology-Surveillance-Station.html | 90 ------ _site/configs/Szsinocam-ip-onvif.html | 92 ------ _site/configs/TP-Link-C100.html | 98 ------ _site/configs/TP-Link-C200.html | 99 ------ _site/configs/UNV-Uniview.html | 108 ------- _site/configs/Ubiquiti-AirCam.html | 95 ------ _site/configs/Ubiquiti-UVC-G3.html | 90 ------ _site/configs/UniFi-Video-G3-Micro.html | 94 ------ _site/configs/V380-Cloudcam.html | 108 ------- _site/configs/VESKYS-720P-Tilt-Pan.html | 90 ------ _site/configs/Vivotek-CC-8130.html | 102 ------ _site/configs/Vstarcam-C7824WIP.html | 89 ----- _site/configs/WaveShare-RPi-Camera.html | 214 ------------ _site/configs/WyzeCam-V2.html | 87 ----- _site/configs/Wyzecam-V1.html | 94 ------ _site/configs/Xiaomi-Dafang.html | 96 ------ _site/configs/Xiaomi-Xiaofang-1S.html | 95 ------ _site/configs/Xiaomi-Xiaofang.html | 93 ------ _site/configs/Y-cam-Cameras.html | 105 ------ _site/configs/ZNV-ZDIE-2121W-N3T-A.html | 99 ------ _site/configs/Zoneminder.html | 86 ----- _site/configs/eufy-Security-eufyCam.html | 100 ------ _site/contributing/index.html | 81 ----- _site/feed.xml | 1 - _site/index.html | 305 ------------------ index.md | 2 +- 99 files changed, 7 insertions(+), 8551 deletions(-) delete mode 100644 .eslintrc.js delete mode 100644 .github/FUNDING.yml delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md delete mode 100644 .github/ISSUE_TEMPLATE/config.yml delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.md delete mode 100644 .github/ISSUE_TEMPLATE/support-request.md delete mode 100644 .github/dependabot.yml delete mode 100644 .github/workflows/nodejs.yml delete mode 100644 .github/workflows/prerelease.js delete mode 100644 .github/workflows/publish-beta.yml delete mode 100644 .github/workflows/stale.yml delete mode 100644 .gitignore.1 delete mode 100644 .markdownlint.json delete mode 100644 _site/404.html delete mode 100644 _site/assets/main.css delete mode 100644 _site/assets/minima-social-icons.svg delete mode 100644 _site/configs/Alptop-AT-200B.html delete mode 100644 _site/configs/Amcrest IP3M-HX2W.html delete mode 100644 _site/configs/Amcrest-IP2M-841.html delete mode 100644 _site/configs/Amcrest-IP4M-1026.html delete mode 100644 _site/configs/Amcrest-IPM-HX1B.html delete mode 100644 _site/configs/Anran-DVR.html delete mode 100644 _site/configs/August-Doorbell-Cam-Version-1.html delete mode 100644 _site/configs/Avtech-AVM542B.html delete mode 100644 _site/configs/Avtech-MDR751B-DVR.html delete mode 100644 _site/configs/Axis-M3024-L.html delete mode 100644 _site/configs/Blue-Iris.html delete mode 100644 _site/configs/CNB-IVP4030VR.html delete mode 100644 _site/configs/D-Link-930L.html delete mode 100644 _site/configs/D-Link-932L.html delete mode 100644 _site/configs/D-Link-934L.html delete mode 100644 _site/configs/D-Link-936L.html delete mode 100644 _site/configs/D-Link-DCS-2332L-DCS-2330L.html delete mode 100644 _site/configs/D-Link-DCS-5222LB1.html delete mode 100644 _site/configs/DBPOWER-MEYE-155303-FBACE.html delete mode 100644 _site/configs/Dahua-IPC-A35.html delete mode 100644 _site/configs/Dahua-IPC-HFW1320S-W.html delete mode 100644 _site/configs/Digoo-DG-W02F.html delete mode 100644 _site/configs/Doorbird-Video-Doorbell-Basic.html delete mode 100644 _site/configs/Doorbird-Video-Doorbell-Full.html delete mode 100644 _site/configs/ESP32-Cam-Module.html delete mode 100644 _site/configs/EZVIZ-C1C-720P.html delete mode 100644 _site/configs/EZVIZ-Mini-Plus.html delete mode 100644 _site/configs/Foscam-FI8910W.html delete mode 100644 _site/configs/Foscam-FI9900EP-FI9826P.html delete mode 100644 _site/configs/Foscam-IQ200.html delete mode 100644 _site/configs/Foscam-R2.html delete mode 100644 _site/configs/Hikam-S5.html delete mode 100644 _site/configs/IP-Webcam-App.html delete mode 100644 _site/configs/IP-Webcam.html delete mode 100644 _site/configs/IeGeek-IP-camera.html delete mode 100644 _site/configs/Logitech-C525-USB-camera.html delete mode 100644 _site/configs/Logitech-HD-Pro-Webcam-C920-2.html delete mode 100644 _site/configs/Logitech-HD-Pro-Webcam-C920.html delete mode 100644 _site/configs/Lorex-LHV2008.html delete mode 100644 _site/configs/Maygion-H264-IPCam.html delete mode 100644 _site/configs/Mobotix-M24.html delete mode 100644 _site/configs/MotionEyeOS.html delete mode 100644 _site/configs/Pelco-cameras.html delete mode 100644 _site/configs/Pi-Camera-V2.html delete mode 100644 _site/configs/ROCAM-NC400HD.html delete mode 100644 _site/configs/Raspberry-Pi-Camera-Module-V2.html delete mode 100644 _site/configs/Raspberry-Pi-camera-v1.3.html delete mode 100644 _site/configs/ReoLink-Camera-RLC-410.html delete mode 100644 _site/configs/ReoLink-RLC-422.html delete mode 100644 _site/configs/Reolink-RLC-410W.html delete mode 100644 _site/configs/Reolink-camera.html delete mode 100644 _site/configs/Samsung-SNH-P6410BN.html delete mode 100644 _site/configs/Sannce-1080P-IP-Cameras.html delete mode 100644 _site/configs/SecuritySpy.html delete mode 100644 _site/configs/Synology-Surveillance-Station-2.html delete mode 100644 _site/configs/Synology-Surveillance-Station.html delete mode 100644 _site/configs/Szsinocam-ip-onvif.html delete mode 100644 _site/configs/TP-Link-C100.html delete mode 100644 _site/configs/TP-Link-C200.html delete mode 100644 _site/configs/UNV-Uniview.html delete mode 100644 _site/configs/Ubiquiti-AirCam.html delete mode 100644 _site/configs/Ubiquiti-UVC-G3.html delete mode 100644 _site/configs/UniFi-Video-G3-Micro.html delete mode 100644 _site/configs/V380-Cloudcam.html delete mode 100644 _site/configs/VESKYS-720P-Tilt-Pan.html delete mode 100644 _site/configs/Vivotek-CC-8130.html delete mode 100644 _site/configs/Vstarcam-C7824WIP.html delete mode 100644 _site/configs/WaveShare-RPi-Camera.html delete mode 100644 _site/configs/WyzeCam-V2.html delete mode 100644 _site/configs/Wyzecam-V1.html delete mode 100644 _site/configs/Xiaomi-Dafang.html delete mode 100644 _site/configs/Xiaomi-Xiaofang-1S.html delete mode 100644 _site/configs/Xiaomi-Xiaofang.html delete mode 100644 _site/configs/Y-cam-Cameras.html delete mode 100644 _site/configs/ZNV-ZDIE-2121W-N3T-A.html delete mode 100644 _site/configs/Zoneminder.html delete mode 100644 _site/configs/eufy-Security-eufyCam.html delete mode 100644 _site/contributing/index.html delete mode 100644 _site/feed.xml delete mode 100644 _site/index.html diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index fa5b4ab5..00000000 --- a/.eslintrc.js +++ /dev/null @@ -1,39 +0,0 @@ -module.exports = { - parser: '@typescript-eslint/parser', - extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/eslint-recommended', - 'plugin:@typescript-eslint/recommended' - ], - parserOptions: { - ecmaVersion: 2018, - sourceType: 'module', - project: './tsconfig.json' - }, - rules: { - '@typescript-eslint/array-type': ['error', {default: 'generic'}], - '@typescript-eslint/brace-style': 'error', - '@typescript-eslint/comma-spacing': 'error', - '@typescript-eslint/explicit-function-return-type': 'error', - '@typescript-eslint/func-call-spacing': 'error', - '@typescript-eslint/indent': ['error', 2], - '@typescript-eslint/lines-between-class-members': ['error', {"exceptAfterSingleLine": true}], - '@typescript-eslint/no-base-to-string': 'error', - '@typescript-eslint/no-explicit-any': 'error', - '@typescript-eslint/no-extra-parens': 'error', - '@typescript-eslint/no-unnecessary-boolean-literal-compare': ['error', {"allowComparingNullableBooleansToTrue": false, "allowComparingNullableBooleansToFalse": false}], - '@typescript-eslint/no-var-requires': 'error', - '@typescript-eslint/prefer-optional-chain': 'error', - '@typescript-eslint/prefer-readonly': 'error', - '@typescript-eslint/quotes': ['error', 'single', {"allowTemplateLiterals": false}], - '@typescript-eslint/semi': ['error'], - '@typescript-eslint/space-before-function-paren': ['error', 'never'], - '@typescript-eslint/type-annotation-spacing': 'error', - 'comma-dangle': 'error', - 'no-confusing-arrow': 'error', - 'no-lonely-if': 'error', - 'no-trailing-spaces': 'error', - 'no-unneeded-ternary': 'error', - 'one-var': ['error', 'never'] - } -} diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index b50dd7b7..00000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1,4 +0,0 @@ -github: Sunoo -ko_fi: sunookitsune -liberapay: Sunoo -custom: ["https://paypal.me/sunoo"] diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 52dd6ad1..00000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -name: Bug Report -about: Create a report to help us improve -title: '' -labels: bug -assignees: '' - ---- - - - -**Describe The Bug:** - - -**To Reproduce:** - - -**Expected behavior:** - - -**Logs:** - - -``` -Show the Homebridge logs here. -Remove any sensitive information. -``` - -**Homebridge Config:** - -```json -Show your homebridge config.json here. -Remove any sensitive information, such as your homebridge-gsh / google-smarthome token. -``` - -**Screenshots:** - - -**Environment:** - -* **Node.js Version**: -* **NPM Version**: -* **Homebridge Version**: -* **Homebridge Camera FFmpeg Version**: -* **Homebridge Config UI X Plugin Version**: -* **Operating System**: - - - diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 8b7b7bd6..00000000 --- a/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,5 +0,0 @@ -blank_issues_enabled: false -contact_links: - - name: Homebridge Discord Community - url: https://discord.gg/cFFBuvp - about: Ask your questions in the homebridge-camera-ffmpeg channel diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index f974b3b6..00000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -name: Feature Request -about: Suggest an idea for this project -title: '' -labels: enhancement -assignees: '' - ---- - -**Is your feature request related to a problem? Please describe:** - - -**Describe the solution you'd like:** - - -**Describe alternatives you've considered:** - - -**Additional context:** - - - - diff --git a/.github/ISSUE_TEMPLATE/support-request.md b/.github/ISSUE_TEMPLATE/support-request.md deleted file mode 100644 index 545af6a9..00000000 --- a/.github/ISSUE_TEMPLATE/support-request.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -name: Support Request -about: Need help? -title: '' -labels: question -assignees: '' - ---- - - - -**Describe Your Problem:** - - -**Logs:** - - -``` -Show the Homebridge logs here. -Remove any sensative information. -``` - -**Homebridge Config:** - -```json -Show your homebridge config.json here. -Remove any sensitive information, such as your homebridge-gsh / google-smarthome token. -``` - -**Screenshots:** - - -**Environment:** - -* **Node.js Version**: -* **NPM Version**: -* **Homebridge Version**: -* **Homebridge Camera FFmpeg Version**: -* **Homebridge Config UI X Plugin Version**: -* **Operating System**: - - - diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 53f3fecb..00000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,15 +0,0 @@ -version: 2 -updates: -- package-ecosystem: npm - directory: "/" - schedule: - interval: daily - time: "10:00" - target-branch: "beta" - open-pull-requests-limit: 10 -- package-ecosystem: github-actions - directory: "/" - schedule: - interval: daily - time: "10:00" - open-pull-requests-limit: 10 diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml deleted file mode 100644 index fcf8fe2a..00000000 --- a/.github/workflows/nodejs.yml +++ /dev/null @@ -1,50 +0,0 @@ -name: NodeJS - -on: - push: - branches: '**' - pull_request: - release: # Run when release is created - types: [created] - -jobs: - build: - - strategy: - matrix: - node-version: [10.x, 12.x, 13.x, 14.x] - os: [ubuntu-latest] - - runs-on: ${{ matrix.os }} - - steps: - - uses: actions/checkout@v2.3.1 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2.1.1 - with: - node-version: ${{ matrix.node-version }} - - name: npm install and build - run: | - npm ci - npm run build --if-present - env: - CI: true - - publish-npm: - # publish only if we are on our own repo, event was 'release' (a tag was created) and the tag starts with "v" (aka version tag) - if: github.repository == 'Sunoo/homebridge-camera-ffmpeg' && github.event_name == 'release' && startsWith(github.ref, 'refs/tags/v') - - needs: build # only run if build succeeds - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2.3.1 - - uses: actions/setup-node@v2.1.1 - with: - node-version: 10 # use the minimum required version - registry-url: https://registry.npmjs.org/ - - run: npm ci - - run: npm publish - env: - NODE_AUTH_TOKEN: ${{ secrets.npm_token }} diff --git a/.github/workflows/prerelease.js b/.github/workflows/prerelease.js deleted file mode 100644 index b46df5a8..00000000 --- a/.github/workflows/prerelease.js +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/env node - -const fs = require('fs'); -const semver = require('semver'); -const child_process = require('child_process'); - -function getTagVersionFromNpm(tag) { - try { - return child_process.execSync(`npm info ${package.name} version --tag="${tag}"`).toString('utf8').trim(); - } catch (e) { - return null; - } -} - -// load package.json -const package = JSON.parse(fs.readFileSync('package.json', 'utf8')); - -// work out the correct tag -const currentLatest = getTagVersionFromNpm('latest') || '0.0.0'; -const currentBeta = getTagVersionFromNpm('beta') || '0.0.0'; -const latestNpmTag = semver.gt(currentBeta, currentLatest, { includePrerelease: true }) ? currentBeta : currentLatest; -const publishTag = semver.gt(package.version, latestNpmTag, { includePrerelease: true }) ? package.version : latestNpmTag; - -// save the package.json -package.version = publishTag; -fs.writeFileSync('package.json', JSON.stringify(package, null, 4)); diff --git a/.github/workflows/publish-beta.yml b/.github/workflows/publish-beta.yml deleted file mode 100644 index 485a8f05..00000000 --- a/.github/workflows/publish-beta.yml +++ /dev/null @@ -1,41 +0,0 @@ -name: Publish Beta - -on: - workflow_dispatch - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2.3.1 - with: - ref: beta - - uses: actions/setup-node@v2.1.1 - with: - node-version: 10 - - name: npm install and build - run: | - npm ci - npm run build --if-present - env: - CI: true - - publish-npm: - if: github.repository == 'Sunoo/homebridge-camera-ffmpeg' - - needs: build - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2.3.1 - - uses: actions/setup-node@v2.1.1 - with: - node-version: 10 - registry-url: https://registry.npmjs.org/ - - run: npm ci - - run: node .github/workflows/prerelease.js - - run: npm --no-git-tag-version version prerelease --preid=beta - - run: npm publish --tag=beta - env: - NODE_AUTH_TOKEN: ${{secrets.npm_token}} diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml deleted file mode 100644 index 29929f3b..00000000 --- a/.github/workflows/stale.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: Stale - -on: - issues: - types: [reopened] - schedule: - - cron: "*/60 * * * *" - -jobs: - stale: - - runs-on: ubuntu-latest - env: - ACTIONS_STEP_DEBUG: true - steps: - - uses: actions/stale@v3.0.9 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - stale-issue-message: 'This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.' - stale-pr-message: 'This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.' - stale-issue-label: 'stale' - stale-pr-label: 'stale' - days-before-stale: 7 - days-before-close: 2 - exempt-issue-labels: 'long running,help wanted' - exempt-pr-labels: 'awaiting-approval,work-in-progress' - remove-stale-when-updated: true diff --git a/.gitignore b/.gitignore index 11209755..2ca86829 100644 --- a/.gitignore +++ b/.gitignore @@ -1,39 +1,4 @@ -# Logs -logs -*.log -npm-debug.log* - -# Runtime data -pids -*.pid -*.seed - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (http://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules -jspm_packages - -# Optional npm cache directory -.npm - -# Optional REPL history -.node_repl_history - -dist \ No newline at end of file +_site/ +.sass-cache/ +.jekyll-cache/ +.jekyll-metadata diff --git a/.gitignore.1 b/.gitignore.1 deleted file mode 100644 index 2ca86829..00000000 --- a/.gitignore.1 +++ /dev/null @@ -1,4 +0,0 @@ -_site/ -.sass-cache/ -.jekyll-cache/ -.jekyll-metadata diff --git a/.markdownlint.json b/.markdownlint.json deleted file mode 100644 index 52d47b76..00000000 --- a/.markdownlint.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "default": true, - "line_length": false, - "no-duplicate-heading": false -} \ No newline at end of file diff --git a/_config.yml b/_config.yml index baca2d22..8669aca5 100644 --- a/_config.yml +++ b/_config.yml @@ -1,6 +1,8 @@ title: Homebridge Camera FFmpeg email: sunookitsune@kitsunet.org description: A site created to store the tested configurations created by users of Homebridge Camera FFmpeg +baseurl: "/homebridge-camera-ffmpeg" +url: "https://sunoo.github.io" twitter_username: sunookitsune github_username: Sunoo diff --git a/_site/404.html b/_site/404.html deleted file mode 100644 index 488d646d..00000000 --- a/_site/404.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - -Homebridge Camera FFmpeg | A site created to store the tested configurations created by users of Homebridge Camera FFmpeg - - - - - - - - - - - - -
-
- - -
-

404

- -

Page not found :(

-

The requested page could not be found.

-
- -
-
- - -
- - - - - -
- -
- - - diff --git a/_site/assets/main.css b/_site/assets/main.css deleted file mode 100644 index 83b91248..00000000 --- a/_site/assets/main.css +++ /dev/null @@ -1,196 +0,0 @@ -/** Reset some basic elements */ -body, h1, h2, h3, h4, h5, h6, p, blockquote, pre, hr, dl, dd, ol, ul, figure { margin: 0; padding: 0; } - -/** Basic styling */ -body { font: 400 16px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; color: #111; background-color: #fdfdfd; -webkit-text-size-adjust: 100%; -webkit-font-feature-settings: "kern" 1; -moz-font-feature-settings: "kern" 1; -o-font-feature-settings: "kern" 1; font-feature-settings: "kern" 1; font-kerning: normal; display: flex; min-height: 100vh; flex-direction: column; } - -/** Set `margin-bottom` to maintain vertical rhythm */ -h1, h2, h3, h4, h5, h6, p, blockquote, pre, ul, ol, dl, figure, .highlight { margin-bottom: 15px; } - -/** `main` element */ -main { display: block; /* Default value of `display` of `main` element is 'inline' in IE 11. */ } - -/** Images */ -img { max-width: 100%; vertical-align: middle; } - -/** Figures */ -figure > img { display: block; } - -figcaption { font-size: 14px; } - -/** Lists */ -ul, ol { margin-left: 30px; } - -li > ul, li > ol { margin-bottom: 0; } - -/** Headings */ -h1, h2, h3, h4, h5, h6 { font-weight: 400; } - -/** Links */ -a { color: #2a7ae2; text-decoration: none; } -a:visited { color: #1756a9; } -a:hover { color: #111; text-decoration: underline; } -.social-media-list a:hover { text-decoration: none; } -.social-media-list a:hover .username { text-decoration: underline; } - -/** Blockquotes */ -blockquote { color: #828282; border-left: 4px solid #e8e8e8; padding-left: 15px; font-size: 18px; letter-spacing: -1px; font-style: italic; } -blockquote > :last-child { margin-bottom: 0; } - -/** Code formatting */ -pre, code { font-size: 15px; border: 1px solid #e8e8e8; border-radius: 3px; background-color: #eef; } - -code { padding: 1px 5px; } - -pre { padding: 8px 12px; overflow-x: auto; } -pre > code { border: 0; padding-right: 0; padding-left: 0; } - -/** Wrapper */ -.wrapper { max-width: -webkit-calc(800px - (30px * 2)); max-width: calc(800px - (30px * 2)); margin-right: auto; margin-left: auto; padding-right: 30px; padding-left: 30px; } -@media screen and (max-width: 800px) { .wrapper { max-width: -webkit-calc(800px - (30px)); max-width: calc(800px - (30px)); padding-right: 15px; padding-left: 15px; } } - -/** Clearfix */ -.wrapper:after, .footer-col-wrapper:after { content: ""; display: table; clear: both; } - -/** Icons */ -.svg-icon { width: 16px; height: 16px; display: inline-block; fill: #828282; padding-right: 5px; vertical-align: text-top; } - -.social-media-list li + li { padding-top: 5px; } - -/** Tables */ -table { margin-bottom: 30px; width: 100%; text-align: left; color: #3f3f3f; border-collapse: collapse; border: 1px solid #e8e8e8; } -table tr:nth-child(even) { background-color: #f7f7f7; } -table th, table td { padding: 10px 15px; } -table th { background-color: #f0f0f0; border: 1px solid #dedede; border-bottom-color: #c9c9c9; } -table td { border: 1px solid #e8e8e8; } - -/** Site header */ -.site-header { border-top: 5px solid #424242; border-bottom: 1px solid #e8e8e8; min-height: 55.95px; position: relative; } - -.site-title { font-size: 26px; font-weight: 300; line-height: 54px; letter-spacing: -1px; margin-bottom: 0; float: left; } -.site-title, .site-title:visited { color: #424242; } - -.site-nav { float: right; line-height: 54px; } -.site-nav .nav-trigger { display: none; } -.site-nav .menu-icon { display: none; } -.site-nav .page-link { color: #111; line-height: 1.5; } -.site-nav .page-link:not(:last-child) { margin-right: 20px; } -@media screen and (max-width: 600px) { .site-nav { position: absolute; top: 9px; right: 15px; background-color: #fdfdfd; border: 1px solid #e8e8e8; border-radius: 5px; text-align: right; } - .site-nav label[for="nav-trigger"] { display: block; float: right; width: 36px; height: 36px; z-index: 2; cursor: pointer; } - .site-nav .menu-icon { display: block; float: right; width: 36px; height: 26px; line-height: 0; padding-top: 10px; text-align: center; } - .site-nav .menu-icon > svg { fill: #424242; } - .site-nav input ~ .trigger { clear: both; display: none; } - .site-nav input:checked ~ .trigger { display: block; padding-bottom: 5px; } - .site-nav .page-link { display: block; padding: 5px 10px; margin-left: 20px; } - .site-nav .page-link:not(:last-child) { margin-right: 0; } } - -/** Site footer */ -.site-footer { border-top: 1px solid #e8e8e8; padding: 30px 0; } - -.footer-heading { font-size: 18px; margin-bottom: 15px; } - -.contact-list, .social-media-list { list-style: none; margin-left: 0; } - -.footer-col-wrapper { font-size: 15px; color: #828282; margin-left: -15px; } - -.footer-col { float: left; margin-bottom: 15px; padding-left: 15px; } - -.footer-col-1 { width: -webkit-calc(35% - (30px / 2)); width: calc(35% - (30px / 2)); } - -.footer-col-2 { width: -webkit-calc(20% - (30px / 2)); width: calc(20% - (30px / 2)); } - -.footer-col-3 { width: -webkit-calc(45% - (30px / 2)); width: calc(45% - (30px / 2)); } - -@media screen and (max-width: 800px) { .footer-col-1, .footer-col-2 { width: -webkit-calc(50% - (30px / 2)); width: calc(50% - (30px / 2)); } - .footer-col-3 { width: -webkit-calc(100% - (30px / 2)); width: calc(100% - (30px / 2)); } } -@media screen and (max-width: 600px) { .footer-col { float: none; width: -webkit-calc(100% - (30px / 2)); width: calc(100% - (30px / 2)); } } -/** Page content */ -.page-content { padding: 30px 0; flex: 1; } - -.page-heading { font-size: 32px; } - -.post-list-heading { font-size: 28px; } - -.post-list { margin-left: 0; list-style: none; } -.post-list > li { margin-bottom: 30px; } - -.post-meta { font-size: 14px; color: #828282; } - -.post-link { display: block; font-size: 24px; } - -/** Posts */ -.post-header { margin-bottom: 30px; } - -.post-title { font-size: 42px; letter-spacing: -1px; line-height: 1; } -@media screen and (max-width: 800px) { .post-title { font-size: 36px; } } - -.post-content { margin-bottom: 30px; } -.post-content h2 { font-size: 32px; } -@media screen and (max-width: 800px) { .post-content h2 { font-size: 28px; } } -.post-content h3 { font-size: 26px; } -@media screen and (max-width: 800px) { .post-content h3 { font-size: 22px; } } -.post-content h4 { font-size: 20px; } -@media screen and (max-width: 800px) { .post-content h4 { font-size: 18px; } } - -/** Syntax highlighting styles */ -.highlight { background: #fff; } -.highlighter-rouge .highlight { background: #eef; } -.highlight .c { color: #998; font-style: italic; } -.highlight .err { color: #a61717; background-color: #e3d2d2; } -.highlight .k { font-weight: bold; } -.highlight .o { font-weight: bold; } -.highlight .cm { color: #998; font-style: italic; } -.highlight .cp { color: #999; font-weight: bold; } -.highlight .c1 { color: #998; font-style: italic; } -.highlight .cs { color: #999; font-weight: bold; font-style: italic; } -.highlight .gd { color: #000; background-color: #fdd; } -.highlight .gd .x { color: #000; background-color: #faa; } -.highlight .ge { font-style: italic; } -.highlight .gr { color: #a00; } -.highlight .gh { color: #999; } -.highlight .gi { color: #000; background-color: #dfd; } -.highlight .gi .x { color: #000; background-color: #afa; } -.highlight .go { color: #888; } -.highlight .gp { color: #555; } -.highlight .gs { font-weight: bold; } -.highlight .gu { color: #aaa; } -.highlight .gt { color: #a00; } -.highlight .kc { font-weight: bold; } -.highlight .kd { font-weight: bold; } -.highlight .kp { font-weight: bold; } -.highlight .kr { font-weight: bold; } -.highlight .kt { color: #458; font-weight: bold; } -.highlight .m { color: #099; } -.highlight .s { color: #d14; } -.highlight .na { color: #008080; } -.highlight .nb { color: #0086B3; } -.highlight .nc { color: #458; font-weight: bold; } -.highlight .no { color: #008080; } -.highlight .ni { color: #800080; } -.highlight .ne { color: #900; font-weight: bold; } -.highlight .nf { color: #900; font-weight: bold; } -.highlight .nn { color: #555; } -.highlight .nt { color: #000080; } -.highlight .nv { color: #008080; } -.highlight .ow { font-weight: bold; } -.highlight .w { color: #bbb; } -.highlight .mf { color: #099; } -.highlight .mh { color: #099; } -.highlight .mi { color: #099; } -.highlight .mo { color: #099; } -.highlight .sb { color: #d14; } -.highlight .sc { color: #d14; } -.highlight .sd { color: #d14; } -.highlight .s2 { color: #d14; } -.highlight .se { color: #d14; } -.highlight .sh { color: #d14; } -.highlight .si { color: #d14; } -.highlight .sx { color: #d14; } -.highlight .sr { color: #009926; } -.highlight .s1 { color: #d14; } -.highlight .ss { color: #990073; } -.highlight .bp { color: #999; } -.highlight .vc { color: #008080; } -.highlight .vg { color: #008080; } -.highlight .vi { color: #008080; } -.highlight .il { color: #099; } diff --git a/_site/assets/minima-social-icons.svg b/_site/assets/minima-social-icons.svg deleted file mode 100644 index fa7399fe..00000000 --- a/_site/assets/minima-social-icons.svg +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_site/configs/Alptop-AT-200B.html b/_site/configs/Alptop-AT-200B.html deleted file mode 100644 index 3bee9e1f..00000000 --- a/_site/configs/Alptop-AT-200B.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - -Alptop AT-200B | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Alptop AT-200B

-

-
    -
  • using homebridge-camera-ffmpeg
  • -
  • authentication for rtsp disabled in camera config
  • -
  • RaspberryPi seems to work with higher res but chokes
  • -
- -
{
-	"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/_site/configs/Amcrest IP3M-HX2W.html b/_site/configs/Amcrest IP3M-HX2W.html deleted file mode 100644 index 6fc89b2f..00000000 --- a/_site/configs/Amcrest IP3M-HX2W.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - -Amcrest IP3M-HX2W | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Amcrest IP3M-HX2W

-

HOOBS + Raspberry Pi 4

-
    -
  • 7 cameras working as expected. Copy vcodec seems smoother but the other option here working fine with ultrafast option chosen
  • -
- -
{
-"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/_site/configs/Amcrest-IP2M-841.html b/_site/configs/Amcrest-IP2M-841.html deleted file mode 100644 index 9ada1dec..00000000 --- a/_site/configs/Amcrest-IP2M-841.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - -Amcrest IP2M-841 | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Amcrest IP2M-841

-

-

Tested from Linux. These camera’s aren’t that great and have difficulty holding a stream for longer than 30s.

- -

config.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/_site/configs/Amcrest-IP4M-1026.html b/_site/configs/Amcrest-IP4M-1026.html deleted file mode 100644 index 1105f391..00000000 --- a/_site/configs/Amcrest-IP4M-1026.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - -Amcrest IP4M-1026 | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Amcrest IP4M-1026

-

-

config.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/_site/configs/Amcrest-IPM-HX1B.html b/_site/configs/Amcrest-IPM-HX1B.html deleted file mode 100644 index 9305b8ce..00000000 --- a/_site/configs/Amcrest-IPM-HX1B.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - -Amcrest IPM-HX1B | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Amcrest IPM-HX1B

-

with MP4 Passthrough

-

config.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/_site/configs/Anran-DVR.html b/_site/configs/Anran-DVR.html deleted file mode 100644 index 55e70d8c..00000000 --- a/_site/configs/Anran-DVR.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - -Anran DVR | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Anran DVR

-

Generic Chinese DVR

-

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: https://www.amazon.com/ANRAN-Detection-Surveillance-Security-Recorder/dp/B00JUPFVQE/ref=sr_1_3?ie=UTF8&qid=1485448120&sr=8-3&keywords=anran+dvr

- -

config.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/_site/configs/August-Doorbell-Cam-Version-1.html b/_site/configs/August-Doorbell-Cam-Version-1.html deleted file mode 100644 index fb8cc9f1..00000000 --- a/_site/configs/August-Doorbell-Cam-Version-1.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - -August Doorbell Cam Version 1 | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

August Doorbell Cam Version 1

-

-

config.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/_site/configs/Avtech-AVM542B.html b/_site/configs/Avtech-AVM542B.html deleted file mode 100644 index e7e69947..00000000 --- a/_site/configs/Avtech-AVM542B.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - -Avtech AVM542B | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Avtech AVM542B

-

-

Server on Synology with Docker via oznu’s homebridge-syno-spk

- -
{
-  "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/_site/configs/Avtech-MDR751B-DVR.html b/_site/configs/Avtech-MDR751B-DVR.html deleted file mode 100644 index d6453ce1..00000000 --- a/_site/configs/Avtech-MDR751B-DVR.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - -Avtech MDR751B DVR | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Avtech MDR751B DVR

-

-

Server running on windows 10.

- -
{
- "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/_site/configs/Axis-M3024-L.html b/_site/configs/Axis-M3024-L.html deleted file mode 100644 index f286f044..00000000 --- a/_site/configs/Axis-M3024-L.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - -Axis M3024-L | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Axis M3024-L

-

with Raspberry Pi 3 Model B

-

config.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"
-          }
-      }
-    ]
-}
-
-
- -
-
- - -
- - - - - -
- -
- - - diff --git a/_site/configs/Blue-Iris.html b/_site/configs/Blue-Iris.html deleted file mode 100644 index 8fa9b3c1..00000000 --- a/_site/configs/Blue-Iris.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - -Blue Iris | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Blue Iris

-

-

If you have a Blue Iris server, you can add any camera with the following configuration:

- -
{
-      "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/_site/configs/CNB-IVP4030VR.html b/_site/configs/CNB-IVP4030VR.html deleted file mode 100644 index 3556678f..00000000 --- a/_site/configs/CNB-IVP4030VR.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - -CNB IVP4030VR | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

CNB IVP4030VR

-

via RPI Model B

-

CNB IP Camera -Model number:IVP4030VR

- -

Homebridge config.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/_site/configs/D-Link-930L.html b/_site/configs/D-Link-930L.html deleted file mode 100644 index 1428b653..00000000 --- a/_site/configs/D-Link-930L.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - -D-Link 930L | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

D-Link 930L

-

-

Tested on Raspberry Pi 3 (with omx)

- -

config.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/_site/configs/D-Link-932L.html b/_site/configs/D-Link-932L.html deleted file mode 100644 index ec5b1551..00000000 --- a/_site/configs/D-Link-932L.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - -D-Link 932L | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

D-Link 932L

-

-

Works on Mac Mini core i5, Raspberry Pi 3 (with and without omx)

- -

config.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/_site/configs/D-Link-934L.html b/_site/configs/D-Link-934L.html deleted file mode 100644 index 1af1177a..00000000 --- a/_site/configs/D-Link-934L.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - -D-Link 934L | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

D-Link 934L

-

-

Tested on Raspberry Pi 3 (with omx)

- -

config.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/_site/configs/D-Link-936L.html b/_site/configs/D-Link-936L.html deleted file mode 100644 index 6d12dd50..00000000 --- a/_site/configs/D-Link-936L.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - -D-Link 936L | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

D-Link 936L

-

-

Works on Raspberry Pi 3 (only with omx)

- -

config.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/_site/configs/D-Link-DCS-2332L-DCS-2330L.html b/_site/configs/D-Link-DCS-2332L-DCS-2330L.html deleted file mode 100644 index 76a98e6b..00000000 --- a/_site/configs/D-Link-DCS-2332L-DCS-2330L.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - -D-Link DCS-2332L/DCS-2330L | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

D-Link DCS-2332L/DCS-2330L

-

-

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

- -
{
-   "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/_site/configs/D-Link-DCS-5222LB1.html b/_site/configs/D-Link-DCS-5222LB1.html deleted file mode 100644 index fa071085..00000000 --- a/_site/configs/D-Link-DCS-5222LB1.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - -D-Link DCS-5222LB1 | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

D-Link DCS-5222LB1

-

-

Notes: Replace IPADDRESS XX.XX.XX.XX, USER and PASSWORD with your data.

- -

config.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/_site/configs/DBPOWER-MEYE-155303-FBACE.html b/_site/configs/DBPOWER-MEYE-155303-FBACE.html deleted file mode 100644 index 1d0af145..00000000 --- a/_site/configs/DBPOWER-MEYE-155303-FBACE.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - -DBPOWER MEYE-155303-FBACE | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

DBPOWER MEYE-155303-FBACE

-

with Raspberry Pi 3 Model B

-

No rtsp streams available - all via MJPEG…

- -

config.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/_site/configs/Dahua-IPC-A35.html b/_site/configs/Dahua-IPC-A35.html deleted file mode 100644 index 97c672c9..00000000 --- a/_site/configs/Dahua-IPC-A35.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - -Dahua IPC-A35 | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Dahua IPC-A35

-

with sound

-

config.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/_site/configs/Dahua-IPC-HFW1320S-W.html b/_site/configs/Dahua-IPC-HFW1320S-W.html deleted file mode 100644 index 1fd0bb16..00000000 --- a/_site/configs/Dahua-IPC-HFW1320S-W.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - -Dahua IPC-HFW1320S-W | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Dahua IPC-HFW1320S-W

-

-

config.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/_site/configs/Digoo-DG-W02F.html b/_site/configs/Digoo-DG-W02F.html deleted file mode 100644 index d7aaca4e..00000000 --- a/_site/configs/Digoo-DG-W02F.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - -Digoo DG-W02F | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Digoo DG-W02F

-

-

Working through RTSP on RaspberryPi

- -

config.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/_site/configs/Doorbird-Video-Doorbell-Basic.html b/_site/configs/Doorbird-Video-Doorbell-Basic.html deleted file mode 100644 index 6d59d93e..00000000 --- a/_site/configs/Doorbird-Video-Doorbell-Basic.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - -Doorbird Video Doorbell | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Doorbird Video Doorbell

-

Basic

-

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

- -
{
-    "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/_site/configs/Doorbird-Video-Doorbell-Full.html b/_site/configs/Doorbird-Video-Doorbell-Full.html deleted file mode 100644 index ebf62037..00000000 --- a/_site/configs/Doorbird-Video-Doorbell-Full.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - -Doorbird Video Doorbell | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Doorbird Video Doorbell

-

Full

-

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 as well to enable HomeKit doorbell integration on your Doorbird.

- -

config.json

- -
{
-    "platform":"Camera-ffmpeg",
-    "cameras":[
-      {
-          "name":"Doorbird Camera",
-          "videoConfig":{
-            "source":"-re -i rtsp://<username>:<password>@<doorbird_ip>:554/mpeg/media.amp",
-            "stillImageSource":"-i http://<username>:<password>@<doorbird_ip>/bha-api/image.cgi",
-            "maxStreams":1,
-            "maxWidth":1280,
-            "maxHeight":720,
-            "maxFPS":15
-          }
-      }
-    ]
-}
-
-
- -
-
- - -
- - - - - -
- -
- - - diff --git a/_site/configs/ESP32-Cam-Module.html b/_site/configs/ESP32-Cam-Module.html deleted file mode 100644 index 6a32792b..00000000 --- a/_site/configs/ESP32-Cam-Module.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - -ESP32-Cam Module | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

ESP32-Cam Module

-

-

config.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: https://github.com/espressif/arduino-esp32/tree/master/docs/arduino-ide -You will just add your Wifi SSID and select camera model in the source code.

-
- -
-
- - -
- - - - - -
- -
- - - diff --git a/_site/configs/EZVIZ-C1C-720P.html b/_site/configs/EZVIZ-C1C-720P.html deleted file mode 100644 index 16374813..00000000 --- a/_site/configs/EZVIZ-C1C-720P.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - -EZVIZ C1C 720P | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

EZVIZ C1C 720P

-

-

Product Page

- -

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

- -
"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/_site/configs/EZVIZ-Mini-Plus.html b/_site/configs/EZVIZ-Mini-Plus.html deleted file mode 100644 index f3fdeb17..00000000 --- a/_site/configs/EZVIZ-Mini-Plus.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - -EZVIZ Mini Plus | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

EZVIZ Mini Plus

-

-

Product Page

- -

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

- -
"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/_site/configs/Foscam-FI8910W.html b/_site/configs/Foscam-FI8910W.html deleted file mode 100644 index 5ebc56fc..00000000 --- a/_site/configs/Foscam-FI8910W.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - -Foscam FI8910W | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Foscam FI8910W

-

-

Streaming via http

- -
{
-  "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/_site/configs/Foscam-FI9900EP-FI9826P.html b/_site/configs/Foscam-FI9900EP-FI9826P.html deleted file mode 100644 index 8c7c318e..00000000 --- a/_site/configs/Foscam-FI9900EP-FI9826P.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - -Foscam FI9900EP / FI9826P | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Foscam FI9900EP / FI9826P

-

-

Working through RTSP on RaspberryPi

- -

config.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/_site/configs/Foscam-IQ200.html b/_site/configs/Foscam-IQ200.html deleted file mode 100644 index 912301e5..00000000 --- a/_site/configs/Foscam-IQ200.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - -Foscam IQ200 | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Foscam IQ200

-

-

Working through RTSP

- -

config.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/_site/configs/Foscam-R2.html b/_site/configs/Foscam-R2.html deleted file mode 100644 index dad8f8ff..00000000 --- a/_site/configs/Foscam-R2.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - -Foscam R2 | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Foscam R2

-

-

Working through RTSP

- -
{
-  "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/_site/configs/Hikam-S5.html b/_site/configs/Hikam-S5.html deleted file mode 100644 index b16d667d..00000000 --- a/_site/configs/Hikam-S5.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - -Hikam S5 | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Hikam S5

-

+ Raspberry Pi2

-
    -
  • 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%
  • -
-
- -
-
- - -
- - - - - -
- -
- - - diff --git a/_site/configs/IP-Webcam-App.html b/_site/configs/IP-Webcam-App.html deleted file mode 100644 index 5bf3c35a..00000000 --- a/_site/configs/IP-Webcam-App.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - -IP Webcam App | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

IP Webcam App

-

by Pavel Khlebovich

-

Working through http

- -

config.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/_site/configs/IP-Webcam.html b/_site/configs/IP-Webcam.html deleted file mode 100644 index fd1a47f2..00000000 --- a/_site/configs/IP-Webcam.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - -IP Webcam | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

IP Webcam

-

running on an older Samsung Smartphone and Raspberry PI 2 (Jessie)

-

To resolve playback issues I had to use the OMX fork to get the PI 2 and FFMPEG to work more or less reliably. -https://github.com/legotheboss/homebridge-camera-ffmpeg-omx

- -

Camera Settings

- -
Video Resolution: 1920x1080
-Photo Resolution: 2048x1152
-
- -

config.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/_site/configs/IeGeek-IP-camera.html b/_site/configs/IeGeek-IP-camera.html deleted file mode 100644 index c565c2a9..00000000 --- a/_site/configs/IeGeek-IP-camera.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - -IeGeek IP camera | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

IeGeek IP camera

-

with Raspberry Pi 3 Model B

-

You can also use “rtsp://ip-address/11” for HQ-Stream.

- -

config.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/_site/configs/Logitech-C525-USB-camera.html b/_site/configs/Logitech-C525-USB-camera.html deleted file mode 100644 index 74807226..00000000 --- a/_site/configs/Logitech-C525-USB-camera.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - -Logitech C525 USB camera | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Logitech C525 USB camera

-

and Raspberry Pi 3

-

This configuration works with synchronized video/audio:

- -
"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/_site/configs/Logitech-HD-Pro-Webcam-C920-2.html b/_site/configs/Logitech-HD-Pro-Webcam-C920-2.html deleted file mode 100644 index 9755a50d..00000000 --- a/_site/configs/Logitech-HD-Pro-Webcam-C920-2.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - - -Logitech HD Pro Webcam C920 | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Logitech HD Pro Webcam C920

-

w/ Raspberry Pi

-

I set up a Rpi1 with the camera and stream using 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

- -
"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/_site/configs/Logitech-HD-Pro-Webcam-C920.html b/_site/configs/Logitech-HD-Pro-Webcam-C920.html deleted file mode 100644 index e47a204f..00000000 --- a/_site/configs/Logitech-HD-Pro-Webcam-C920.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - -Logitech HD Pro Webcam C920 | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Logitech HD Pro Webcam C920

-

-

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

- -
"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/_site/configs/Lorex-LHV2008.html b/_site/configs/Lorex-LHV2008.html deleted file mode 100644 index b84f960e..00000000 --- a/_site/configs/Lorex-LHV2008.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - -Lorex LHV2008 | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Lorex LHV2008

-

-

config.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/_site/configs/Maygion-H264-IPCam.html b/_site/configs/Maygion-H264-IPCam.html deleted file mode 100644 index fad6ecda..00000000 --- a/_site/configs/Maygion-H264-IPCam.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - -Maygion H264 IPCam | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Maygion H264 IPCam

-

(Software Version H.264 6.40) with Raspberry Pi 3 Model B

-

MPEG Snapshot & RTSP Stream

- -

config.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/_site/configs/Mobotix-M24.html b/_site/configs/Mobotix-M24.html deleted file mode 100644 index d1bfb8e5..00000000 --- a/_site/configs/Mobotix-M24.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - -Mobotix M24 | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Mobotix M24

-

with Raspberry Pi 3 Model B

-

config.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/_site/configs/MotionEyeOS.html b/_site/configs/MotionEyeOS.html deleted file mode 100644 index 2a024866..00000000 --- a/_site/configs/MotionEyeOS.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - -MotionEyeOS | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

MotionEyeOS

-

-

This config reads images from a remote computer (e.g. Raspberry Pi) running 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.

- -
    {
-        "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/_site/configs/Pelco-cameras.html b/_site/configs/Pelco-cameras.html deleted file mode 100644 index cd481a84..00000000 --- a/_site/configs/Pelco-cameras.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - -Pelco cameras | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Pelco cameras

-

-

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

- -
{
-    "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/_site/configs/Pi-Camera-V2.html b/_site/configs/Pi-Camera-V2.html deleted file mode 100644 index 79d65864..00000000 --- a/_site/configs/Pi-Camera-V2.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - -Pi Camera V2 | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Pi Camera V2

-

-

The dedicated homebridge-rpi-camera plugin makes the ffmpeg process crash for me.

- -

According to this comment, this adapted config work smoothly.

- -
{
-   "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/_site/configs/ROCAM-NC400HD.html b/_site/configs/ROCAM-NC400HD.html deleted file mode 100644 index 06c71fcf..00000000 --- a/_site/configs/ROCAM-NC400HD.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - -ROCAM-NC400HD | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

ROCAM-NC400HD

-

with Raspberry Pi Model B 512Mb RAM - jessie by BonRm

-

config.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/_site/configs/Raspberry-Pi-Camera-Module-V2.html b/_site/configs/Raspberry-Pi-Camera-Module-V2.html deleted file mode 100644 index 412ce8e3..00000000 --- a/_site/configs/Raspberry-Pi-Camera-Module-V2.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - -Raspberry Pi Camera Module V2 | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Raspberry Pi Camera Module V2

-

and Raspberry PI Zero W (Jessie)

-

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 )

- -
{
-  "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/_site/configs/Raspberry-Pi-camera-v1.3.html b/_site/configs/Raspberry-Pi-camera-v1.3.html deleted file mode 100644 index fb188518..00000000 --- a/_site/configs/Raspberry-Pi-camera-v1.3.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - - -Raspberry Pi camera v1.3 | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Raspberry Pi camera v1.3

-

connected to another RasPi

-

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

- -
#!/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

- -
{
-    "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
-            }
-        }
-    ]
-}
-
-
- -
-
- - -
- - - - - -
- -
- - - diff --git a/_site/configs/ReoLink-Camera-RLC-410.html b/_site/configs/ReoLink-Camera-RLC-410.html deleted file mode 100644 index 80fa8714..00000000 --- a/_site/configs/ReoLink-Camera-RLC-410.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - -ReoLink Camera RLC-410 | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

ReoLink Camera RLC-410

-

(Should work with all ReoLink-Cams supporting RTSP)

-

config.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
-         }
-      }
-   ]
-}
-
- - -
- -
-
- - -
- - - - - -
- -
- - - diff --git a/_site/configs/ReoLink-RLC-422.html b/_site/configs/ReoLink-RLC-422.html deleted file mode 100644 index ae4bb88d..00000000 --- a/_site/configs/ReoLink-RLC-422.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - -ReoLink RLC-422 | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

ReoLink RLC-422

-

-

config.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/_site/configs/Reolink-RLC-410W.html b/_site/configs/Reolink-RLC-410W.html deleted file mode 100644 index 84736b4e..00000000 --- a/_site/configs/Reolink-RLC-410W.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - -Reolink RLC-410W | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Reolink RLC-410W

-

HOOBS + Raspberry Pi 4

-
    -
  • 7 cameras working as expected. Copy vcodec seems smoother but the other option here working fine with ultrafast option chosen
  • -
- -
{
-"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/_site/configs/Reolink-camera.html b/_site/configs/Reolink-camera.html deleted file mode 100644 index 1b3947a3..00000000 --- a/_site/configs/Reolink-camera.html +++ /dev/null @@ -1,236 +0,0 @@ - - - - - -Reolink camera | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Reolink camera

-

with better picture (rtmp) and audio (Ffmpeg tutorial)

-

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:

- - - - - - - - - - - - - - - - - - - - - - -
IDName
1fluent
2balanced
3clean
- -

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

- -
$ 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.

- -
$ 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)

- -
$ sudo apt-get update
-
- -

It will update some package lists and give two errors.

-
    -
  1. W: GPG error
  2. -
  3. W: Duplicate sources
  4. -
- -

We’ll deal with those next…

- -
$ sudo apt-get install deb-multimedia-keyring
-
- -

y confirm install without verification

- -
$ 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.

- -
$ 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.

- -
$ 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…

- -
$ cd ffmpeg
-
- -

Note that the following command from sudo to --enable-nonfree is all one continuous command.

- -
$ 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.)

- -
$ 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.

- -
$ sudo make install
-
- -
$ sudo ldconfig
-
- -
$ 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

- -
"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:

- -
"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/_site/configs/Samsung-SNH-P6410BN.html b/_site/configs/Samsung-SNH-P6410BN.html deleted file mode 100644 index ae037597..00000000 --- a/_site/configs/Samsung-SNH-P6410BN.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - -Samsung SNH-P6410BN | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Samsung SNH-P6410BN

-

Samsung SmartCam (firmware 1.08) and Raspberry PI 3

-

I had to use the OMX fork to get the PI 3 and FFMPEG to work more or less reliably. -https://github.com/legotheboss/homebridge-camera-ffmpeg-omx

- -

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

- -
{
-   "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/_site/configs/Sannce-1080P-IP-Cameras.html b/_site/configs/Sannce-1080P-IP-Cameras.html deleted file mode 100644 index 64173608..00000000 --- a/_site/configs/Sannce-1080P-IP-Cameras.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - - -Sannce 1080P IP Cameras | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Sannce 1080P IP Cameras

-

-

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

- -
{
-   "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
    • -
    -
  • -
  • 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 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 image. -
      -
    • This required installing ffmpeg from the jessie-backports apt source inside the container.
    • -
    -
  • -
-
- -
-
- - -
- - - - - -
- -
- - - diff --git a/_site/configs/SecuritySpy.html b/_site/configs/SecuritySpy.html deleted file mode 100644 index ad364cb3..00000000 --- a/_site/configs/SecuritySpy.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - -SecuritySpy | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

SecuritySpy

-

for MacOs

-

Product page

- -

The great thing about this is, if SecuritySpy supports your camera (which is an extensive list) 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.

- -
{
-  "platform": "Camera-ffmpeg",
-  "cameras": [
-    {
-      "name": "Security Cam 0",
-      "videoConfig": {
-        "source": "-i http://<SecurityspyUsername>:<SecurityspyPassword>@<SecurityspyIP>:<SecurityspyPort>/++hls?cameraNum=0&codec=h264&width=1280&height=720",
-        "stillImageSource": "-i http://<SecurityspyUsername>:<SecurityspyPassword>@<SecurityspyIP>:<SecurityspyPort>/++image?cameraNum=0&width=480&height=270",
-        "maxStreams": 2,
-        "maxWidth": 1280,
-        "maxHeight": 720,
-        "maxFPS": 30
-      },
-    }
-    {
-      "name": "Security Cam 1",
-      "videoConfig": {
-        "source": "-i http://<SecurityspyUsername>:<SecurityspyPassword>@<SecurityspyIP>:<SecurityspyPort>/++hls?cameraNum=1&codec=h264&width=1280&height=720",
-        "stillImageSource": "-i http://<SecurityspyUsername>:<SecurityspyPassword>@<SecurityspyIP>:<SecurityspyPort>/++image?cameraNum=1&width=480&height=270",
-        "maxStreams": 2,
-        "maxWidth": 1280,
-        "maxHeight": 720,
-        "maxFPS": 30
-      }
-    }
-  ]
-}
-
-
- -
-
- - -
- - - - - -
- -
- - - diff --git a/_site/configs/Synology-Surveillance-Station-2.html b/_site/configs/Synology-Surveillance-Station-2.html deleted file mode 100644 index 873ec0ba..00000000 --- a/_site/configs/Synology-Surveillance-Station-2.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - -Synology Surveillance Station | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Synology Surveillance Station

-

-

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

- -
{
-"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/_site/configs/Synology-Surveillance-Station.html b/_site/configs/Synology-Surveillance-Station.html deleted file mode 100644 index 998d84e1..00000000 --- a/_site/configs/Synology-Surveillance-Station.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - -Synology Surveillance Station | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Synology Surveillance Station

-

-

For Synology Surveillance Station -Link for source and stillImageSource are generate by Surveillance Station, right clic on camera and select “Share streaming Path”

- -
{
-   "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/_site/configs/Szsinocam-ip-onvif.html b/_site/configs/Szsinocam-ip-onvif.html deleted file mode 100644 index 8db8d7e8..00000000 --- a/_site/configs/Szsinocam-ip-onvif.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - -Szsinocam ip onvif | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Szsinocam ip onvif

-

-
    -
  • using homebridge-camera-ffmpeg
  • -
  • authentication for rtsp disabled in camera config
  • -
- -
{
-    "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/_site/configs/TP-Link-C100.html b/_site/configs/TP-Link-C100.html deleted file mode 100644 index 56c9b836..00000000 --- a/_site/configs/TP-Link-C100.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - -TP-Link C100 | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

TP-Link C100

-

-

Model C 100

- -

config.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/_site/configs/TP-Link-C200.html b/_site/configs/TP-Link-C200.html deleted file mode 100644 index 9391f37f..00000000 --- a/_site/configs/TP-Link-C200.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - -TP-Link C200 | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

TP-Link C200

-

-

Model C 200

- -

config.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/_site/configs/UNV-Uniview.html b/_site/configs/UNV-Uniview.html deleted file mode 100644 index e398e1ac..00000000 --- a/_site/configs/UNV-Uniview.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - -UNV Uniview | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

UNV Uniview

-

-

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

- -
[
-    {
-        "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/_site/configs/Ubiquiti-AirCam.html b/_site/configs/Ubiquiti-AirCam.html deleted file mode 100644 index 40ec0b3e..00000000 --- a/_site/configs/Ubiquiti-AirCam.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - -Ubiquiti AirCam | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Ubiquiti AirCam

-

(Generation 1, firmware v3.1.4.39), RPi 3

-

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 https://github.com/legotheboss/homebridge-camera-ffmpeg-omx fork for RPi 3 support.

- -

config.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/_site/configs/Ubiquiti-UVC-G3.html b/_site/configs/Ubiquiti-UVC-G3.html deleted file mode 100644 index 0e2c7d12..00000000 --- a/_site/configs/Ubiquiti-UVC-G3.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - -Ubiquiti UVC G3 | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Ubiquiti UVC G3

-

-

config.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/_site/configs/UniFi-Video-G3-Micro.html b/_site/configs/UniFi-Video-G3-Micro.html deleted file mode 100644 index 7e12e8af..00000000 --- a/_site/configs/UniFi-Video-G3-Micro.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - -UniFi Video G3-Micro | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

UniFi Video G3-Micro

-

-

Description

- -

Audio and video working on a Raspberry Pi 3 Model B using the instructions here. “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

- -
{
-  "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/_site/configs/V380-Cloudcam.html b/_site/configs/V380-Cloudcam.html deleted file mode 100644 index 51f97850..00000000 --- a/_site/configs/V380-Cloudcam.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - -V380 Cloudcam | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

V380 Cloudcam

-

-

Need to patch the firmware to activate RTSP on port 554.

- -

Solution found here

- -

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

-
    -
  1. Unzip the files
  2. -
  3. Copy the files to the root of the microSD
  4. -
  5. Restart the camera
  6. -
  7. Wait until the update finishes, listening if you have a horn or watching the LEDs
  8. -
  9. Check that the 554 port has been opened
  10. -
  11. Delete the SD update files
  12. -
- -

config.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/_site/configs/VESKYS-720P-Tilt-Pan.html b/_site/configs/VESKYS-720P-Tilt-Pan.html deleted file mode 100644 index 434ff8f7..00000000 --- a/_site/configs/VESKYS-720P-Tilt-Pan.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - -VESKYS 720P Tilt / Pan | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

VESKYS 720P Tilt / Pan

-

-

config.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/_site/configs/Vivotek-CC-8130.html b/_site/configs/Vivotek-CC-8130.html deleted file mode 100644 index 62835118..00000000 --- a/_site/configs/Vivotek-CC-8130.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - -Vivotek CC-8130 | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Vivotek CC-8130

-

and Raspberry PI 2 (Jessie)

-

To resolve playback issues I had to use the OMX fork to get the PI 2 and FFMPEG to work more or less reliably. -https://github.com/legotheboss/homebridge-camera-ffmpeg-omx

- -

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

- -
{
-   "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/_site/configs/Vstarcam-C7824WIP.html b/_site/configs/Vstarcam-C7824WIP.html deleted file mode 100644 index 0115320b..00000000 --- a/_site/configs/Vstarcam-C7824WIP.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - -Vstarcam C7824WIP | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Vstarcam C7824WIP

-

-
    -
  • using homebridge-camera-ffmpeg 2.3.0
  • -
  • authentication for rtsp admin and camera password
  • -
- -
{
-    "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/_site/configs/WaveShare-RPi-Camera.html b/_site/configs/WaveShare-RPi-Camera.html deleted file mode 100644 index 40015791..00000000 --- a/_site/configs/WaveShare-RPi-Camera.html +++ /dev/null @@ -1,214 +0,0 @@ - - - - - -WaveShare RPi Camera | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

WaveShare RPi Camera

-

and Raspberry PI 3B (Stretch)

-

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

- -
{
-    "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

- -
{
-    "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

- -
{
-    "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       <string>     ED.V.... OpenMAX library name
-  -omx_libprefix     <string>     ED.V.... OpenMAX library prefix
-  -zerocopy          <int>        E..V.... Try to avoid copying input frames if possible (from 0 to 1) (default 0)
-
-
- -
-
- - -
- - - - - -
- -
- - - diff --git a/_site/configs/WyzeCam-V2.html b/_site/configs/WyzeCam-V2.html deleted file mode 100644 index 141e5af0..00000000 --- a/_site/configs/WyzeCam-V2.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - -WyzeCam V2 | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

WyzeCam V2

-

with Raspberry Pi 4 Model B

-

As described in this blog post, 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

- -
{
-    "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/_site/configs/Wyzecam-V1.html b/_site/configs/Wyzecam-V1.html deleted file mode 100644 index 706206de..00000000 --- a/_site/configs/Wyzecam-V1.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - -Wyzecam V1 | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Wyzecam V1

-

with Raspberry Pi 3 Model B Rev 1.2

-

Replica of the Xiaomi Xiaofang (Small White Square)

- -

Note: I used the homebridge-camera-ffmpeg-omx plugin (https://github.com/legotheboss/homebridge-camera-ffmpeg-omx) along with OpenIPC v0.2.4 for Wyze V1 (https://github.com/openipcamera/openipc-firmware) which is forked from Fang-Hacks(https://github.com/samtap/fang-hacks)

- -

The rest of the config.json file is similar to the above Xioami Xiaofang config.json

- -

config.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/_site/configs/Xiaomi-Dafang.html b/_site/configs/Xiaomi-Dafang.html deleted file mode 100644 index 9487be77..00000000 --- a/_site/configs/Xiaomi-Dafang.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - -Xiaomi Dafang | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Xiaomi Dafang

-

with Raspberry Pi 3 Model B

-

Note: 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

- -
{
-   "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/_site/configs/Xiaomi-Xiaofang-1S.html b/_site/configs/Xiaomi-Xiaofang-1S.html deleted file mode 100644 index fb91658f..00000000 --- a/_site/configs/Xiaomi-Xiaofang-1S.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - -Xiaomi Xiaofang 1S | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Xiaomi Xiaofang 1S

-

on Raspberry Pi3b (maybe also for Pi2 etc)

-

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):

- -
{
-  "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/_site/configs/Xiaomi-Xiaofang.html b/_site/configs/Xiaomi-Xiaofang.html deleted file mode 100644 index eb814ad0..00000000 --- a/_site/configs/Xiaomi-Xiaofang.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - -Xiaomi Xiaofang | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Xiaomi Xiaofang

-

(Small White Square) with Raspberry Pi 3 Model B

-

Note: I applied 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

- -
{
-   "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/_site/configs/Y-cam-Cameras.html b/_site/configs/Y-cam-Cameras.html deleted file mode 100644 index dfb3d639..00000000 --- a/_site/configs/Y-cam-Cameras.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - -Y-cam Cameras | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Y-cam Cameras

-

-

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

- -
{
-    "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/_site/configs/ZNV-ZDIE-2121W-N3T-A.html b/_site/configs/ZNV-ZDIE-2121W-N3T-A.html deleted file mode 100644 index acff4005..00000000 --- a/_site/configs/ZNV-ZDIE-2121W-N3T-A.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - -ZNV ZDIE-2121W-N3T-A | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

ZNV ZDIE-2121W-N3T-A

-

-

Product page

- -

Frame Rate:

-
    -
  • Master: 1280×960@25/30fps, 1280×720@25/30fps
  • -
  • Slave: 704×576@25/30fps, 640×480@25/30fps
  • -
- -

config.json

- -
{
-    "platform": "Camera-ffmpeg",
-    "cameras": [
-        {
-            "name": "ZNVCam",
-            "uploader": false,
-            "videoConfig": {
-                "source": "-rtsp_transport tcp -re -I rtsp://<admin>:<password>@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/_site/configs/Zoneminder.html b/_site/configs/Zoneminder.html deleted file mode 100644 index 34ea9316..00000000 --- a/_site/configs/Zoneminder.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - -Zoneminder | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

Zoneminder

-

-

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

- -
{
-  "name": "Sideyard Cam",
-  "videoConfig": {
-    "source": "-re -i http://localhost/zm/cgi-bin/nph-zms?mode=jpeg&monitor=<zm monitor id>&scale=100&maxfps=15&buffer=1000&user=<zm user>&pass=<zm passwd>",
-    "stillImageSource": "-i http://localhost/zm/cgi-bin/nph-zms?mode=single&monitor=<zm monitor id>&scale=100&user=<zm user>&pass=<zm passwd>",
-    "maxStreams": 2,
-    "maxWidth": 1280,
-    "maxHeight": 720,
-    "maxFPS": 15,
-    "debug": true
-  }
-}
-
-
- -
-
- - -
- - - - - -
- -
- - - diff --git a/_site/configs/eufy-Security-eufyCam.html b/_site/configs/eufy-Security-eufyCam.html deleted file mode 100644 index 6fe078a4..00000000 --- a/_site/configs/eufy-Security-eufyCam.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - -eufy Security eufyCam | Homebridge Camera FFmpeg - - - - - - - - - - - - - - -
-
-

eufy Security eufyCam

-

-

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

- -

config.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. -
  3. 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 https://community.anker.com/t/how-to-setup-rtsp-on-eufycam-to-stream-video-to-your-compatible-nas/64833
  4. -
-
- -
-
- - -
- - - - - -
- -
- - - diff --git a/_site/contributing/index.html b/_site/contributing/index.html deleted file mode 100644 index b8167dbd..00000000 --- a/_site/contributing/index.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - -Contributing | Homebridge Camera FFmpeg - - - - - - - - - - - - -
-
-
- -
-

Contributing

-
- -
-

If you’d like to contribute a camera configuration, you have two main options:

- -
    -
  1. Open an Issue on this project and submit the details there.
  2. -
  3. Fork this repository and create a Pull Request after you make a new page.
  4. -
- -
- -
- -
-
- - -
- - - - - -
- -
- - - diff --git a/_site/feed.xml b/_site/feed.xml deleted file mode 100644 index 42a894c0..00000000 --- a/_site/feed.xml +++ /dev/null @@ -1 +0,0 @@ -Jekyll2020-07-27T22:37:41-04:00http://0.0.0.0:4000/feed.xmlHomebridge Camera FFmpegA site created to store the tested configurations created by users of Homebridge Camera FFmpeg \ No newline at end of file diff --git a/_site/index.html b/_site/index.html deleted file mode 100644 index 8f62b91d..00000000 --- a/_site/index.html +++ /dev/null @@ -1,305 +0,0 @@ - - - - - -Tested Configurations | Homebridge Camera FFmpeg - - - - - - - - - - - - -
-
-

Tested Configurations

iSpyConnect maintains a large database of camera manufacturers, supported methods (MJPEG, FFMPEG, RTSP), and the necessary URLs for accessing video, audio, and stills.

- -

If you don’t know, or can’t find this information, start with this website.

- -

While many of these configurations use the -re option in their source configs, it is strongly recommended that you do not use that, as it may cause problems with live video.

- - - -
- -
-
- - -
- - - - - -
- -
- - - diff --git a/index.md b/index.md index af6af578..d03f06ef 100644 --- a/index.md +++ b/index.md @@ -9,5 +9,5 @@ If you don’t know, or can’t find this information, start with this website. While many of these configurations use the `-re` option in their source configs, it is strongly recommended that you do not use that, as it may cause problems with live video. {% assign collection = site.configs | sort_natural:"title" %} {% for config in collection %} - - [{{ config.title }}]({{ config.url }}){% if config.comment %}: {{ config.comment }}{% endif %} + - [{{ config.title }}]({{ site.baseurl }}{{ config.url }}){% if config.comment %}: {{ config.comment }}{% endif %} {% endfor %} From aca04ebde7be29b0a0ba9e0023f202edab22f456 Mon Sep 17 00:00:00 2001 From: David Maher Date: Tue, 28 Jul 2020 00:48:44 -0400 Subject: [PATCH 03/38] Added authors and submission dates --- _configs/Alptop-AT-200B.md | 2 ++ _configs/Amcrest-IP2M-841.md | 2 ++ _configs/{Amcrest IP3M-HX2W.md => Amcrest-IP3M-HX2W.md} | 2 ++ _configs/Amcrest-IP4M-1026.md | 2 ++ _configs/Amcrest-IPM-HX1B.md | 2 ++ _configs/Anran-DVR.md | 2 ++ _configs/August-Doorbell-Cam-Version-1.md | 2 ++ _configs/Avtech-AVM542B.md | 2 ++ _configs/Avtech-MDR751B-DVR.md | 2 ++ _configs/Axis-M3024-L.md | 2 ++ _configs/Blue-Iris.md | 2 ++ _configs/CNB-IVP4030VR.md | 2 ++ _configs/D-Link-930L.md | 2 ++ _configs/D-Link-932L.md | 2 ++ _configs/D-Link-934L.md | 2 ++ _configs/D-Link-936L.md | 2 ++ _configs/D-Link-DCS-2332L-DCS-2330L.md | 2 ++ _configs/D-Link-DCS-5222LB1.md | 2 ++ _configs/DBPOWER-MEYE-155303-FBACE.md | 2 ++ _configs/Dahua-IPC-A35.md | 2 ++ _configs/Dahua-IPC-HFW1320S-W.md | 2 ++ _configs/Digoo-DG-W02F.md | 2 ++ _configs/Doorbird-Video-Doorbell-Basic.md | 2 ++ _configs/Doorbird-Video-Doorbell-Full.md | 2 ++ _configs/ESP32-Cam-Module.md | 2 ++ _configs/EZVIZ-C1C-720P.md | 2 ++ _configs/EZVIZ-Mini-Plus.md | 2 ++ _configs/Foscam-FI8910W.md | 2 ++ _configs/Foscam-FI9900EP-FI9826P.md | 2 ++ _configs/Foscam-IQ200.md | 2 ++ _configs/Foscam-R2.md | 2 ++ _configs/Hikam-S5.md | 2 ++ _configs/IP-Webcam-App.md | 2 ++ _configs/IP-Webcam.md | 2 ++ _configs/IeGeek-IP-camera.md | 2 ++ _configs/Logitech-C525-USB-camera.md | 2 ++ _configs/Logitech-HD-Pro-Webcam-C920-2.md | 2 ++ _configs/Logitech-HD-Pro-Webcam-C920.md | 2 ++ _configs/Lorex-LHV2008.md | 2 ++ _configs/Maygion-H264-IPCam.md | 2 ++ _configs/Mobotix-M24.md | 2 ++ _configs/MotionEyeOS.md | 2 ++ _configs/Pelco-cameras.md | 2 ++ _configs/Pi-Camera-V2.md | 2 ++ _configs/ROCAM-NC400HD.md | 4 +++- _configs/Raspberry-Pi-Camera-Module-V2.md | 2 ++ _configs/Raspberry-Pi-camera-v1.3.md | 2 ++ _configs/{ReoLink-Camera-RLC-410.md => ReoLink-RLC-410.md} | 4 +++- _configs/ReoLink-RLC-422.md | 2 ++ _configs/Reolink-RLC-410W.md | 2 ++ _configs/Reolink-camera.md | 2 ++ _configs/Samsung-SNH-P6410BN.md | 2 ++ _configs/Sannce-1080P-IP-Cameras.md | 2 ++ _configs/SecuritySpy.md | 2 ++ _configs/Synology-Surveillance-Station-2.md | 2 ++ _configs/Synology-Surveillance-Station.md | 2 ++ _configs/Szsinocam-ip-onvif.md | 2 ++ _configs/TP-Link-C100.md | 2 ++ _configs/TP-Link-C200.md | 2 ++ _configs/UNV-Uniview.md | 2 ++ _configs/Ubiquiti-AirCam.md | 2 ++ _configs/Ubiquiti-UVC-G3.md | 2 ++ _configs/UniFi-Video-G3-Micro.md | 2 ++ _configs/V380-Cloudcam.md | 2 ++ _configs/VESKYS-720P-Tilt-Pan.md | 2 ++ _configs/Vivotek-CC-8130.md | 2 ++ _configs/Vstarcam-C7824WIP.md | 2 ++ _configs/WaveShare-RPi-Camera.md | 2 ++ _configs/WyzeCam-V2.md | 2 ++ _configs/Wyzecam-V1.md | 2 ++ _configs/Xiaomi-Dafang.md | 2 ++ _configs/Xiaomi-Xiaofang-1S.md | 2 ++ _configs/Xiaomi-Xiaofang.md | 2 ++ _configs/Y-cam-Cameras.md | 2 ++ _configs/ZNV-ZDIE-2121W-N3T-A.md | 2 ++ _configs/Zoneminder.md | 2 ++ _configs/eufy-Security-eufyCam.md | 2 ++ _layouts/config.md | 4 ++-- 78 files changed, 158 insertions(+), 4 deletions(-) rename _configs/{Amcrest IP3M-HX2W.md => Amcrest-IP3M-HX2W.md} (95%) rename _configs/{ReoLink-Camera-RLC-410.md => ReoLink-RLC-410.md} (92%) diff --git a/_configs/Alptop-AT-200B.md b/_configs/Alptop-AT-200B.md index 3381975e..6bb2519a 100644 --- a/_configs/Alptop-AT-200B.md +++ b/_configs/Alptop-AT-200B.md @@ -1,6 +1,8 @@ --- layout: config title: Alptop AT-200B +author: bombcar +date: 2019-01-19 --- - using homebridge-camera-ffmpeg - authentication for rtsp disabled in camera config diff --git a/_configs/Amcrest-IP2M-841.md b/_configs/Amcrest-IP2M-841.md index 62835673..d9efa8c2 100644 --- a/_configs/Amcrest-IP2M-841.md +++ b/_configs/Amcrest-IP2M-841.md @@ -1,6 +1,8 @@ --- layout: config 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. diff --git a/_configs/Amcrest IP3M-HX2W.md b/_configs/Amcrest-IP3M-HX2W.md similarity index 95% rename from _configs/Amcrest IP3M-HX2W.md rename to _configs/Amcrest-IP3M-HX2W.md index 4c18079f..687346b4 100644 --- a/_configs/Amcrest IP3M-HX2W.md +++ b/_configs/Amcrest-IP3M-HX2W.md @@ -2,6 +2,8 @@ layout: config 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 diff --git a/_configs/Amcrest-IP4M-1026.md b/_configs/Amcrest-IP4M-1026.md index 53b0874e..c0cb27b3 100644 --- a/_configs/Amcrest-IP4M-1026.md +++ b/_configs/Amcrest-IP4M-1026.md @@ -1,6 +1,8 @@ --- layout: config title: Amcrest IP4M-1026 +author: Larry Davis +date: 2020-05-06 --- ## config.json diff --git a/_configs/Amcrest-IPM-HX1B.md b/_configs/Amcrest-IPM-HX1B.md index 59fce112..6007405a 100644 --- a/_configs/Amcrest-IPM-HX1B.md +++ b/_configs/Amcrest-IPM-HX1B.md @@ -2,6 +2,8 @@ layout: config title: Amcrest IPM-HX1B comment: with MP4 Passthrough +author: Eric Cirone +date: 2020-05-27 --- ## config.json diff --git a/_configs/Anran-DVR.md b/_configs/Anran-DVR.md index 4c308ec4..f37c8036 100644 --- a/_configs/Anran-DVR.md +++ b/_configs/Anran-DVR.md @@ -2,6 +2,8 @@ layout: config 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. diff --git a/_configs/August-Doorbell-Cam-Version-1.md b/_configs/August-Doorbell-Cam-Version-1.md index d1c6bd0b..357c6c22 100644 --- a/_configs/August-Doorbell-Cam-Version-1.md +++ b/_configs/August-Doorbell-Cam-Version-1.md @@ -1,6 +1,8 @@ --- layout: config title: August Doorbell Cam Version 1 +author: siobhanellis +date: 2020-01-27 --- ## config.json diff --git a/_configs/Avtech-AVM542B.md b/_configs/Avtech-AVM542B.md index 6cb5fb67..abfead19 100644 --- a/_configs/Avtech-AVM542B.md +++ b/_configs/Avtech-AVM542B.md @@ -1,6 +1,8 @@ --- layout: config title: Avtech AVM542B +author: Lukas Foukal +date: 2020-01-18 --- Server on Synology with Docker via oznu's homebridge-syno-spk diff --git a/_configs/Avtech-MDR751B-DVR.md b/_configs/Avtech-MDR751B-DVR.md index 0d4b8640..4b10b9b0 100644 --- a/_configs/Avtech-MDR751B-DVR.md +++ b/_configs/Avtech-MDR751B-DVR.md @@ -1,6 +1,8 @@ --- layout: config title: Avtech MDR751B DVR +author: badnimits +date: 2019-01-10 --- Server running on windows 10. diff --git a/_configs/Axis-M3024-L.md b/_configs/Axis-M3024-L.md index afcda57d..e3ba810b 100644 --- a/_configs/Axis-M3024-L.md +++ b/_configs/Axis-M3024-L.md @@ -2,6 +2,8 @@ layout: config title: Axis M3024-L comment: with Raspberry Pi 3 Model B +author: tiele004 +date: 2018-02-08 --- ## config.json diff --git a/_configs/Blue-Iris.md b/_configs/Blue-Iris.md index a840cd66..7aeac1e3 100644 --- a/_configs/Blue-Iris.md +++ b/_configs/Blue-Iris.md @@ -1,6 +1,8 @@ --- layout: config 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: diff --git a/_configs/CNB-IVP4030VR.md b/_configs/CNB-IVP4030VR.md index 14981d60..b0c14095 100644 --- a/_configs/CNB-IVP4030VR.md +++ b/_configs/CNB-IVP4030VR.md @@ -2,6 +2,8 @@ layout: config title: CNB IVP4030VR comment: via RPI Model B +author: migabc +date: 2018-04-21 --- CNB IP Camera Model number:IVP4030VR diff --git a/_configs/D-Link-930L.md b/_configs/D-Link-930L.md index 0d7dcc70..4821440c 100644 --- a/_configs/D-Link-930L.md +++ b/_configs/D-Link-930L.md @@ -1,6 +1,8 @@ --- layout: config title: D-Link 930L +author: Gamer106 +date: 2018-09-01 --- Tested on Raspberry Pi 3 (with omx) diff --git a/_configs/D-Link-932L.md b/_configs/D-Link-932L.md index d198887d..f74b7383 100644 --- a/_configs/D-Link-932L.md +++ b/_configs/D-Link-932L.md @@ -1,6 +1,8 @@ --- layout: config title: D-Link 932L +author: gilesmartin +date: 2017-01-31 --- Works on Mac Mini core i5, Raspberry Pi 3 (with and without omx) diff --git a/_configs/D-Link-934L.md b/_configs/D-Link-934L.md index 39c2c3ca..e254acff 100644 --- a/_configs/D-Link-934L.md +++ b/_configs/D-Link-934L.md @@ -1,6 +1,8 @@ --- layout: config title: D-Link 934L +author: Gamer106 +date: 2018-09-01 --- Tested on Raspberry Pi 3 (with omx) diff --git a/_configs/D-Link-936L.md b/_configs/D-Link-936L.md index 8a73c17e..c9208773 100644 --- a/_configs/D-Link-936L.md +++ b/_configs/D-Link-936L.md @@ -1,6 +1,8 @@ --- layout: config title: D-Link 936L +author: Arne +date: 2017-10-06 --- Works on Raspberry Pi 3 (only with omx) diff --git a/_configs/D-Link-DCS-2332L-DCS-2330L.md b/_configs/D-Link-DCS-2332L-DCS-2330L.md index f71839ea..17e81e2a 100644 --- a/_configs/D-Link-DCS-2332L-DCS-2330L.md +++ b/_configs/D-Link-DCS-2332L-DCS-2330L.md @@ -1,6 +1,8 @@ --- layout: config 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. diff --git a/_configs/D-Link-DCS-5222LB1.md b/_configs/D-Link-DCS-5222LB1.md index 53fa61d9..4c76b38a 100644 --- a/_configs/D-Link-DCS-5222LB1.md +++ b/_configs/D-Link-DCS-5222LB1.md @@ -1,6 +1,8 @@ --- layout: config title: D-Link DCS-5222LB1 +author: EDRENOS +date: 2019-12-26 --- Notes: Replace IPADDRESS XX.XX.XX.XX, USER and PASSWORD with your data. diff --git a/_configs/DBPOWER-MEYE-155303-FBACE.md b/_configs/DBPOWER-MEYE-155303-FBACE.md index 08b14ace..cb5ad675 100644 --- a/_configs/DBPOWER-MEYE-155303-FBACE.md +++ b/_configs/DBPOWER-MEYE-155303-FBACE.md @@ -2,6 +2,8 @@ layout: config 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... diff --git a/_configs/Dahua-IPC-A35.md b/_configs/Dahua-IPC-A35.md index 9e9da506..1a84cee1 100644 --- a/_configs/Dahua-IPC-A35.md +++ b/_configs/Dahua-IPC-A35.md @@ -2,6 +2,8 @@ layout: config title: Dahua IPC-A35 comment: with sound +author: Martin Kuneš +date: 2020-06-11 --- ## config.json diff --git a/_configs/Dahua-IPC-HFW1320S-W.md b/_configs/Dahua-IPC-HFW1320S-W.md index b741d3b4..bf7f73c8 100644 --- a/_configs/Dahua-IPC-HFW1320S-W.md +++ b/_configs/Dahua-IPC-HFW1320S-W.md @@ -1,6 +1,8 @@ --- layout: config title: Dahua IPC-HFW1320S-W +author: Martin Kuneš +date: 2020-06-11 --- ## config.json diff --git a/_configs/Digoo-DG-W02F.md b/_configs/Digoo-DG-W02F.md index 9c9c16fa..7c192a24 100644 --- a/_configs/Digoo-DG-W02F.md +++ b/_configs/Digoo-DG-W02F.md @@ -1,6 +1,8 @@ --- layout: config title: Digoo DG-W02F +author: LeJeko +date: 2019-04-04 --- Working through RTSP on RaspberryPi diff --git a/_configs/Doorbird-Video-Doorbell-Basic.md b/_configs/Doorbird-Video-Doorbell-Basic.md index ff6b1d13..eecdbb9f 100644 --- a/_configs/Doorbird-Video-Doorbell-Basic.md +++ b/_configs/Doorbird-Video-Doorbell-Basic.md @@ -2,6 +2,8 @@ layout: config 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. diff --git a/_configs/Doorbird-Video-Doorbell-Full.md b/_configs/Doorbird-Video-Doorbell-Full.md index 0fcfe5e7..d7ae0da7 100644 --- a/_configs/Doorbird-Video-Doorbell-Full.md +++ b/_configs/Doorbird-Video-Doorbell-Full.md @@ -2,6 +2,8 @@ layout: config 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. diff --git a/_configs/ESP32-Cam-Module.md b/_configs/ESP32-Cam-Module.md index 4b5a1adf..effcf9f4 100644 --- a/_configs/ESP32-Cam-Module.md +++ b/_configs/ESP32-Cam-Module.md @@ -1,6 +1,8 @@ --- layout: config title: ESP32-Cam Module +author: odx +date: 2019-12-22 --- ## config.json diff --git a/_configs/EZVIZ-C1C-720P.md b/_configs/EZVIZ-C1C-720P.md index 895c45c6..86c49391 100644 --- a/_configs/EZVIZ-C1C-720P.md +++ b/_configs/EZVIZ-C1C-720P.md @@ -1,6 +1,8 @@ --- layout: config title: EZVIZ C1C 720P +author: Alberto Mengoli +date: 2020-06-22 --- [Product Page](https://www.ezvizlife.com/uk/product/mini-plus/916) diff --git a/_configs/EZVIZ-Mini-Plus.md b/_configs/EZVIZ-Mini-Plus.md index 855b694b..92d754df 100644 --- a/_configs/EZVIZ-Mini-Plus.md +++ b/_configs/EZVIZ-Mini-Plus.md @@ -1,6 +1,8 @@ --- layout: config title: EZVIZ Mini Plus +author: TheRealGreatOldOne +date: 2018-09-30 --- [Product Page](https://www.ezvizlife.com/uk/product/mini-plus/916) diff --git a/_configs/Foscam-FI8910W.md b/_configs/Foscam-FI8910W.md index 2aafb258..fd442cfa 100644 --- a/_configs/Foscam-FI8910W.md +++ b/_configs/Foscam-FI8910W.md @@ -1,6 +1,8 @@ --- layout: config title: Foscam FI8910W +author: mishakim +date: 2018-01-20 --- Streaming via http diff --git a/_configs/Foscam-FI9900EP-FI9826P.md b/_configs/Foscam-FI9900EP-FI9826P.md index c9a9d227..eea782a7 100644 --- a/_configs/Foscam-FI9900EP-FI9826P.md +++ b/_configs/Foscam-FI9900EP-FI9826P.md @@ -1,6 +1,8 @@ --- layout: config title: Foscam FI9900EP / FI9826P +author: Veldkornet +date: 2018-03-29 --- Working through RTSP on RaspberryPi diff --git a/_configs/Foscam-IQ200.md b/_configs/Foscam-IQ200.md index 9839dce5..7339c1ec 100644 --- a/_configs/Foscam-IQ200.md +++ b/_configs/Foscam-IQ200.md @@ -1,6 +1,8 @@ --- layout: config title: Foscam IQ200 +author: redelva +date: 2017-03-23 --- Working through RTSP diff --git a/_configs/Foscam-R2.md b/_configs/Foscam-R2.md index 184a001c..7fae5970 100644 --- a/_configs/Foscam-R2.md +++ b/_configs/Foscam-R2.md @@ -1,6 +1,8 @@ --- layout: config title: Foscam R2 +author: mishakim +date: 2018-01-20 --- Working through RTSP diff --git a/_configs/Hikam-S5.md b/_configs/Hikam-S5.md index bc7ca84b..5306cd40 100644 --- a/_configs/Hikam-S5.md +++ b/_configs/Hikam-S5.md @@ -2,6 +2,8 @@ layout: config 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) diff --git a/_configs/IP-Webcam-App.md b/_configs/IP-Webcam-App.md index 3e51acf7..aed8e8b0 100644 --- a/_configs/IP-Webcam-App.md +++ b/_configs/IP-Webcam-App.md @@ -2,6 +2,8 @@ layout: config title: IP Webcam App comment: by Pavel Khlebovich +author: Bernd Gewehr +date: 2019-11-15 --- Working through http diff --git a/_configs/IP-Webcam.md b/_configs/IP-Webcam.md index 3a745aa4..ee3da910 100644 --- a/_configs/IP-Webcam.md +++ b/_configs/IP-Webcam.md @@ -2,6 +2,8 @@ layout: config 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. https://github.com/legotheboss/homebridge-camera-ffmpeg-omx diff --git a/_configs/IeGeek-IP-camera.md b/_configs/IeGeek-IP-camera.md index c7afc767..0280249d 100644 --- a/_configs/IeGeek-IP-camera.md +++ b/_configs/IeGeek-IP-camera.md @@ -2,6 +2,8 @@ layout: config 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. diff --git a/_configs/Logitech-C525-USB-camera.md b/_configs/Logitech-C525-USB-camera.md index cae4f54e..394994ac 100644 --- a/_configs/Logitech-C525-USB-camera.md +++ b/_configs/Logitech-C525-USB-camera.md @@ -2,6 +2,8 @@ layout: config 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: diff --git a/_configs/Logitech-HD-Pro-Webcam-C920-2.md b/_configs/Logitech-HD-Pro-Webcam-C920-2.md index 16111c00..bb008f16 100644 --- a/_configs/Logitech-HD-Pro-Webcam-C920-2.md +++ b/_configs/Logitech-HD-Pro-Webcam-C920-2.md @@ -2,6 +2,8 @@ layout: config 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): diff --git a/_configs/Logitech-HD-Pro-Webcam-C920.md b/_configs/Logitech-HD-Pro-Webcam-C920.md index 2bb0ac30..6c3d9c75 100644 --- a/_configs/Logitech-HD-Pro-Webcam-C920.md +++ b/_configs/Logitech-HD-Pro-Webcam-C920.md @@ -1,6 +1,8 @@ --- layout: config 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. diff --git a/_configs/Lorex-LHV2008.md b/_configs/Lorex-LHV2008.md index 12ce3ca0..b3878bce 100644 --- a/_configs/Lorex-LHV2008.md +++ b/_configs/Lorex-LHV2008.md @@ -1,6 +1,8 @@ --- layout: config title: Lorex LHV2008 +author: icdoo +date: 2020-01-19 --- ## config.json diff --git a/_configs/Maygion-H264-IPCam.md b/_configs/Maygion-H264-IPCam.md index af8db4b9..4091c5bb 100644 --- a/_configs/Maygion-H264-IPCam.md +++ b/_configs/Maygion-H264-IPCam.md @@ -2,6 +2,8 @@ layout: config 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 diff --git a/_configs/Mobotix-M24.md b/_configs/Mobotix-M24.md index 47f29fa4..b04de877 100644 --- a/_configs/Mobotix-M24.md +++ b/_configs/Mobotix-M24.md @@ -2,6 +2,8 @@ layout: config title: Mobotix M24 comment: with Raspberry Pi 3 Model B +author: tiele004 +date: 2018-02-08 --- ## config.json diff --git a/_configs/MotionEyeOS.md b/_configs/MotionEyeOS.md index 81297d4b..77604b87 100644 --- a/_configs/MotionEyeOS.md +++ b/_configs/MotionEyeOS.md @@ -1,6 +1,8 @@ --- layout: config 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. diff --git a/_configs/Pelco-cameras.md b/_configs/Pelco-cameras.md index 6965f92d..67362499 100644 --- a/_configs/Pelco-cameras.md +++ b/_configs/Pelco-cameras.md @@ -1,6 +1,8 @@ --- layout: config title: Pelco cameras +author: Klangen82 +date: 2017-03-25 --- Working through RTSP diff --git a/_configs/Pi-Camera-V2.md b/_configs/Pi-Camera-V2.md index 9ccbec58..45b6aa43 100644 --- a/_configs/Pi-Camera-V2.md +++ b/_configs/Pi-Camera-V2.md @@ -1,6 +1,8 @@ --- layout: config 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. diff --git a/_configs/ROCAM-NC400HD.md b/_configs/ROCAM-NC400HD.md index 654cc807..a88f5a6a 100644 --- a/_configs/ROCAM-NC400HD.md +++ b/_configs/ROCAM-NC400HD.md @@ -1,7 +1,9 @@ --- layout: config title: ROCAM-NC400HD -comment: with Raspberry Pi Model B 512Mb RAM - jessie by BonRm +comment: with Raspberry Pi Model B 512Mb RAM - jessie +author: BonRm +date: 2017-03-31 --- ## config.json diff --git a/_configs/Raspberry-Pi-Camera-Module-V2.md b/_configs/Raspberry-Pi-Camera-Module-V2.md index 743c0b9d..5c0a11c1 100644 --- a/_configs/Raspberry-Pi-Camera-Module-V2.md +++ b/_configs/Raspberry-Pi-Camera-Module-V2.md @@ -2,6 +2,8 @@ layout: config 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 diff --git a/_configs/Raspberry-Pi-camera-v1.3.md b/_configs/Raspberry-Pi-camera-v1.3.md index 0aef01c7..261ce383 100644 --- a/_configs/Raspberry-Pi-camera-v1.3.md +++ b/_configs/Raspberry-Pi-camera-v1.3.md @@ -2,6 +2,8 @@ layout: config title: Raspberry Pi camera v1.3 comment: connected to another RasPi +author: Jan Kaiser +date: 2019-08-02 --- ## Description diff --git a/_configs/ReoLink-Camera-RLC-410.md b/_configs/ReoLink-RLC-410.md similarity index 92% rename from _configs/ReoLink-Camera-RLC-410.md rename to _configs/ReoLink-RLC-410.md index cd30a725..83007f06 100644 --- a/_configs/ReoLink-Camera-RLC-410.md +++ b/_configs/ReoLink-RLC-410.md @@ -1,7 +1,9 @@ --- layout: config -title: ReoLink Camera RLC-410 +title: ReoLink RLC-410 comment: (Should work with all ReoLink-Cams supporting RTSP) +author: Jonathan Fritz +date: 2019-09-24 --- ## config.json diff --git a/_configs/ReoLink-RLC-422.md b/_configs/ReoLink-RLC-422.md index 43667d2e..b315f39a 100644 --- a/_configs/ReoLink-RLC-422.md +++ b/_configs/ReoLink-RLC-422.md @@ -1,6 +1,8 @@ --- layout: config title: ReoLink RLC-422 +author: t1dals +date: 2019-10-03 --- ## config.json diff --git a/_configs/Reolink-RLC-410W.md b/_configs/Reolink-RLC-410W.md index cf97e92f..132eb853 100644 --- a/_configs/Reolink-RLC-410W.md +++ b/_configs/Reolink-RLC-410W.md @@ -2,6 +2,8 @@ layout: config 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 diff --git a/_configs/Reolink-camera.md b/_configs/Reolink-camera.md index 4ea89965..ea569811 100644 --- a/_configs/Reolink-camera.md +++ b/_configs/Reolink-camera.md @@ -2,6 +2,8 @@ layout: config title: Reolink camera comment: with better picture (rtmp) and audio (Ffmpeg tutorial) +author: LSD MadMac +date: 2020-03-01 --- Hello, diff --git a/_configs/Samsung-SNH-P6410BN.md b/_configs/Samsung-SNH-P6410BN.md index cd5a9b55..9f31fbb9 100644 --- a/_configs/Samsung-SNH-P6410BN.md +++ b/_configs/Samsung-SNH-P6410BN.md @@ -2,6 +2,8 @@ layout: config 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. https://github.com/legotheboss/homebridge-camera-ffmpeg-omx diff --git a/_configs/Sannce-1080P-IP-Cameras.md b/_configs/Sannce-1080P-IP-Cameras.md index 997b3dda..0cf64707 100644 --- a/_configs/Sannce-1080P-IP-Cameras.md +++ b/_configs/Sannce-1080P-IP-Cameras.md @@ -1,6 +1,8 @@ --- layout: config 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) diff --git a/_configs/SecuritySpy.md b/_configs/SecuritySpy.md index db320ad8..a1f703c6 100644 --- a/_configs/SecuritySpy.md +++ b/_configs/SecuritySpy.md @@ -2,6 +2,8 @@ layout: config title: SecuritySpy comment: for MacOs +author: Tom Hickey +date: 2018-06-17 --- [Product page](https://www.bensoftware.com/securityspy/) diff --git a/_configs/Synology-Surveillance-Station-2.md b/_configs/Synology-Surveillance-Station-2.md index 0a012081..cd556b38 100644 --- a/_configs/Synology-Surveillance-Station-2.md +++ b/_configs/Synology-Surveillance-Station-2.md @@ -1,6 +1,8 @@ --- layout: config 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. diff --git a/_configs/Synology-Surveillance-Station.md b/_configs/Synology-Surveillance-Station.md index 953586c6..e42c42e7 100644 --- a/_configs/Synology-Surveillance-Station.md +++ b/_configs/Synology-Surveillance-Station.md @@ -1,6 +1,8 @@ --- layout: config 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" diff --git a/_configs/Szsinocam-ip-onvif.md b/_configs/Szsinocam-ip-onvif.md index f37ba815..586a62f9 100644 --- a/_configs/Szsinocam-ip-onvif.md +++ b/_configs/Szsinocam-ip-onvif.md @@ -1,6 +1,8 @@ --- layout: config title: Szsinocam ip onvif +author: Jony +date: 2020-06-30 --- - using homebridge-camera-ffmpeg - authentication for rtsp disabled in camera config diff --git a/_configs/TP-Link-C100.md b/_configs/TP-Link-C100.md index 9840bdd8..38389b65 100644 --- a/_configs/TP-Link-C100.md +++ b/_configs/TP-Link-C100.md @@ -1,6 +1,8 @@ --- layout: config title: TP-Link C100 +author: Jirka +date: 2020-07-07 --- Model C 100 diff --git a/_configs/TP-Link-C200.md b/_configs/TP-Link-C200.md index 7a45801a..35419771 100644 --- a/_configs/TP-Link-C200.md +++ b/_configs/TP-Link-C200.md @@ -1,6 +1,8 @@ --- layout: config title: TP-Link C200 +author: jonasophie +date: 2020-04-17 --- Model C 200 diff --git a/_configs/UNV-Uniview.md b/_configs/UNV-Uniview.md index bad6db92..a578cccf 100644 --- a/_configs/UNV-Uniview.md +++ b/_configs/UNV-Uniview.md @@ -1,6 +1,8 @@ --- layout: config title: UNV Uniview +author: iq85k +date: 2020-02-28 --- Model NVR301-04LB-P4 Cameras are UNV IPC2122LR3-PF40-E diff --git a/_configs/Ubiquiti-AirCam.md b/_configs/Ubiquiti-AirCam.md index 3d4c2fe9..bbecaa1e 100644 --- a/_configs/Ubiquiti-AirCam.md +++ b/_configs/Ubiquiti-AirCam.md @@ -2,6 +2,8 @@ layout: config 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). diff --git a/_configs/Ubiquiti-UVC-G3.md b/_configs/Ubiquiti-UVC-G3.md index c1aa2eae..1d954db5 100644 --- a/_configs/Ubiquiti-UVC-G3.md +++ b/_configs/Ubiquiti-UVC-G3.md @@ -1,6 +1,8 @@ --- layout: config title: Ubiquiti UVC G3 +author: Deon +date: 2020-05-11 --- ## config.json diff --git a/_configs/UniFi-Video-G3-Micro.md b/_configs/UniFi-Video-G3-Micro.md index 9d5aa19c..929b0db0 100644 --- a/_configs/UniFi-Video-G3-Micro.md +++ b/_configs/UniFi-Video-G3-Micro.md @@ -1,6 +1,8 @@ --- layout: config title: UniFi Video G3-Micro +author: gijoecool +date: 2019-07-06 --- ### Description diff --git a/_configs/V380-Cloudcam.md b/_configs/V380-Cloudcam.md index 3fde8b36..4b2da2c3 100644 --- a/_configs/V380-Cloudcam.md +++ b/_configs/V380-Cloudcam.md @@ -1,6 +1,8 @@ --- layout: config title: V380 Cloudcam +author: LeJeko +date: 2019-04-04 --- **Need to patch the firmware to activate RTSP on port 554.** diff --git a/_configs/VESKYS-720P-Tilt-Pan.md b/_configs/VESKYS-720P-Tilt-Pan.md index 4d337c52..091139aa 100644 --- a/_configs/VESKYS-720P-Tilt-Pan.md +++ b/_configs/VESKYS-720P-Tilt-Pan.md @@ -1,6 +1,8 @@ --- layout: config title: VESKYS 720P Tilt / Pan +author: Charles Vestal +date: 2017-05-13 --- ## config.json diff --git a/_configs/Vivotek-CC-8130.md b/_configs/Vivotek-CC-8130.md index 8bc35106..60a4233f 100644 --- a/_configs/Vivotek-CC-8130.md +++ b/_configs/Vivotek-CC-8130.md @@ -2,6 +2,8 @@ layout: config 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. https://github.com/legotheboss/homebridge-camera-ffmpeg-omx diff --git a/_configs/Vstarcam-C7824WIP.md b/_configs/Vstarcam-C7824WIP.md index 4c6dc6f2..74723072 100644 --- a/_configs/Vstarcam-C7824WIP.md +++ b/_configs/Vstarcam-C7824WIP.md @@ -1,6 +1,8 @@ --- layout: config title: Vstarcam C7824WIP +author: teymur1988 +date: 2020-07-15 --- - using homebridge-camera-ffmpeg 2.3.0 - authentication for rtsp admin and camera password diff --git a/_configs/WaveShare-RPi-Camera.md b/_configs/WaveShare-RPi-Camera.md index f9dbe27a..4dbc20e7 100644 --- a/_configs/WaveShare-RPi-Camera.md +++ b/_configs/WaveShare-RPi-Camera.md @@ -2,6 +2,8 @@ layout: config 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. diff --git a/_configs/WyzeCam-V2.md b/_configs/WyzeCam-V2.md index c3c63365..10cafc25 100644 --- a/_configs/WyzeCam-V2.md +++ b/_configs/WyzeCam-V2.md @@ -2,6 +2,8 @@ layout: config 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. diff --git a/_configs/Wyzecam-V1.md b/_configs/Wyzecam-V1.md index ea750ac9..cdb8500f 100644 --- a/_configs/Wyzecam-V1.md +++ b/_configs/Wyzecam-V1.md @@ -2,6 +2,8 @@ layout: config 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) diff --git a/_configs/Xiaomi-Dafang.md b/_configs/Xiaomi-Dafang.md index d1fa8eb8..ecbf659e 100644 --- a/_configs/Xiaomi-Dafang.md +++ b/_configs/Xiaomi-Dafang.md @@ -2,6 +2,8 @@ layout: config 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. diff --git a/_configs/Xiaomi-Xiaofang-1S.md b/_configs/Xiaomi-Xiaofang-1S.md index 35050dc4..4b74a1df 100644 --- a/_configs/Xiaomi-Xiaofang-1S.md +++ b/_configs/Xiaomi-Xiaofang-1S.md @@ -2,6 +2,8 @@ layout: config title: Xiaomi Xiaofang 1S comment: on Raspberry Pi3b (maybe also for Pi2 etc) +author: mrdc +date: 2019-11-23 --- Hello, diff --git a/_configs/Xiaomi-Xiaofang.md b/_configs/Xiaomi-Xiaofang.md index de62e821..e4077eb1 100644 --- a/_configs/Xiaomi-Xiaofang.md +++ b/_configs/Xiaomi-Xiaofang.md @@ -2,6 +2,8 @@ layout: config 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. diff --git a/_configs/Y-cam-Cameras.md b/_configs/Y-cam-Cameras.md index fe7d09dc..daf7ef9e 100644 --- a/_configs/Y-cam-Cameras.md +++ b/_configs/Y-cam-Cameras.md @@ -1,6 +1,8 @@ --- layout: config title: Y-cam Cameras +author: usmcguy +date: 2017-05-18 --- Working through RTSP diff --git a/_configs/ZNV-ZDIE-2121W-N3T-A.md b/_configs/ZNV-ZDIE-2121W-N3T-A.md index 6f08de68..51860f14 100644 --- a/_configs/ZNV-ZDIE-2121W-N3T-A.md +++ b/_configs/ZNV-ZDIE-2121W-N3T-A.md @@ -1,6 +1,8 @@ --- layout: config 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) diff --git a/_configs/Zoneminder.md b/_configs/Zoneminder.md index 2758926d..df9e19cb 100644 --- a/_configs/Zoneminder.md +++ b/_configs/Zoneminder.md @@ -1,6 +1,8 @@ --- layout: config 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. diff --git a/_configs/eufy-Security-eufyCam.md b/_configs/eufy-Security-eufyCam.md index 3beba07a..f75f76ab 100644 --- a/_configs/eufy-Security-eufyCam.md +++ b/_configs/eufy-Security-eufyCam.md @@ -1,6 +1,8 @@ --- layout: config title: eufy Security eufyCam +author: scrytch +date: 2019-06-23 --- ### Description diff --git a/_layouts/config.md b/_layouts/config.md index f4272f32..f41457a8 100644 --- a/_layouts/config.md +++ b/_layouts/config.md @@ -1,6 +1,6 @@ --- layout: default --- -

{{ page.title }}

-

{{ page.comment }}

+

{{ page.title }}

{{ page.comment }} +
Submitted by {{ page.author }} on {{ page.date | date: "%B %-d, %Y" }}
{{ content }}
From b3c50fdb8bace24d040732d2b7be0984920c90b2 Mon Sep 17 00:00:00 2001 From: David Maher Date: Tue, 28 Jul 2020 09:46:25 -0400 Subject: [PATCH 04/38] General layout tweaks --- Gemfile | 6 +++--- Gemfile.lock | 1 - _config.yml | 17 +++++++++++------ _configs/Alptop-AT-200B.md | 1 - _configs/Amcrest-IP2M-841.md | 1 - _configs/Amcrest-IP3M-HX2W.md | 1 - _configs/Amcrest-IP4M-1026.md | 1 - _configs/Amcrest-IPM-HX1B.md | 1 - _configs/Anran-DVR.md | 1 - _configs/August-Doorbell-Cam-Version-1.md | 1 - _configs/Avtech-AVM542B.md | 1 - _configs/Avtech-MDR751B-DVR.md | 1 - _configs/Axis-M3024-L.md | 1 - _configs/Blue-Iris.md | 1 - _configs/CNB-IVP4030VR.md | 1 - _configs/D-Link-930L.md | 1 - _configs/D-Link-932L.md | 1 - _configs/D-Link-934L.md | 1 - _configs/D-Link-936L.md | 1 - _configs/D-Link-DCS-2332L-DCS-2330L.md | 1 - _configs/D-Link-DCS-5222LB1.md | 1 - _configs/DBPOWER-MEYE-155303-FBACE.md | 1 - _configs/Dahua-IPC-A35.md | 1 - _configs/Dahua-IPC-HFW1320S-W.md | 1 - _configs/Digoo-DG-W02F.md | 1 - _configs/Doorbird-Video-Doorbell-Basic.md | 1 - _configs/Doorbird-Video-Doorbell-Full.md | 1 - _configs/ESP32-Cam-Module.md | 1 - _configs/EZVIZ-C1C-720P.md | 1 - _configs/EZVIZ-Mini-Plus.md | 1 - _configs/Foscam-FI8910W.md | 1 - _configs/Foscam-FI9900EP-FI9826P.md | 1 - _configs/Foscam-IQ200.md | 1 - _configs/Foscam-R2.md | 1 - _configs/Hikam-S5.md | 1 - _configs/IP-Webcam-App.md | 1 - _configs/IP-Webcam.md | 1 - _configs/IeGeek-IP-camera.md | 1 - _configs/Logitech-C525-USB-camera.md | 1 - _configs/Logitech-HD-Pro-Webcam-C920-2.md | 1 - _configs/Logitech-HD-Pro-Webcam-C920.md | 1 - _configs/Lorex-LHV2008.md | 1 - _configs/Maygion-H264-IPCam.md | 1 - _configs/Mobotix-M24.md | 1 - _configs/MotionEyeOS.md | 1 - _configs/Pelco-cameras.md | 1 - _configs/Pi-Camera-V2.md | 1 - _configs/ROCAM-NC400HD.md | 1 - _configs/Raspberry-Pi-Camera-Module-V2.md | 1 - _configs/Raspberry-Pi-camera-v1.3.md | 1 - _configs/ReoLink-RLC-410.md | 1 - _configs/ReoLink-RLC-422.md | 1 - _configs/Reolink-RLC-410W.md | 1 - _configs/Reolink-camera.md | 1 - _configs/Samsung-SNH-P6410BN.md | 1 - _configs/Sannce-1080P-IP-Cameras.md | 1 - _configs/SecuritySpy.md | 1 - _configs/Synology-Surveillance-Station-2.md | 1 - _configs/Synology-Surveillance-Station.md | 1 - _configs/Szsinocam-ip-onvif.md | 1 - _configs/TP-Link-C100.md | 1 - _configs/TP-Link-C200.md | 1 - _configs/UNV-Uniview.md | 1 - _configs/Ubiquiti-AirCam.md | 1 - _configs/Ubiquiti-UVC-G3.md | 1 - _configs/UniFi-Video-G3-Micro.md | 1 - _configs/V380-Cloudcam.md | 1 - _configs/VESKYS-720P-Tilt-Pan.md | 1 - _configs/Vivotek-CC-8130.md | 1 - _configs/Vstarcam-C7824WIP.md | 1 - _configs/WaveShare-RPi-Camera.md | 1 - _configs/WyzeCam-V2.md | 1 - _configs/Wyzecam-V1.md | 1 - _configs/Xiaomi-Dafang.md | 1 - _configs/Xiaomi-Xiaofang-1S.md | 1 - _configs/Xiaomi-Xiaofang.md | 1 - _configs/Y-cam-Cameras.md | 1 - _configs/ZNV-ZDIE-2121W-N3T-A.md | 1 - _configs/Zoneminder.md | 1 - _configs/eufy-Security-eufyCam.md | 1 - _layouts/config.md | 15 ++++++++++++--- contributing.md | 4 ++-- index.md | 16 +++++++++++----- serve-local.sh | 2 ++ 84 files changed, 41 insertions(+), 97 deletions(-) create mode 100755 serve-local.sh diff --git a/Gemfile b/Gemfile index 9df16b95..16163a31 100644 --- a/Gemfile +++ b/Gemfile @@ -18,9 +18,9 @@ gem "minima", "~> 2.0" gem "github-pages", group: :jekyll_plugins # If you have any plugins, put them here! -group :jekyll_plugins do - gem "jekyll-feed", "~> 0.6" -end +# 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. diff --git a/Gemfile.lock b/Gemfile.lock index 17068599..7d00b99d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -246,7 +246,6 @@ PLATFORMS DEPENDENCIES github-pages - jekyll-feed (~> 0.6) minima (~> 2.0) tzinfo (~> 1.2) tzinfo-data diff --git a/_config.yml b/_config.yml index 8669aca5..91602436 100644 --- a/_config.yml +++ b/_config.yml @@ -1,16 +1,21 @@ title: Homebridge Camera FFmpeg -email: sunookitsune@kitsunet.org -description: A site created to store the tested configurations created by users of Homebridge Camera FFmpeg +author: David Maher +description: A place to store the tested configurations created by users of Homebridge Camera FFmpeg baseurl: "/homebridge-camera-ffmpeg" url: "https://sunoo.github.io" -twitter_username: sunookitsune github_username: Sunoo -markdown: kramdown +markdown: CommonMarkGhPages theme: minima -plugins: - - jekyll-feed collections: configs: output: true + +defaults: + - + scope: + path: "" + type: "configs" + values: + layout: "config" diff --git a/_configs/Alptop-AT-200B.md b/_configs/Alptop-AT-200B.md index 6bb2519a..a5c97e4e 100644 --- a/_configs/Alptop-AT-200B.md +++ b/_configs/Alptop-AT-200B.md @@ -1,5 +1,4 @@ --- -layout: config title: Alptop AT-200B author: bombcar date: 2019-01-19 diff --git a/_configs/Amcrest-IP2M-841.md b/_configs/Amcrest-IP2M-841.md index d9efa8c2..221c8d15 100644 --- a/_configs/Amcrest-IP2M-841.md +++ b/_configs/Amcrest-IP2M-841.md @@ -1,5 +1,4 @@ --- -layout: config title: Amcrest IP2M-841 author: Brad Gessler date: 2017-09-25 diff --git a/_configs/Amcrest-IP3M-HX2W.md b/_configs/Amcrest-IP3M-HX2W.md index 687346b4..07a033ff 100644 --- a/_configs/Amcrest-IP3M-HX2W.md +++ b/_configs/Amcrest-IP3M-HX2W.md @@ -1,5 +1,4 @@ --- -layout: config title: Amcrest IP3M-HX2W comment: HOOBS + Raspberry Pi 4 author: resgroupmsr diff --git a/_configs/Amcrest-IP4M-1026.md b/_configs/Amcrest-IP4M-1026.md index c0cb27b3..60134257 100644 --- a/_configs/Amcrest-IP4M-1026.md +++ b/_configs/Amcrest-IP4M-1026.md @@ -1,5 +1,4 @@ --- -layout: config title: Amcrest IP4M-1026 author: Larry Davis date: 2020-05-06 diff --git a/_configs/Amcrest-IPM-HX1B.md b/_configs/Amcrest-IPM-HX1B.md index 6007405a..ed23b05e 100644 --- a/_configs/Amcrest-IPM-HX1B.md +++ b/_configs/Amcrest-IPM-HX1B.md @@ -1,5 +1,4 @@ --- -layout: config title: Amcrest IPM-HX1B comment: with MP4 Passthrough author: Eric Cirone diff --git a/_configs/Anran-DVR.md b/_configs/Anran-DVR.md index f37c8036..51e2bab0 100644 --- a/_configs/Anran-DVR.md +++ b/_configs/Anran-DVR.md @@ -1,5 +1,4 @@ --- -layout: config title: Anran DVR comment: Generic Chinese DVR author: gilesmartin diff --git a/_configs/August-Doorbell-Cam-Version-1.md b/_configs/August-Doorbell-Cam-Version-1.md index 357c6c22..69642301 100644 --- a/_configs/August-Doorbell-Cam-Version-1.md +++ b/_configs/August-Doorbell-Cam-Version-1.md @@ -1,5 +1,4 @@ --- -layout: config title: August Doorbell Cam Version 1 author: siobhanellis date: 2020-01-27 diff --git a/_configs/Avtech-AVM542B.md b/_configs/Avtech-AVM542B.md index abfead19..c21dc907 100644 --- a/_configs/Avtech-AVM542B.md +++ b/_configs/Avtech-AVM542B.md @@ -1,5 +1,4 @@ --- -layout: config title: Avtech AVM542B author: Lukas Foukal date: 2020-01-18 diff --git a/_configs/Avtech-MDR751B-DVR.md b/_configs/Avtech-MDR751B-DVR.md index 4b10b9b0..eca0b72d 100644 --- a/_configs/Avtech-MDR751B-DVR.md +++ b/_configs/Avtech-MDR751B-DVR.md @@ -1,5 +1,4 @@ --- -layout: config title: Avtech MDR751B DVR author: badnimits date: 2019-01-10 diff --git a/_configs/Axis-M3024-L.md b/_configs/Axis-M3024-L.md index e3ba810b..90e90b1e 100644 --- a/_configs/Axis-M3024-L.md +++ b/_configs/Axis-M3024-L.md @@ -1,5 +1,4 @@ --- -layout: config title: Axis M3024-L comment: with Raspberry Pi 3 Model B author: tiele004 diff --git a/_configs/Blue-Iris.md b/_configs/Blue-Iris.md index 7aeac1e3..df72cc70 100644 --- a/_configs/Blue-Iris.md +++ b/_configs/Blue-Iris.md @@ -1,5 +1,4 @@ --- -layout: config title: Blue Iris author: Normen Hansen date: 2018-03-02 diff --git a/_configs/CNB-IVP4030VR.md b/_configs/CNB-IVP4030VR.md index b0c14095..51a4b4a4 100644 --- a/_configs/CNB-IVP4030VR.md +++ b/_configs/CNB-IVP4030VR.md @@ -1,5 +1,4 @@ --- -layout: config title: CNB IVP4030VR comment: via RPI Model B author: migabc diff --git a/_configs/D-Link-930L.md b/_configs/D-Link-930L.md index 4821440c..fe3af1a5 100644 --- a/_configs/D-Link-930L.md +++ b/_configs/D-Link-930L.md @@ -1,5 +1,4 @@ --- -layout: config title: D-Link 930L author: Gamer106 date: 2018-09-01 diff --git a/_configs/D-Link-932L.md b/_configs/D-Link-932L.md index f74b7383..c63e5931 100644 --- a/_configs/D-Link-932L.md +++ b/_configs/D-Link-932L.md @@ -1,5 +1,4 @@ --- -layout: config title: D-Link 932L author: gilesmartin date: 2017-01-31 diff --git a/_configs/D-Link-934L.md b/_configs/D-Link-934L.md index e254acff..00361062 100644 --- a/_configs/D-Link-934L.md +++ b/_configs/D-Link-934L.md @@ -1,5 +1,4 @@ --- -layout: config title: D-Link 934L author: Gamer106 date: 2018-09-01 diff --git a/_configs/D-Link-936L.md b/_configs/D-Link-936L.md index c9208773..42b0d1be 100644 --- a/_configs/D-Link-936L.md +++ b/_configs/D-Link-936L.md @@ -1,5 +1,4 @@ --- -layout: config title: D-Link 936L author: Arne date: 2017-10-06 diff --git a/_configs/D-Link-DCS-2332L-DCS-2330L.md b/_configs/D-Link-DCS-2332L-DCS-2330L.md index 17e81e2a..d1f021a4 100644 --- a/_configs/D-Link-DCS-2332L-DCS-2330L.md +++ b/_configs/D-Link-DCS-2332L-DCS-2330L.md @@ -1,5 +1,4 @@ --- -layout: config title: D-Link DCS-2332L/DCS-2330L author: pkempe date: 2018-05-20 diff --git a/_configs/D-Link-DCS-5222LB1.md b/_configs/D-Link-DCS-5222LB1.md index 4c76b38a..7bf67577 100644 --- a/_configs/D-Link-DCS-5222LB1.md +++ b/_configs/D-Link-DCS-5222LB1.md @@ -1,5 +1,4 @@ --- -layout: config title: D-Link DCS-5222LB1 author: EDRENOS date: 2019-12-26 diff --git a/_configs/DBPOWER-MEYE-155303-FBACE.md b/_configs/DBPOWER-MEYE-155303-FBACE.md index cb5ad675..753c1611 100644 --- a/_configs/DBPOWER-MEYE-155303-FBACE.md +++ b/_configs/DBPOWER-MEYE-155303-FBACE.md @@ -1,5 +1,4 @@ --- -layout: config title: DBPOWER MEYE-155303-FBACE comment: with Raspberry Pi 3 Model B author: Marci diff --git a/_configs/Dahua-IPC-A35.md b/_configs/Dahua-IPC-A35.md index 1a84cee1..a494abfd 100644 --- a/_configs/Dahua-IPC-A35.md +++ b/_configs/Dahua-IPC-A35.md @@ -1,5 +1,4 @@ --- -layout: config title: Dahua IPC-A35 comment: with sound author: Martin Kuneš diff --git a/_configs/Dahua-IPC-HFW1320S-W.md b/_configs/Dahua-IPC-HFW1320S-W.md index bf7f73c8..4ebb3702 100644 --- a/_configs/Dahua-IPC-HFW1320S-W.md +++ b/_configs/Dahua-IPC-HFW1320S-W.md @@ -1,5 +1,4 @@ --- -layout: config title: Dahua IPC-HFW1320S-W author: Martin Kuneš date: 2020-06-11 diff --git a/_configs/Digoo-DG-W02F.md b/_configs/Digoo-DG-W02F.md index 7c192a24..a9d7d5fc 100644 --- a/_configs/Digoo-DG-W02F.md +++ b/_configs/Digoo-DG-W02F.md @@ -1,5 +1,4 @@ --- -layout: config title: Digoo DG-W02F author: LeJeko date: 2019-04-04 diff --git a/_configs/Doorbird-Video-Doorbell-Basic.md b/_configs/Doorbird-Video-Doorbell-Basic.md index eecdbb9f..4a6d0312 100644 --- a/_configs/Doorbird-Video-Doorbell-Basic.md +++ b/_configs/Doorbird-Video-Doorbell-Basic.md @@ -1,5 +1,4 @@ --- -layout: config title: Doorbird Video Doorbell comment: Basic author: tommyd75 diff --git a/_configs/Doorbird-Video-Doorbell-Full.md b/_configs/Doorbird-Video-Doorbell-Full.md index d7ae0da7..bef11eec 100644 --- a/_configs/Doorbird-Video-Doorbell-Full.md +++ b/_configs/Doorbird-Video-Doorbell-Full.md @@ -1,5 +1,4 @@ --- -layout: config title: Doorbird Video Doorbell comment: Full author: hjdhjd diff --git a/_configs/ESP32-Cam-Module.md b/_configs/ESP32-Cam-Module.md index effcf9f4..7d1ab137 100644 --- a/_configs/ESP32-Cam-Module.md +++ b/_configs/ESP32-Cam-Module.md @@ -1,5 +1,4 @@ --- -layout: config title: ESP32-Cam Module author: odx date: 2019-12-22 diff --git a/_configs/EZVIZ-C1C-720P.md b/_configs/EZVIZ-C1C-720P.md index 86c49391..52cb6a3c 100644 --- a/_configs/EZVIZ-C1C-720P.md +++ b/_configs/EZVIZ-C1C-720P.md @@ -1,5 +1,4 @@ --- -layout: config title: EZVIZ C1C 720P author: Alberto Mengoli date: 2020-06-22 diff --git a/_configs/EZVIZ-Mini-Plus.md b/_configs/EZVIZ-Mini-Plus.md index 92d754df..12b1a41c 100644 --- a/_configs/EZVIZ-Mini-Plus.md +++ b/_configs/EZVIZ-Mini-Plus.md @@ -1,5 +1,4 @@ --- -layout: config title: EZVIZ Mini Plus author: TheRealGreatOldOne date: 2018-09-30 diff --git a/_configs/Foscam-FI8910W.md b/_configs/Foscam-FI8910W.md index fd442cfa..debab374 100644 --- a/_configs/Foscam-FI8910W.md +++ b/_configs/Foscam-FI8910W.md @@ -1,5 +1,4 @@ --- -layout: config title: Foscam FI8910W author: mishakim date: 2018-01-20 diff --git a/_configs/Foscam-FI9900EP-FI9826P.md b/_configs/Foscam-FI9900EP-FI9826P.md index eea782a7..5a61a0bb 100644 --- a/_configs/Foscam-FI9900EP-FI9826P.md +++ b/_configs/Foscam-FI9900EP-FI9826P.md @@ -1,5 +1,4 @@ --- -layout: config title: Foscam FI9900EP / FI9826P author: Veldkornet date: 2018-03-29 diff --git a/_configs/Foscam-IQ200.md b/_configs/Foscam-IQ200.md index 7339c1ec..825f9cc7 100644 --- a/_configs/Foscam-IQ200.md +++ b/_configs/Foscam-IQ200.md @@ -1,5 +1,4 @@ --- -layout: config title: Foscam IQ200 author: redelva date: 2017-03-23 diff --git a/_configs/Foscam-R2.md b/_configs/Foscam-R2.md index 7fae5970..0a834917 100644 --- a/_configs/Foscam-R2.md +++ b/_configs/Foscam-R2.md @@ -1,5 +1,4 @@ --- -layout: config title: Foscam R2 author: mishakim date: 2018-01-20 diff --git a/_configs/Hikam-S5.md b/_configs/Hikam-S5.md index 5306cd40..820c0478 100644 --- a/_configs/Hikam-S5.md +++ b/_configs/Hikam-S5.md @@ -1,5 +1,4 @@ --- -layout: config title: Hikam S5 comment: + Raspberry Pi2 author: Normen Hansen diff --git a/_configs/IP-Webcam-App.md b/_configs/IP-Webcam-App.md index aed8e8b0..0de33ee2 100644 --- a/_configs/IP-Webcam-App.md +++ b/_configs/IP-Webcam-App.md @@ -1,5 +1,4 @@ --- -layout: config title: IP Webcam App comment: by Pavel Khlebovich author: Bernd Gewehr diff --git a/_configs/IP-Webcam.md b/_configs/IP-Webcam.md index ee3da910..e25b71ac 100644 --- a/_configs/IP-Webcam.md +++ b/_configs/IP-Webcam.md @@ -1,5 +1,4 @@ --- -layout: config title: IP Webcam comment: running on an older Samsung Smartphone and Raspberry PI 2 (Jessie) author: NorthernMan54 diff --git a/_configs/IeGeek-IP-camera.md b/_configs/IeGeek-IP-camera.md index 0280249d..781581b1 100644 --- a/_configs/IeGeek-IP-camera.md +++ b/_configs/IeGeek-IP-camera.md @@ -1,5 +1,4 @@ --- -layout: config title: IeGeek IP camera comment: with Raspberry Pi 3 Model B author: mach1009 diff --git a/_configs/Logitech-C525-USB-camera.md b/_configs/Logitech-C525-USB-camera.md index 394994ac..1297e6ce 100644 --- a/_configs/Logitech-C525-USB-camera.md +++ b/_configs/Logitech-C525-USB-camera.md @@ -1,5 +1,4 @@ --- -layout: config title: Logitech C525 USB camera comment: and Raspberry Pi 3 author: Miquel Sanz Alcántara diff --git a/_configs/Logitech-HD-Pro-Webcam-C920-2.md b/_configs/Logitech-HD-Pro-Webcam-C920-2.md index bb008f16..bfdd887e 100644 --- a/_configs/Logitech-HD-Pro-Webcam-C920-2.md +++ b/_configs/Logitech-HD-Pro-Webcam-C920-2.md @@ -1,5 +1,4 @@ --- -layout: config title: Logitech HD Pro Webcam C920 comment: w/ Raspberry Pi author: Manuel Gottstein diff --git a/_configs/Logitech-HD-Pro-Webcam-C920.md b/_configs/Logitech-HD-Pro-Webcam-C920.md index 6c3d9c75..ab780126 100644 --- a/_configs/Logitech-HD-Pro-Webcam-C920.md +++ b/_configs/Logitech-HD-Pro-Webcam-C920.md @@ -1,5 +1,4 @@ --- -layout: config title: Logitech HD Pro Webcam C920 author: cmlpreston date: 2018-03-08 diff --git a/_configs/Lorex-LHV2008.md b/_configs/Lorex-LHV2008.md index b3878bce..60cb41a1 100644 --- a/_configs/Lorex-LHV2008.md +++ b/_configs/Lorex-LHV2008.md @@ -1,5 +1,4 @@ --- -layout: config title: Lorex LHV2008 author: icdoo date: 2020-01-19 diff --git a/_configs/Maygion-H264-IPCam.md b/_configs/Maygion-H264-IPCam.md index 4091c5bb..290932a2 100644 --- a/_configs/Maygion-H264-IPCam.md +++ b/_configs/Maygion-H264-IPCam.md @@ -1,5 +1,4 @@ --- -layout: config title: Maygion H264 IPCam comment: (Software Version H.264 6.40) with Raspberry Pi 3 Model B author: Marci diff --git a/_configs/Mobotix-M24.md b/_configs/Mobotix-M24.md index b04de877..25c62462 100644 --- a/_configs/Mobotix-M24.md +++ b/_configs/Mobotix-M24.md @@ -1,5 +1,4 @@ --- -layout: config title: Mobotix M24 comment: with Raspberry Pi 3 Model B author: tiele004 diff --git a/_configs/MotionEyeOS.md b/_configs/MotionEyeOS.md index 77604b87..217f4a20 100644 --- a/_configs/MotionEyeOS.md +++ b/_configs/MotionEyeOS.md @@ -1,5 +1,4 @@ --- -layout: config title: MotionEyeOS author: Normen Hansen date: 2018-03-02 diff --git a/_configs/Pelco-cameras.md b/_configs/Pelco-cameras.md index 67362499..42ccc659 100644 --- a/_configs/Pelco-cameras.md +++ b/_configs/Pelco-cameras.md @@ -1,5 +1,4 @@ --- -layout: config title: Pelco cameras author: Klangen82 date: 2017-03-25 diff --git a/_configs/Pi-Camera-V2.md b/_configs/Pi-Camera-V2.md index 45b6aa43..bd38055a 100644 --- a/_configs/Pi-Camera-V2.md +++ b/_configs/Pi-Camera-V2.md @@ -1,5 +1,4 @@ --- -layout: config title: Pi Camera V2 author: LeJeko date: 2019-04-06 diff --git a/_configs/ROCAM-NC400HD.md b/_configs/ROCAM-NC400HD.md index a88f5a6a..e7dea2b9 100644 --- a/_configs/ROCAM-NC400HD.md +++ b/_configs/ROCAM-NC400HD.md @@ -1,5 +1,4 @@ --- -layout: config title: ROCAM-NC400HD comment: with Raspberry Pi Model B 512Mb RAM - jessie author: BonRm diff --git a/_configs/Raspberry-Pi-Camera-Module-V2.md b/_configs/Raspberry-Pi-Camera-Module-V2.md index 5c0a11c1..4c7ffa11 100644 --- a/_configs/Raspberry-Pi-Camera-Module-V2.md +++ b/_configs/Raspberry-Pi-Camera-Module-V2.md @@ -1,5 +1,4 @@ --- -layout: config title: Raspberry Pi Camera Module V2 comment: and Raspberry PI Zero W (Jessie) author: XavM diff --git a/_configs/Raspberry-Pi-camera-v1.3.md b/_configs/Raspberry-Pi-camera-v1.3.md index 261ce383..9b843df3 100644 --- a/_configs/Raspberry-Pi-camera-v1.3.md +++ b/_configs/Raspberry-Pi-camera-v1.3.md @@ -1,5 +1,4 @@ --- -layout: config title: Raspberry Pi camera v1.3 comment: connected to another RasPi author: Jan Kaiser diff --git a/_configs/ReoLink-RLC-410.md b/_configs/ReoLink-RLC-410.md index 83007f06..7f051cb3 100644 --- a/_configs/ReoLink-RLC-410.md +++ b/_configs/ReoLink-RLC-410.md @@ -1,5 +1,4 @@ --- -layout: config title: ReoLink RLC-410 comment: (Should work with all ReoLink-Cams supporting RTSP) author: Jonathan Fritz diff --git a/_configs/ReoLink-RLC-422.md b/_configs/ReoLink-RLC-422.md index b315f39a..47dcd2f0 100644 --- a/_configs/ReoLink-RLC-422.md +++ b/_configs/ReoLink-RLC-422.md @@ -1,5 +1,4 @@ --- -layout: config title: ReoLink RLC-422 author: t1dals date: 2019-10-03 diff --git a/_configs/Reolink-RLC-410W.md b/_configs/Reolink-RLC-410W.md index 132eb853..f7ecb2f6 100644 --- a/_configs/Reolink-RLC-410W.md +++ b/_configs/Reolink-RLC-410W.md @@ -1,5 +1,4 @@ --- -layout: config title: Reolink RLC-410W comment: HOOBS + Raspberry Pi 4 author: resgroupmsr diff --git a/_configs/Reolink-camera.md b/_configs/Reolink-camera.md index ea569811..84d45985 100644 --- a/_configs/Reolink-camera.md +++ b/_configs/Reolink-camera.md @@ -1,5 +1,4 @@ --- -layout: config title: Reolink camera comment: with better picture (rtmp) and audio (Ffmpeg tutorial) author: LSD MadMac diff --git a/_configs/Samsung-SNH-P6410BN.md b/_configs/Samsung-SNH-P6410BN.md index 9f31fbb9..b36d0128 100644 --- a/_configs/Samsung-SNH-P6410BN.md +++ b/_configs/Samsung-SNH-P6410BN.md @@ -1,5 +1,4 @@ --- -layout: config title: Samsung SNH-P6410BN comment: Samsung SmartCam (firmware 1.08) and Raspberry PI 3 author: pponce diff --git a/_configs/Sannce-1080P-IP-Cameras.md b/_configs/Sannce-1080P-IP-Cameras.md index 0cf64707..db518e39 100644 --- a/_configs/Sannce-1080P-IP-Cameras.md +++ b/_configs/Sannce-1080P-IP-Cameras.md @@ -1,5 +1,4 @@ --- -layout: config title: Sannce 1080P IP Cameras author: Ricardo Pereira date: 2017-02-04 diff --git a/_configs/SecuritySpy.md b/_configs/SecuritySpy.md index a1f703c6..58ba7aa8 100644 --- a/_configs/SecuritySpy.md +++ b/_configs/SecuritySpy.md @@ -1,5 +1,4 @@ --- -layout: config title: SecuritySpy comment: for MacOs author: Tom Hickey diff --git a/_configs/Synology-Surveillance-Station-2.md b/_configs/Synology-Surveillance-Station-2.md index cd556b38..7c529087 100644 --- a/_configs/Synology-Surveillance-Station-2.md +++ b/_configs/Synology-Surveillance-Station-2.md @@ -1,5 +1,4 @@ --- -layout: config title: Synology Surveillance Station author: Malcolm Hall date: 2020-06-13 diff --git a/_configs/Synology-Surveillance-Station.md b/_configs/Synology-Surveillance-Station.md index e42c42e7..3540869c 100644 --- a/_configs/Synology-Surveillance-Station.md +++ b/_configs/Synology-Surveillance-Station.md @@ -1,5 +1,4 @@ --- -layout: config title: Synology Surveillance Station author: Marc GUYARD date: 2020-03-01 diff --git a/_configs/Szsinocam-ip-onvif.md b/_configs/Szsinocam-ip-onvif.md index 586a62f9..dd0c9447 100644 --- a/_configs/Szsinocam-ip-onvif.md +++ b/_configs/Szsinocam-ip-onvif.md @@ -1,5 +1,4 @@ --- -layout: config title: Szsinocam ip onvif author: Jony date: 2020-06-30 diff --git a/_configs/TP-Link-C100.md b/_configs/TP-Link-C100.md index 38389b65..8ea714c7 100644 --- a/_configs/TP-Link-C100.md +++ b/_configs/TP-Link-C100.md @@ -1,5 +1,4 @@ --- -layout: config title: TP-Link C100 author: Jirka date: 2020-07-07 diff --git a/_configs/TP-Link-C200.md b/_configs/TP-Link-C200.md index 35419771..d8f34754 100644 --- a/_configs/TP-Link-C200.md +++ b/_configs/TP-Link-C200.md @@ -1,5 +1,4 @@ --- -layout: config title: TP-Link C200 author: jonasophie date: 2020-04-17 diff --git a/_configs/UNV-Uniview.md b/_configs/UNV-Uniview.md index a578cccf..e26d8011 100644 --- a/_configs/UNV-Uniview.md +++ b/_configs/UNV-Uniview.md @@ -1,5 +1,4 @@ --- -layout: config title: UNV Uniview author: iq85k date: 2020-02-28 diff --git a/_configs/Ubiquiti-AirCam.md b/_configs/Ubiquiti-AirCam.md index bbecaa1e..c3ff8e3d 100644 --- a/_configs/Ubiquiti-AirCam.md +++ b/_configs/Ubiquiti-AirCam.md @@ -1,5 +1,4 @@ --- -layout: config title: Ubiquiti AirCam comment: (Generation 1, firmware v3.1.4.39), RPi 3 author: Matevž Gačnik diff --git a/_configs/Ubiquiti-UVC-G3.md b/_configs/Ubiquiti-UVC-G3.md index 1d954db5..46438993 100644 --- a/_configs/Ubiquiti-UVC-G3.md +++ b/_configs/Ubiquiti-UVC-G3.md @@ -1,5 +1,4 @@ --- -layout: config title: Ubiquiti UVC G3 author: Deon date: 2020-05-11 diff --git a/_configs/UniFi-Video-G3-Micro.md b/_configs/UniFi-Video-G3-Micro.md index 929b0db0..610a156f 100644 --- a/_configs/UniFi-Video-G3-Micro.md +++ b/_configs/UniFi-Video-G3-Micro.md @@ -1,5 +1,4 @@ --- -layout: config title: UniFi Video G3-Micro author: gijoecool date: 2019-07-06 diff --git a/_configs/V380-Cloudcam.md b/_configs/V380-Cloudcam.md index 4b2da2c3..153938a5 100644 --- a/_configs/V380-Cloudcam.md +++ b/_configs/V380-Cloudcam.md @@ -1,5 +1,4 @@ --- -layout: config title: V380 Cloudcam author: LeJeko date: 2019-04-04 diff --git a/_configs/VESKYS-720P-Tilt-Pan.md b/_configs/VESKYS-720P-Tilt-Pan.md index 091139aa..1e2240e7 100644 --- a/_configs/VESKYS-720P-Tilt-Pan.md +++ b/_configs/VESKYS-720P-Tilt-Pan.md @@ -1,5 +1,4 @@ --- -layout: config title: VESKYS 720P Tilt / Pan author: Charles Vestal date: 2017-05-13 diff --git a/_configs/Vivotek-CC-8130.md b/_configs/Vivotek-CC-8130.md index 60a4233f..266172db 100644 --- a/_configs/Vivotek-CC-8130.md +++ b/_configs/Vivotek-CC-8130.md @@ -1,5 +1,4 @@ --- -layout: config title: Vivotek CC-8130 comment: and Raspberry PI 2 (Jessie) author: NorthernMan54 diff --git a/_configs/Vstarcam-C7824WIP.md b/_configs/Vstarcam-C7824WIP.md index 74723072..c6c002da 100644 --- a/_configs/Vstarcam-C7824WIP.md +++ b/_configs/Vstarcam-C7824WIP.md @@ -1,5 +1,4 @@ --- -layout: config title: Vstarcam C7824WIP author: teymur1988 date: 2020-07-15 diff --git a/_configs/WaveShare-RPi-Camera.md b/_configs/WaveShare-RPi-Camera.md index 4dbc20e7..b32d2a35 100644 --- a/_configs/WaveShare-RPi-Camera.md +++ b/_configs/WaveShare-RPi-Camera.md @@ -1,5 +1,4 @@ --- -layout: config title: WaveShare RPi Camera comment: and Raspberry PI 3B (Stretch) author: milmber diff --git a/_configs/WyzeCam-V2.md b/_configs/WyzeCam-V2.md index 10cafc25..c10f39c9 100644 --- a/_configs/WyzeCam-V2.md +++ b/_configs/WyzeCam-V2.md @@ -1,5 +1,4 @@ --- -layout: config title: WyzeCam V2 comment: with Raspberry Pi 4 Model B author: Luke Hoersten diff --git a/_configs/Wyzecam-V1.md b/_configs/Wyzecam-V1.md index cdb8500f..bf5de987 100644 --- a/_configs/Wyzecam-V1.md +++ b/_configs/Wyzecam-V1.md @@ -1,5 +1,4 @@ --- -layout: config title: Wyzecam V1 comment: with Raspberry Pi 3 Model B Rev 1.2 author: Karan S diff --git a/_configs/Xiaomi-Dafang.md b/_configs/Xiaomi-Dafang.md index ecbf659e..fd1e1953 100644 --- a/_configs/Xiaomi-Dafang.md +++ b/_configs/Xiaomi-Dafang.md @@ -1,5 +1,4 @@ --- -layout: config title: Xiaomi Dafang comment: with Raspberry Pi 3 Model B author: Partyboy97 diff --git a/_configs/Xiaomi-Xiaofang-1S.md b/_configs/Xiaomi-Xiaofang-1S.md index 4b74a1df..16754c75 100644 --- a/_configs/Xiaomi-Xiaofang-1S.md +++ b/_configs/Xiaomi-Xiaofang-1S.md @@ -1,5 +1,4 @@ --- -layout: config title: Xiaomi Xiaofang 1S comment: on Raspberry Pi3b (maybe also for Pi2 etc) author: mrdc diff --git a/_configs/Xiaomi-Xiaofang.md b/_configs/Xiaomi-Xiaofang.md index e4077eb1..4ad1a0e2 100644 --- a/_configs/Xiaomi-Xiaofang.md +++ b/_configs/Xiaomi-Xiaofang.md @@ -1,5 +1,4 @@ --- -layout: config title: Xiaomi Xiaofang comment: (Small White Square) with Raspberry Pi 3 Model B author: mrblack7 diff --git a/_configs/Y-cam-Cameras.md b/_configs/Y-cam-Cameras.md index daf7ef9e..587ebddf 100644 --- a/_configs/Y-cam-Cameras.md +++ b/_configs/Y-cam-Cameras.md @@ -1,5 +1,4 @@ --- -layout: config title: Y-cam Cameras author: usmcguy date: 2017-05-18 diff --git a/_configs/ZNV-ZDIE-2121W-N3T-A.md b/_configs/ZNV-ZDIE-2121W-N3T-A.md index 51860f14..e39757d3 100644 --- a/_configs/ZNV-ZDIE-2121W-N3T-A.md +++ b/_configs/ZNV-ZDIE-2121W-N3T-A.md @@ -1,5 +1,4 @@ --- -layout: config title: ZNV ZDIE-2121W-N3T-A author: Caribsky date: 2018-04-20 diff --git a/_configs/Zoneminder.md b/_configs/Zoneminder.md index df9e19cb..20760987 100644 --- a/_configs/Zoneminder.md +++ b/_configs/Zoneminder.md @@ -1,5 +1,4 @@ --- -layout: config title: Zoneminder author: Thomas Hentschel date: 2018-04-20 diff --git a/_configs/eufy-Security-eufyCam.md b/_configs/eufy-Security-eufyCam.md index f75f76ab..7888b2f1 100644 --- a/_configs/eufy-Security-eufyCam.md +++ b/_configs/eufy-Security-eufyCam.md @@ -1,5 +1,4 @@ --- -layout: config title: eufy Security eufyCam author: scrytch date: 2019-06-23 diff --git a/_layouts/config.md b/_layouts/config.md index f41457a8..03ada3a6 100644 --- a/_layouts/config.md +++ b/_layouts/config.md @@ -1,6 +1,15 @@ --- layout: default --- -

{{ page.title }}

{{ page.comment }} -
Submitted by {{ page.author }} on {{ page.date | date: "%B %-d, %Y" }}
-
{{ content }}
+
+

{{ page.title | escape }}

+

{{ page.comment }}

+ +
+ +
+ {{ content }} +
diff --git a/contributing.md b/contributing.md index fa142b53..5cd88c5b 100644 --- a/contributing.md +++ b/contributing.md @@ -6,5 +6,5 @@ permalink: /contributing/ If you'd like to contribute a camera configuration, you have two main options: -1. Open an Issue on this project and submit the details there. -2. Fork this repository and create a Pull Request after you make a new page. +1. [Open a Tested Configuration Issue](https://github.com/Sunoo/homebridge-camera-ffmpeg/issues/new?assignees=&labels=tested+config&template=tested_config.md) on the project and submit the details there. +2. Fork [this repository](https://github.com/Sunoo/homebridge-camera-ffmpeg) and [create a Pull Request](https://github.com/Sunoo/homebridge-camera-ffmpeg/compare) after you make a new page. diff --git a/index.md b/index.md index d03f06ef..80010a75 100644 --- a/index.md +++ b/index.md @@ -1,13 +1,19 @@ --- -layout: home +layout: page title: Tested Configurations --- -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. +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 don’t know, or can’t find this information, start with this website. +Despite what some older posts and comments you come across may mention, it is strongly recommended that you do not use the `-re` setting in your source, as it is known to cause problems with live sources. + +Users have submitted {{ site.configs | size }} configurations: -While many of these configurations use the `-re` option in their source configs, it is strongly recommended that you do not use that, as it may cause problems with live video. {% assign collection = site.configs | sort_natural:"title" %} +
    {% for config in collection %} - - [{{ config.title }}]({{ site.baseurl }}{{ config.url }}){% if config.comment %}: {{ config.comment }}{% endif %} +
  • + {{ config.title }} + {% if config.comment %}{% endif %} +
  • {% endfor %} +
diff --git a/serve-local.sh b/serve-local.sh new file mode 100755 index 00000000..42fdae69 --- /dev/null +++ b/serve-local.sh @@ -0,0 +1,2 @@ +#!/bin/bash +jekyll serve --host=0.0.0.0 --baseurl="" --watch From 60fdcd9c5c2a3730abe2bdb410d53f3a93b62993 Mon Sep 17 00:00:00 2001 From: David Maher Date: Tue, 28 Jul 2020 11:08:41 -0400 Subject: [PATCH 05/38] Fixed links lost in migration from wiki --- _configs/Anran-DVR.md | 2 +- _configs/ESP32-Cam-Module.md | 2 +- _configs/IP-Webcam.md | 2 +- _configs/ReoLink-RLC-410.md | 2 ++ _configs/Samsung-SNH-P6410BN.md | 2 +- _configs/Sannce-1080P-IP-Cameras.md | 2 +- _configs/Ubiquiti-AirCam.md | 4 ++-- _configs/VESKYS-720P-Tilt-Pan.md | 2 ++ _configs/Vivotek-CC-8130.md | 2 +- _configs/Wyzecam-V1.md | 2 +- _configs/eufy-Security-eufyCam.md | 2 +- 11 files changed, 14 insertions(+), 10 deletions(-) diff --git a/_configs/Anran-DVR.md b/_configs/Anran-DVR.md index 51e2bab0..cf892098 100644 --- a/_configs/Anran-DVR.md +++ b/_configs/Anran-DVR.md @@ -6,7 +6,7 @@ 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: https://www.amazon.com/ANRAN-Detection-Surveillance-Security-Recorder/dp/B00JUPFVQE/ref=sr_1_3?ie=UTF8&qid=1485448120&sr=8-3&keywords=anran+dvr +DVR system: ## config.json diff --git a/_configs/ESP32-Cam-Module.md b/_configs/ESP32-Cam-Module.md index 7d1ab137..1d44132d 100644 --- a/_configs/ESP32-Cam-Module.md +++ b/_configs/ESP32-Cam-Module.md @@ -30,5 +30,5 @@ date: 2019-12-22 ### 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: https://github.com/espressif/arduino-esp32/tree/master/docs/arduino-ide +This is the config for the ESP32-Cam "CameraWebServer" example provided by espressif. Setup your Arduino IDE accordingly: You will just add your Wifi SSID and select camera model in the source code. diff --git a/_configs/IP-Webcam.md b/_configs/IP-Webcam.md index e25b71ac..46a5df6d 100644 --- a/_configs/IP-Webcam.md +++ b/_configs/IP-Webcam.md @@ -5,7 +5,7 @@ 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. -https://github.com/legotheboss/homebridge-camera-ffmpeg-omx + ## Camera Settings diff --git a/_configs/ReoLink-RLC-410.md b/_configs/ReoLink-RLC-410.md index 7f051cb3..d21a9e60 100644 --- a/_configs/ReoLink-RLC-410.md +++ b/_configs/ReoLink-RLC-410.md @@ -4,6 +4,8 @@ comment: (Should work with all ReoLink-Cams supporting RTSP) author: Jonathan Fritz date: 2019-09-24 --- +[example](https://amzn.to/2mhS9mi) + ## config.json ```json diff --git a/_configs/Samsung-SNH-P6410BN.md b/_configs/Samsung-SNH-P6410BN.md index b36d0128..1227788e 100644 --- a/_configs/Samsung-SNH-P6410BN.md +++ b/_configs/Samsung-SNH-P6410BN.md @@ -5,7 +5,7 @@ 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. -https://github.com/legotheboss/homebridge-camera-ffmpeg-omx + ## Camera Settings diff --git a/_configs/Sannce-1080P-IP-Cameras.md b/_configs/Sannce-1080P-IP-Cameras.md index db518e39..58044dd0 100644 --- a/_configs/Sannce-1080P-IP-Cameras.md +++ b/_configs/Sannce-1080P-IP-Cameras.md @@ -3,7 +3,7 @@ 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) +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 diff --git a/_configs/Ubiquiti-AirCam.md b/_configs/Ubiquiti-AirCam.md index c3ff8e3d..1402f962 100644 --- a/_configs/Ubiquiti-AirCam.md +++ b/_configs/Ubiquiti-AirCam.md @@ -4,9 +4,9 @@ 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). +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 https://github.com/legotheboss/homebridge-camera-ffmpeg-omx fork for RPi 3 support. +Using fork for RPi 3 support. ## config.json diff --git a/_configs/VESKYS-720P-Tilt-Pan.md b/_configs/VESKYS-720P-Tilt-Pan.md index 1e2240e7..1d7994c6 100644 --- a/_configs/VESKYS-720P-Tilt-Pan.md +++ b/_configs/VESKYS-720P-Tilt-Pan.md @@ -3,6 +3,8 @@ 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 diff --git a/_configs/Vivotek-CC-8130.md b/_configs/Vivotek-CC-8130.md index 266172db..2b9200d0 100644 --- a/_configs/Vivotek-CC-8130.md +++ b/_configs/Vivotek-CC-8130.md @@ -5,7 +5,7 @@ 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. -https://github.com/legotheboss/homebridge-camera-ffmpeg-omx + ## Camera Settings diff --git a/_configs/Wyzecam-V1.md b/_configs/Wyzecam-V1.md index bf5de987..73426f32 100644 --- a/_configs/Wyzecam-V1.md +++ b/_configs/Wyzecam-V1.md @@ -6,7 +6,7 @@ date: 2018-05-29 --- Replica of the Xiaomi Xiaofang (Small White Square) -Note: I used the homebridge-camera-ffmpeg-omx plugin (https://github.com/legotheboss/homebridge-camera-ffmpeg-omx) along with OpenIPC v0.2.4 for Wyze V1 (https://github.com/openipcamera/openipc-firmware) which is forked from Fang-Hacks(https://github.com/samtap/fang-hacks) +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` diff --git a/_configs/eufy-Security-eufyCam.md b/_configs/eufy-Security-eufyCam.md index 7888b2f1..4577c305 100644 --- a/_configs/eufy-Security-eufyCam.md +++ b/_configs/eufy-Security-eufyCam.md @@ -32,4 +32,4 @@ A wireless camera system that records locally and supports RTSP. Love it! Tested ### 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 https://community.anker.com/t/how-to-setup-rtsp-on-eufycam-to-stream-video-to-your-compatible-nas/64833 +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 From b91f60660643c370e6ab31997ef1926382bc9f51 Mon Sep 17 00:00:00 2001 From: David Maher Date: Tue, 28 Jul 2020 20:46:53 -0400 Subject: [PATCH 06/38] Moved remaining wiki pages over --- _automation/helpers.md | 16 ++++ _automation/http.md | 41 ++++++++++ _automation/mqtt.md | 41 ++++++++++ _automation/switch.md | 83 ++++++++++++++++++++ _config.yml | 10 ++- assets/homebridge-color-round.svg | 1 + assets/iOS-13-Switch-Automation-Example.png | Bin 0 -> 69177 bytes automation.md | 16 ++++ configs.md | 22 ++++++ contributing.md | 10 --- index.md | 21 ++--- 11 files changed, 237 insertions(+), 24 deletions(-) create mode 100644 _automation/helpers.md create mode 100644 _automation/http.md create mode 100644 _automation/mqtt.md create mode 100644 _automation/switch.md create mode 100644 assets/homebridge-color-round.svg create mode 100644 assets/iOS-13-Switch-Automation-Example.png create mode 100644 automation.md create mode 100644 configs.md delete mode 100644 contributing.md diff --git a/_automation/helpers.md b/_automation/helpers.md new file mode 100644 index 00000000..0cb2df92 --- /dev/null +++ b/_automation/helpers.md @@ -0,0 +1,16 @@ +--- +title: Helper Plugins +order: 4 +--- +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. + +#### MQTT-based Helper Plugins + +- [homebridge-dafang-mqtt-republish](https://www.npmjs.com/package/homebridge-dafang-mqtt-republish) by Sunoo: Cameras running [Dafang Hacks](https://github.com/EliasKotlyar/Xiaomi-Dafang-Hacks). Can also expose various additional fuctionality of these cameras. + +#### HTTP-based 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. + +If you know of any additional plugins that add support for other cameras, please [open an Issue](https://github.com/Sunoo/homebridge-camera-ffmpeg/issues) and it will be added to this list. diff --git a/_automation/http.md b/_automation/http.md new file mode 100644 index 00000000..01303871 --- /dev/null +++ b/_automation/http.md @@ -0,0 +1,41 @@ +--- +title: HTTP-based Automation +order: 3 +--- +### Setup + +Set `porthttp` in your config to be whatever port you want the HTTP server to listen on. The server will not start without this set. + +### Usage + +To trigger the motion sensor make an HTTP request to `http://hostname:port/motion?Camera%20Name` where the 'Camera%20Name' is the URL encoded name of the camera (so, for example, a space becomes %20). + +If you make an HTTP call to `http://hostname:port/motion/reset?Camera%20Name` it will reset the motion sensor. If you plan to use this function, it is recommended to set `motionTimeout` under the camera to `0` to disable the automatic reset of the motion sensor. + +Doorbell activation is also available by making a call to `http://hostname:port/doorbell?Camera%20Name`. + +### Config Example + +```json +{ + "platform": "Camera-ffmpeg", + "porthttp": "8080", + "topic": "homebridge", + "cameras": [ + { + "name": "Camera Name", + "motion": true, + "motionTimeout": 1, + "videoConfig": { + "source": "-re -i http://10.0.0.1", + "stillImageSource": "-i http://10.0.0.1", + "maxStreams": 5, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 15, + "maxBitrate": 1000 + } + } + ] +} +``` \ No newline at end of file diff --git a/_automation/mqtt.md b/_automation/mqtt.md new file mode 100644 index 00000000..fd49d505 --- /dev/null +++ b/_automation/mqtt.md @@ -0,0 +1,41 @@ +--- +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, or `topic` if you want to change the base topic to something besides the default of `homebridge`. + +### Usage + +To trigger the motion sensor publish to topic `homebridge/motion` with the camera name as the message. + +If you publish a message with the camera name to `homebridge/motion/reset` 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 `homebridge/doorbell` with the camera name as the message. + +### Config Example + +```json +{ + "platform": "Camera-ffmpeg", + "mqtt": "127.0.0.1", + "topic": "homebridge", + "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 + } + } + ] +} +``` diff --git a/_automation/switch.md b/_automation/switch.md new file mode 100644 index 00000000..6c8ec1e2 --- /dev/null +++ b/_automation/switch.md @@ -0,0 +1,83 @@ +--- +title: Switch-based Automation +order: 1 +--- +With iOS 13 the ability to create Photo Notifications by placing a contact, or motion sensor in the same room as a camera went away. And as the feature scored very high on the WAF scale, I created the workaround based on the new requirement to have a motion sensor as part of the camera accessory. + +With the workaround, a dummy switch and motion sensor are created as part of the camera. And by turning on the switch, it will trigger the dummy motion sensor, which will then send a Photo Notification to your iPhone/iPad. To turn on the switch, you can create an automation from your real motion sensor, and have it turn on the dummy switch attached to the camera. + +# Setup Instructions + +To enable the work around, add the options `"motion": true` and `"switches": true` to your homebridge-camera-ffmpeg configuration, then in the home app, enable notifications in the setup screen for your camera, then create the automation. + +## 1. Sample config.json with the motion option + +```json +{ + "bridge": { + "name": "Test Homebridge", + "username": "AA:BB:CC:DD:DD:FF", + "port": 51826, + "pin": "031-45-154" + }, + + "description": "HomeBridge Test Instance", + + "plugins": [ + "homebridge-camera-ffmpeg" + ], + + "platforms": [{ + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "Test", + "motion": true, + "switches": true, + "videoConfig": { + "source": "-f mjpeg -i http://test:8080/video", + "stillImageSource": "-i http://test:8080/shot.jpg", + "maxStreams": 2, + "maxWidth": 1920, + "maxHeight": 1080, + "maxFPS": 15, + "debug": true + } + }, { + "name": "TestDW", + "motion": true, + "switches": true, + "videoConfig": { + "source": "-f mjpeg -i http://TestDW:8080/video", + "stillImageSource": "-i http://TestDW:8080/shot.jpg", + "maxStreams": 2, + "maxWidth": 1920, + "maxHeight": 1080, + "maxFPS": 15, + "debug": true + } + }] + }], + + "accessories": [] +} +``` + +## 2. Create the automation + +In the home app on your phone, create an automation triggered when your Motion Sensor detects motion that turns on the switch created by your camera. + +![]({{ site.baseurl }}/assets/iOS-13-Switch-Automation-Example.png) + +# Known Issues + +## Occasionally notifications do not include a photo + +In issue #363 it was identified that if the plugin/camera is slow to respond to the snapshot request, HomeKit will send the notification without the photo. Have not determined what the timeout is for the photo yet. + +Also be sure that you only have notifications enabled in the camera's settings and not on the external motion sensor that triggers your automation. Otherwise you will receive a notification from the external motion sensor first and this does not have a photo attached but it obscures the subsequent notification from the camera that does have a photo. + +# FYI + +One side effect of the change is that each iOS device now sends an individual snapshot request when motion is detected, and this caused a mini DDOS attack on my camera. During my last round of testing I counted 4 snapshot requests at once to my camera, where previously it was a single request. + +Just a heads up, as you may now encounter resource constraints on your homebridge instance or camera, if you have a lot of iOS devices. diff --git a/_config.yml b/_config.yml index 91602436..1b9cd20a 100644 --- a/_config.yml +++ b/_config.yml @@ -1,6 +1,6 @@ title: Homebridge Camera FFmpeg author: David Maher -description: A place to store the tested configurations created by users of Homebridge Camera FFmpeg +description: Homebridge Plugin Providing FFmpeg-based Camera Support baseurl: "/homebridge-camera-ffmpeg" url: "https://sunoo.github.io" github_username: Sunoo @@ -11,6 +11,8 @@ theme: minima collections: configs: output: true + automation: + output: true defaults: - @@ -19,3 +21,9 @@ defaults: type: "configs" values: layout: "config" + - + scope: + path: "" + type: "automation" + values: + layout: "page" diff --git a/assets/homebridge-color-round.svg b/assets/homebridge-color-round.svg new file mode 100644 index 00000000..f5be08c5 --- /dev/null +++ b/assets/homebridge-color-round.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/iOS-13-Switch-Automation-Example.png b/assets/iOS-13-Switch-Automation-Example.png new file mode 100644 index 0000000000000000000000000000000000000000..e78d21b9a292617abcb7642e2f250e34da4a36de GIT binary patch literal 69177 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 literal 0 HcmV?d00001 diff --git a/automation.md b/automation.md new file mode 100644 index 00000000..f8aab0bc --- /dev/null +++ b/automation.md @@ -0,0 +1,16 @@ +--- +layout: page +title: Automation +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 }} + {% if automation.comment %}{% endif %} +
  • +{% endfor %} +
diff --git a/configs.md b/configs.md new file mode 100644 index 00000000..c5d41874 --- /dev/null +++ b/configs.md @@ -0,0 +1,22 @@ +--- +layout: page +title: Tested 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. + +Despite what some older posts and comments you come across may mention, it is strongly recommended that you do not use the `-re` setting in your source, as it is known to cause problems with live sources. + +Users have submitted {{ site.configs | size }} configurations: + +{% assign collection = site.configs | sort_natural:"title" %} +
    +{% for config in collection %} +
  • + {{ config.title }} + {% if config.comment %}{% endif %} +
  • +{% endfor %} +
diff --git a/contributing.md b/contributing.md deleted file mode 100644 index 5cd88c5b..00000000 --- a/contributing.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -layout: page -title: Contributing -permalink: /contributing/ ---- - -If you'd like to contribute a camera configuration, you have two main options: - -1. [Open a Tested Configuration Issue](https://github.com/Sunoo/homebridge-camera-ffmpeg/issues/new?assignees=&labels=tested+config&template=tested_config.md) on the project and submit the details there. -2. Fork [this repository](https://github.com/Sunoo/homebridge-camera-ffmpeg) and [create a Pull Request](https://github.com/Sunoo/homebridge-camera-ffmpeg/compare) after you make a new page. diff --git a/index.md b/index.md index 80010a75..e0a96aca 100644 --- a/index.md +++ b/index.md @@ -1,19 +1,14 @@ --- layout: page -title: Tested Configurations --- -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. + -Despite what some older posts and comments you come across may mention, it is strongly recommended that you do not use the `-re` setting in your source, as it is known to cause problems with live sources. +homebridge-verified -Users have submitted {{ site.configs | size }} configurations: +# Homebridge Camera FFmpeg -{% assign collection = site.configs | sort_natural:"title" %} -
    -{% for config in collection %} -
  • - {{ config.title }} - {% if config.comment %}{% endif %} -
  • -{% endfor %} -
+[![npm](https://badgen.net/npm/v/homebridge-camera-ffmpeg) ![npm](https://badgen.net/npm/dt/homebridge-camera-ffmpeg)](https://www.npmjs.com/package/homebridge-camera-ffmpeg) [![verified-by-homebridge](https://badgen.net/badge/homebridge/verified/purple)](https://github.com/homebridge/homebridge/wiki/Verified-Plugins) + +[Homebridge](https://homebridge.io) Plugin Providing [FFmpeg](https://www.ffmpeg.org)-based Camera Support + +
From ba427509c2f9b51ed8a26e00083b4be63d55b14e Mon Sep 17 00:00:00 2001 From: David Maher Date: Thu, 30 Jul 2020 13:04:30 -0400 Subject: [PATCH 07/38] Added #704 and #705 --- _configs/AXIS-207W.md | 20 ++++++++++++++++++++ _configs/AXIS-P1344.md | 20 ++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 _configs/AXIS-207W.md create mode 100644 _configs/AXIS-P1344.md diff --git a/_configs/AXIS-207W.md b/_configs/AXIS-207W.md new file mode 100644 index 00000000..6f6f2798 --- /dev/null +++ b/_configs/AXIS-207W.md @@ -0,0 +1,20 @@ +--- +title: AXIS 207W +author: cycu767 +date: 2020-07-30 +--- +```json +{ +"name": "SOME NAME", +"manufacturer": "AXIS", +"model": "207W", +"serialNumber": "SOME SERIAL NUMBER", +"videoConfig": { + "source": "-rtsp_transport tcp -i rtsp://user:password@IP/mpeg4/media.amp", + "stillImageSource": "-i http://user:password@IP/jpg/image.jpg?size=3", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 30 +} +``` diff --git a/_configs/AXIS-P1344.md b/_configs/AXIS-P1344.md new file mode 100644 index 00000000..8a6a1ee5 --- /dev/null +++ b/_configs/AXIS-P1344.md @@ -0,0 +1,20 @@ +--- +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 +} +``` From 776b0aba4c0efedbf7fbf5b8745e4b34c905aca3 Mon Sep 17 00:00:00 2001 From: David Maher Date: Sun, 16 Aug 2020 17:33:47 -0400 Subject: [PATCH 08/38] Added #731 --- _configs/LaView-LV-PTK66802.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 _configs/LaView-LV-PTK66802.md diff --git a/_configs/LaView-LV-PTK66802.md b/_configs/LaView-LV-PTK66802.md new file mode 100644 index 00000000..ef63f6b8 --- /dev/null +++ b/_configs/LaView-LV-PTK66802.md @@ -0,0 +1,33 @@ +--- +title: LaView LV-PTK66802 +comment: rebranded Hikvision +author: afewremarks +date: 2020-08-16 +--- +## Homebridge Config + +```json +{ + "name": "Camera1", + "manufacturer": "LaView", + "model": "LV-PTK66802", + "serialNumber": "123456789", + "firmwareRevision": "V5.4.0 build 160811", + "motion": true, + "videoConfig": { + "source": "-rtsp_transport tcp -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. From f2e85f03972681f61f807ad500811b95e57749f9 Mon Sep 17 00:00:00 2001 From: David Maher Date: Sun, 23 Aug 2020 13:17:05 -0400 Subject: [PATCH 09/38] Ran all JSON through JSONLint. --- _configs/AXIS-207W.md | 23 ++++----- _configs/AXIS-P1344.md | 23 ++++----- _configs/Amcrest-IP2M-841.md | 26 +++++------ _configs/Amcrest-IP3M-HX2W.md | 36 +++++++------- _configs/Amcrest-IP4M-1026.md | 46 +++++++++--------- _configs/Anran-DVR.md | 49 ++++++++++--------- _configs/August-Doorbell-Cam-Version-1.md | 32 ++++++------- _configs/Avtech-AVM542B.md | 24 +++++----- _configs/Avtech-MDR751B-DVR.md | 16 +++---- _configs/Axis-M3024-L.md | 28 ++++++----- _configs/Blue-Iris.md | 26 +++++------ _configs/CNB-IVP4030VR.md | 34 +++++++------- _configs/D-Link-932L.md | 20 ++++---- _configs/D-Link-936L.md | 22 ++++----- _configs/D-Link-DCS-2332L-DCS-2330L.md | 20 ++++---- _configs/D-Link-DCS-5222LB1.md | 40 ++++++++-------- _configs/DBPOWER-MEYE-155303-FBACE.md | 28 ++++++----- _configs/Digoo-DG-W02F.md | 26 +++++------ _configs/Doorbird-Video-Doorbell-Basic.md | 24 +++++----- _configs/Doorbird-Video-Doorbell-Full.md | 26 +++++------ _configs/ESP32-Cam-Module.md | 32 ++++++------- _configs/EZVIZ-C1C-720P.md | 26 +++++------ _configs/EZVIZ-Mini-Plus.md | 35 +++++++------- _configs/Foscam-FI8910W.md | 26 +++++------ _configs/Foscam-FI9900EP-FI9826P.md | 36 +++++++------- _configs/Foscam-IQ200.md | 26 +++++------ _configs/Foscam-R2.md | 26 +++++------ _configs/IP-Webcam-App.md | 26 +++++------ _configs/IP-Webcam.md | 26 +++++------ _configs/IeGeek-IP-camera.md | 28 ++++++----- _configs/LaView-LV-PTK66802.md | 30 ++++++------ _configs/Logitech-C525-USB-camera.md | 38 +++++++-------- _configs/Logitech-HD-Pro-Webcam-C920-2.md | 38 +++++++-------- _configs/Logitech-HD-Pro-Webcam-C920.md | 30 ++++++------ _configs/Lorex-LHV2008.md | 26 +++++------ _configs/Maygion-H264-IPCam.md | 28 ++++++----- _configs/Mobotix-M24.md | 26 +++++------ _configs/MotionEyeOS.md | 30 ++++++------ _configs/Pelco-cameras.md | 26 +++++------ _configs/Pi-Camera-V2.md | 28 ++++++----- _configs/ROCAM-NC400HD.md | 26 +++++------ _configs/Raspberry-Pi-Camera-Module-V2.md | 30 ++++++------ _configs/Raspberry-Pi-camera-v1.3.md | 32 ++++++------- _configs/ReoLink-RLC-410.md | 26 +++++------ _configs/ReoLink-RLC-422.md | 32 ++++++------- _configs/Reolink-RLC-410W.md | 36 +++++++------- _configs/Reolink-camera.md | 52 +++++++++++---------- _configs/Samsung-SNH-P6410BN.md | 24 +++++----- _configs/Sannce-1080P-IP-Cameras.md | 16 +++---- _configs/SecuritySpy.md | 49 ++++++++++--------- _configs/Synology-Surveillance-Station-2.md | 34 ++++++-------- _configs/Synology-Surveillance-Station.md | 28 ++++++----- _configs/Szsinocam-ip-onvif.md | 28 ++++++----- _configs/TP-Link-C100.md | 42 ++++++++--------- _configs/TP-Link-C200.md | 44 +++++++++-------- _configs/UNV-Uniview.md | 36 +++++++------- _configs/Ubiquiti-AirCam.md | 16 +++---- _configs/Ubiquiti-UVC-G3.md | 32 ++++++------- _configs/UniFi-Video-G3-Micro.md | 32 ++++++------- _configs/V380-Cloudcam.md | 26 +++++------ _configs/VESKYS-720P-Tilt-Pan.md | 26 +++++------ _configs/Vivotek-CC-8130.md | 26 +++++------ _configs/Vstarcam-C7824WIP.md | 24 +++++----- _configs/WaveShare-RPi-Camera.md | 38 +++++++-------- _configs/WyzeCam-V2.md | 20 ++++---- _configs/Wyzecam-V1.md | 26 +++++------ _configs/Xiaomi-Dafang.md | 28 ++++++----- _configs/Xiaomi-Xiaofang-1S.md | 26 +++++------ _configs/Xiaomi-Xiaofang.md | 28 ++++++----- _configs/Y-cam-Cameras.md | 26 +++++------ _configs/ZNV-ZDIE-2121W-N3T-A.md | 32 ++++++------- _configs/Zoneminder.md | 20 ++++---- _configs/eufy-Security-eufyCam.md | 24 +++++----- configs.md | 2 +- 74 files changed, 1022 insertions(+), 1121 deletions(-) diff --git a/_configs/AXIS-207W.md b/_configs/AXIS-207W.md index 6f6f2798..cec0072c 100644 --- a/_configs/AXIS-207W.md +++ b/_configs/AXIS-207W.md @@ -5,16 +5,17 @@ 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 + "name": "SOME NAME", + "manufacturer": "AXIS", + "model": "207W", + "serialNumber": "SOME SERIAL NUMBER", + "videoConfig": { + "source": "-rtsp_transport tcp -i rtsp://user:password@IP/mpeg4/media.amp", + "stillImageSource": "-i http://user:password@IP/jpg/image.jpg?size=3", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 30 + } } ``` diff --git a/_configs/AXIS-P1344.md b/_configs/AXIS-P1344.md index 8a6a1ee5..62ac1d14 100644 --- a/_configs/AXIS-P1344.md +++ b/_configs/AXIS-P1344.md @@ -5,16 +5,17 @@ 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 + "name": "SOME NAME", + "manufacturer": "AXIS", + "model": "P1344", + "serialNumber": "SOME SERIAL NUMBER", + "videoConfig": { + "source": "-rtsp_transport tcp -i rtsp://user:password@IP/axis-media/media.amp", + "stillImageSource": "-i http://user:password@IP/jpg/image.jpg", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 800, + "maxFPS": 30 + } } ``` diff --git a/_configs/Amcrest-IP2M-841.md b/_configs/Amcrest-IP2M-841.md index 221c8d15..80a0cc16 100644 --- a/_configs/Amcrest-IP2M-841.md +++ b/_configs/Amcrest-IP2M-841.md @@ -9,19 +9,17 @@ Tested from Linux. These camera's aren't that great and have difficulty holding ```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 - } - } - ] + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "Nursery Camera", + "videoConfig": { + "source": "-xerror -rtsp_transport tcp -i rtsp://username:password@10.0.1.5/cam/realmonitor?channel=1&subtype=0 -c:a aac -b:a 128k -c:v libx264 -b:v 2500k -preset superfast", + "stillImageSource": "-i http://username:password@10.0.1.5/cgi-bin/snapshot.cgi", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 30 + } + }] } ``` diff --git a/_configs/Amcrest-IP3M-HX2W.md b/_configs/Amcrest-IP3M-HX2W.md index 07a033ff..0c104f51 100644 --- a/_configs/Amcrest-IP3M-HX2W.md +++ b/_configs/Amcrest-IP3M-HX2W.md @@ -8,24 +8,22 @@ date: 2020-04-18 ```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 -} + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "Camera Living Room Amcrest", + "videoConfig": { + "source": "-rtsp_transport tcp -re -i rtsp://user:pwd@192.168.1.221/cam/realmonitor?channel=1&subtype=00&authbasic=YWRtaW46bG9sYTk2OTg=", + "stillImageSource": "-i http://user:pwd@192.168.1.221/cgi-bin/snapshot.cgi?1", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 15, + "maxBitrate": 300, + "vcodec": "libx264 -preset ultrafast", + "packetSize": 1316, + "audio": false, + "debug": true + } + }] } -] -}, ``` diff --git a/_configs/Amcrest-IP4M-1026.md b/_configs/Amcrest-IP4M-1026.md index 60134257..08a78a11 100644 --- a/_configs/Amcrest-IP4M-1026.md +++ b/_configs/Amcrest-IP4M-1026.md @@ -7,30 +7,26 @@ date: 2020-05-06 ```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 - } - } - ] - } - ] + "platforms": [{ + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "CAMERANAME", + "manufacturer": "Amcrest", + "model": "IP4M-1026", + "videoConfig": { + "source": "-rtsp_transport tcp -re -i rtsp://admin:PASSWORD@IPADDRESS:554/cam/realmonitor?channel=1&subtype=0", + "stillImageSource": "-i http://admin:PASSWORD@IPADDRESS/cgi-bin/snapshot.cgi?chn=1", + "maxStreams": 2, + "maxWidth": 2688, + "maxHeight": 1520, + "maxFPS": 30, + "maxBitrate": 2048, + "vcodec": "libx264 -preset ultrafast", + "packetSize": 1316, + "audio": false, + "debug": false + } + }] + }] } ``` diff --git a/_configs/Anran-DVR.md b/_configs/Anran-DVR.md index cf892098..60fda3c8 100644 --- a/_configs/Anran-DVR.md +++ b/_configs/Anran-DVR.md @@ -12,30 +12,29 @@ DVR system: :@:554/mpeg/media.amp", - "stillImageSource":"-i http://:@/bha-api/image.cgi", - "maxStreams":1, - "maxWidth":1280, - "maxHeight":720, - "maxFPS":15 - } - } - ] + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "Doorbird Camera", + "videoConfig": { + "source": "-re -i rtsp://:@:554/mpeg/media.amp", + "stillImageSource": "-i http://:@/bha-api/image.cgi", + "maxStreams": 1, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 15 + } + }] } ``` diff --git a/_configs/ESP32-Cam-Module.md b/_configs/ESP32-Cam-Module.md index 1d44132d..3a9b2117 100644 --- a/_configs/ESP32-Cam-Module.md +++ b/_configs/ESP32-Cam-Module.md @@ -7,23 +7,21 @@ date: 2019-12-22 ```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 - } - } - ] + "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 + } + }] } ``` diff --git a/_configs/EZVIZ-C1C-720P.md b/_configs/EZVIZ-C1C-720P.md index 52cb6a3c..253d5b87 100644 --- a/_configs/EZVIZ-C1C-720P.md +++ b/_configs/EZVIZ-C1C-720P.md @@ -12,17 +12,17 @@ Camera password is the 6 character verification code printed on the back of each ### 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" - } - } -] +{ + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "CAMERA NAME", + "videoConfig": { + "source": "-re -i rtsp://admin:password@nn.nn.nn.nn:554/h264_stream", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "vcodec": "h264_omx" + } + }] +} ``` diff --git a/_configs/EZVIZ-Mini-Plus.md b/_configs/EZVIZ-Mini-Plus.md index 12b1a41c..161cf024 100644 --- a/_configs/EZVIZ-Mini-Plus.md +++ b/_configs/EZVIZ-Mini-Plus.md @@ -12,21 +12,22 @@ Camera password is the 6 character verification code printed on the back of each ### 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 - } - } +{ + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "YOUR CAMERA NAME", + "videoConfig": { + "source": "-rtsp_transport tcp -vcodec h264_mmal -i rtsp://admin:password@nn.nn.nn.nn/Streaming/Channels/1", + "stillImageSource": "-i rtsp://admin:password@nn.nn.nn.nn/Streaming/Channels/1/picture", + "maxStreams": 2, + "maxWidth": 1920, + "maxHeight": 1080, + "maxBitrate": 500, + "vcodec": "h264_omx", + "maxFPS": 15, + "audio": true, + "packetSize": 564 + } + }] +} ``` diff --git a/_configs/Foscam-FI8910W.md b/_configs/Foscam-FI8910W.md index debab374..08b5222d 100644 --- a/_configs/Foscam-FI8910W.md +++ b/_configs/Foscam-FI8910W.md @@ -7,19 +7,17 @@ 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 - } - } - ] + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "Camera", + "videoConfig": { + "source": "-re -i http://user:pass@10.0.1.131:8090/videostream.asf?user=user&pwd=pass&resolution=320x240", + "stillImageSource": "-i http://user:pass@10.0.1.131:8090/snapshot.jpg?user=user&pwd=pass&strm=0", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 30 + } + }] } ``` diff --git a/_configs/Foscam-FI9900EP-FI9826P.md b/_configs/Foscam-FI9900EP-FI9826P.md index 5a61a0bb..e1b97227 100644 --- a/_configs/Foscam-FI9900EP-FI9826P.md +++ b/_configs/Foscam-FI9900EP-FI9826P.md @@ -10,25 +10,23 @@ Working through RTSP on RaspberryPi ```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 - } - } - ] + "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 + } + }] } ``` diff --git a/_configs/Foscam-IQ200.md b/_configs/Foscam-IQ200.md index 825f9cc7..a99c2116 100644 --- a/_configs/Foscam-IQ200.md +++ b/_configs/Foscam-IQ200.md @@ -9,19 +9,17 @@ Working through RTSP ```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 - } - } - ] + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "Camera", + "videoConfig": { + "source": "-re -i rtsp://username:password@192.168.31.51:88/videoMain", + "stillImageSource": "-i http://username:password@192.168.31.51:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=username&pwd=password&", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 30 + } + }] } ``` diff --git a/_configs/Foscam-R2.md b/_configs/Foscam-R2.md index 0a834917..1e91ff69 100644 --- a/_configs/Foscam-R2.md +++ b/_configs/Foscam-R2.md @@ -7,19 +7,17 @@ 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 - } - } - ] + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "Camera", + "videoConfig": { + "source": "-re -i rtsp://user:pass@10.0.1.132:47082/videoMain", + "stillImageSource": "-i http://10.0.1.132:47082/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=user&pwd=pass&", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 30 + } + }] } ``` diff --git a/_configs/IP-Webcam-App.md b/_configs/IP-Webcam-App.md index 0de33ee2..d7abae14 100644 --- a/_configs/IP-Webcam-App.md +++ b/_configs/IP-Webcam-App.md @@ -10,17 +10,17 @@ Working through http ```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" - } -}, + "name": "Bedroom", + "videoConfig": { + "source": "-re -i http://src/video -i http://src/audio.opus", + "stillImageSource": "-i http://src/shot.jpg", + "maxStreams": 2, + "maxWidth": 640, + "maxHeight": 480, + "maxFPS": 30, + "audio": true, + "mapvideo": "0", + "mapaudio": "1" + } +} ``` diff --git a/_configs/IP-Webcam.md b/_configs/IP-Webcam.md index 46a5df6d..39d5669e 100644 --- a/_configs/IP-Webcam.md +++ b/_configs/IP-Webcam.md @@ -16,19 +16,17 @@ To resolve playback issues I had to use the OMX fork to get the PI 2 and FFMPEG ```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 - } - } - ] + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "Front Porch Camera", + "videoConfig": { + "source": "-f mjpeg -i http://alice:8080/video", + "stillImageSource": "-i http://alice:8080/shot.jpg", + "maxStreams": 2, + "maxWidth": 1920, + "maxHeight": 1080, + "maxFPS": 30 + } + }] } ``` diff --git a/_configs/IeGeek-IP-camera.md b/_configs/IeGeek-IP-camera.md index 781581b1..c7588826 100644 --- a/_configs/IeGeek-IP-camera.md +++ b/_configs/IeGeek-IP-camera.md @@ -10,20 +10,18 @@ You can also use "rtsp://ip-address/11" for HQ-Stream. ```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" - } - } - ] + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "Camera", + "videoConfig": { + "source": "-rtsp_transport tcp -re -i rtsp://ip-address/12", + "stillImageSource": "-i http://username:password@ip-address/tmpfs/auto.jpg", + "maxStreams": 2, + "maxWidth": 640, + "maxHeight": 352, + "maxFPS": 5, + "vcodec": "h264_omx" + } + }] } ``` diff --git a/_configs/LaView-LV-PTK66802.md b/_configs/LaView-LV-PTK66802.md index ef63f6b8..a529e062 100644 --- a/_configs/LaView-LV-PTK66802.md +++ b/_configs/LaView-LV-PTK66802.md @@ -8,21 +8,21 @@ date: 2020-08-16 ```json { - "name": "Camera1", - "manufacturer": "LaView", - "model": "LV-PTK66802", - "serialNumber": "123456789", - "firmwareRevision": "V5.4.0 build 160811", - "motion": true, - "videoConfig": { - "source": "-rtsp_transport tcp -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" - } + "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" + } } ``` diff --git a/_configs/Logitech-C525-USB-camera.md b/_configs/Logitech-C525-USB-camera.md index 1297e6ce..27409641 100644 --- a/_configs/Logitech-C525-USB-camera.md +++ b/_configs/Logitech-C525-USB-camera.md @@ -7,23 +7,23 @@ 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" - } - } - ] +{ + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "Logitech-C525", + "videoConfig": { + "source": "-f alsa -ac 1 -ar 44100 -thread_queue_size 2048 -i plughw:CARD=C525,DEV=0 -re -f video4linux2 -i /dev/video0 -vsync 0 -af aresample=async=1", + "stillImageSource": "-s 1280x720 -f video4linux2 -i /dev/video0", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 30, + "audio": true, + "debug": true, + "packetSize": 188, + "mapvideo": "1", + "mapaudio": "0" + } + }] +} ``` diff --git a/_configs/Logitech-HD-Pro-Webcam-C920-2.md b/_configs/Logitech-HD-Pro-Webcam-C920-2.md index bfdd887e..dc8da78f 100644 --- a/_configs/Logitech-HD-Pro-Webcam-C920-2.md +++ b/_configs/Logitech-HD-Pro-Webcam-C920-2.md @@ -22,23 +22,23 @@ Video Only: ## 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 - } - } -] +{ + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "C920", + "videoConfig": { + "source": "-f rtsp -vcodec h264_mmal -i rtsp://rpi:8555/unicast", + "stillImageSource": "-i http://rpi/latest.jpg", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 30, + "maxBitrate": 300, + "vcodec": "h264_omx", + "audio": true, + "packetSize": 188, + "debug": false + } + }] +} ``` diff --git a/_configs/Logitech-HD-Pro-Webcam-C920.md b/_configs/Logitech-HD-Pro-Webcam-C920.md index ab780126..34c3dbe9 100644 --- a/_configs/Logitech-HD-Pro-Webcam-C920.md +++ b/_configs/Logitech-HD-Pro-Webcam-C920.md @@ -8,21 +8,21 @@ macOS (High Sierra), ffmpeg compiled through macports. Demonstrates use of avfou ## 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 - } + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "macCam", + "uploader": true, + "videoConfig": { + "source": "-re -f avfoundation -video_size 640x480 -framerate 30 -i 0", + "stillImageSource": "-re -f avfoundation -video_size 640x480 -framerate 30 -ss 0.9 -i 0 -vframes 1", + "maxStreams": 2, + "maxWidth": 640, + "maxHeight": 480, + "maxFPS": 30, + "vcodec": "h264", + "debug": true + } + }] } -] ``` diff --git a/_configs/Lorex-LHV2008.md b/_configs/Lorex-LHV2008.md index 60cb41a1..9d415d84 100644 --- a/_configs/Lorex-LHV2008.md +++ b/_configs/Lorex-LHV2008.md @@ -7,20 +7,18 @@ date: 2020-01-19 ```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 - } - } - ] + "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 + } + }] } ``` diff --git a/_configs/Maygion-H264-IPCam.md b/_configs/Maygion-H264-IPCam.md index 290932a2..010f40ca 100644 --- a/_configs/Maygion-H264-IPCam.md +++ b/_configs/Maygion-H264-IPCam.md @@ -10,20 +10,18 @@ MPEG Snapshot & RTSP Stream ```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" - } - } - ] + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "Maygion", + "videoConfig": { + "source": "-re -i rtsp://[USER]:[PASSWORD]@ip-address:81/videostream.cgi", + "stillImageSource": "-i http://ip-address:81/snapshot.cgi?user=[USER]&pwd=[PASSWORD]", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 16, + "vcodec": "h264_omx" + } + }] } ``` diff --git a/_configs/Mobotix-M24.md b/_configs/Mobotix-M24.md index 25c62462..cc2c867b 100644 --- a/_configs/Mobotix-M24.md +++ b/_configs/Mobotix-M24.md @@ -8,19 +8,17 @@ date: 2018-02-08 ```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 - } - } - ] + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "Mobotix M24", + "videoConfig": { + "source": "-f mxg -i http://user:password@192.168.100.100/control/faststream.jpg?stream=MxPEG", + "stillImageSource": "-i http://user:password@192.168.100.100/cgi-bin/image.jpg", + "maxStreams": 3, + "maxWidth": 1920, + "maxHeight": 1080, + "maxFPS": 30 + } + }] } ``` diff --git a/_configs/MotionEyeOS.md b/_configs/MotionEyeOS.md index 217f4a20..fb44b212 100644 --- a/_configs/MotionEyeOS.md +++ b/_configs/MotionEyeOS.md @@ -6,20 +6,18 @@ 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 - } - } - ] - } +{ + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "MotionEyeOS", + "videoConfig": { + "source": "-re -f mjpeg -i http://192.168.2.26:8081", + "stillImageSource": "-f mjpeg -i http://192.168.2.26/picture/1/current/", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 800, + "maxFPS": 10 + } + }] +} ``` diff --git a/_configs/Pelco-cameras.md b/_configs/Pelco-cameras.md index 42ccc659..96d664a8 100644 --- a/_configs/Pelco-cameras.md +++ b/_configs/Pelco-cameras.md @@ -11,19 +11,17 @@ Pelco cameras have two streams `rtsp//camera-ip/stream1` and `rtsp//camera-ip/st ```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 - } - } - ] + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "Baksidan", + "videoConfig": { + "source": "-re -i rtsp://192.168.5.34/stream2", + "stillImageSource": "-i http://192.168.5.34/jpeg", + "maxStreams": 2, + "maxWidth": 640, + "maxHeight": 480, + "maxFPS": 30 + } + }] } ``` diff --git a/_configs/Pi-Camera-V2.md b/_configs/Pi-Camera-V2.md index bd38055a..99725fe9 100644 --- a/_configs/Pi-Camera-V2.md +++ b/_configs/Pi-Camera-V2.md @@ -9,20 +9,18 @@ According to [this comment](https://github.com/KhaosT/homebridge-camera-ffmpeg/i ```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" - } - } - ] + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "Pi Cam", + "videoConfig": { + "source": "-re -r 6 -s 1280x720 -f video4linux2 -i /dev/video0", + "stillImageSource": "-s 1280x720 -f video4linux2 -i /dev/video0", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 6, + "vcodec": "h264_omx" + } + }] } ``` diff --git a/_configs/ROCAM-NC400HD.md b/_configs/ROCAM-NC400HD.md index e7dea2b9..14a34800 100644 --- a/_configs/ROCAM-NC400HD.md +++ b/_configs/ROCAM-NC400HD.md @@ -8,20 +8,18 @@ date: 2017-03-31 ```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 - } - } - ] + "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 + } + }] } ``` diff --git a/_configs/Raspberry-Pi-Camera-Module-V2.md b/_configs/Raspberry-Pi-Camera-Module-V2.md index 4c7ffa11..78b7e651 100644 --- a/_configs/Raspberry-Pi-Camera-Module-V2.md +++ b/_configs/Raspberry-Pi-Camera-Module-V2.md @@ -14,21 +14,19 @@ Still image sometimes don't refresh in homekit App : Need to reboot the iPhone t ```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" - } - } - ] + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "piCam", + "uploader": false, + "videoConfig": { + "source": "-re -f video4linux2 -i /dev/video0", + "stillImageSource": "-re -f video4linux2 -ss 0.9 -i /dev/video0 -vframes 1", + "maxStreams": 2, + "maxWidth": 1920, + "maxHeight": 1080, + "maxFPS": 30, + "vcodec": "h264_omx" + } + }] } ``` diff --git a/_configs/Raspberry-Pi-camera-v1.3.md b/_configs/Raspberry-Pi-camera-v1.3.md index 9b843df3..feaa6579 100644 --- a/_configs/Raspberry-Pi-camera-v1.3.md +++ b/_configs/Raspberry-Pi-camera-v1.3.md @@ -39,22 +39,20 @@ Cron job to pull the latest snapshot locally every minute ```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 - } - } - ] + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "Balcony Camera", + "videoConfig": { + "source": "-f rtsp -re -i rtsp://192.168.1.107:8000/live", + "stillImageSource": "-i file:///home/pi/latest.jpg", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 15, + "maxBitrate": 299, + "audio": false, + "packetSize": 188 + } + }] } ``` \ No newline at end of file diff --git a/_configs/ReoLink-RLC-410.md b/_configs/ReoLink-RLC-410.md index d21a9e60..07aca6cb 100644 --- a/_configs/ReoLink-RLC-410.md +++ b/_configs/ReoLink-RLC-410.md @@ -10,20 +10,18 @@ date: 2019-09-24 ```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 - } - } - ] + "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 + } + }] } ``` diff --git a/_configs/ReoLink-RLC-422.md b/_configs/ReoLink-RLC-422.md index 47dcd2f0..9c1dfb5c 100644 --- a/_configs/ReoLink-RLC-422.md +++ b/_configs/ReoLink-RLC-422.md @@ -7,23 +7,21 @@ date: 2019-10-03 ```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 - } - } - ] + "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 + } + }] } ``` diff --git a/_configs/Reolink-RLC-410W.md b/_configs/Reolink-RLC-410W.md index f7ecb2f6..845aa378 100644 --- a/_configs/Reolink-RLC-410W.md +++ b/_configs/Reolink-RLC-410W.md @@ -8,24 +8,22 @@ date: 2018-04-18 ```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 -} + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "Camera Driveway Reolink", + "videoConfig": { + "source": "-rtsp_transport tcp -re -i rtsp://admin:lola9698@192.168.1.241:554/h264Preview_01_main", + "stillImageSource": "-i http://192.168.1.241/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=pwd", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 30, + "maxBitrate": 300, + "vcodec": "copy", + "packetSize": 1316, + "audio": false, + "debug": true + } + }] } -] -}, ``` diff --git a/_configs/Reolink-camera.md b/_configs/Reolink-camera.md index 84d45985..e3033328 100644 --- a/_configs/Reolink-camera.md +++ b/_configs/Reolink-camera.md @@ -128,36 +128,38 @@ 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 - } - } -] +{ + "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 +{ + "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 + } } ``` diff --git a/_configs/Samsung-SNH-P6410BN.md b/_configs/Samsung-SNH-P6410BN.md index 1227788e..1be9fec8 100644 --- a/_configs/Samsung-SNH-P6410BN.md +++ b/_configs/Samsung-SNH-P6410BN.md @@ -28,18 +28,16 @@ rtsp://username:password@IPAddress:554/profile6/media.smp ```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 - } - } - ] + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "CamNameHere", + "videoConfig": { + "source": "-re -i rtsp://username:password@ipaddress:554/profile2/media.smp", + "maxStreams": 2, + "maxWidth": 640, + "maxHeight": 360, + "maxFPS": 15 + } + }] } ``` diff --git a/_configs/Sannce-1080P-IP-Cameras.md b/_configs/Sannce-1080P-IP-Cameras.md index 58044dd0..7b9a0dc3 100644 --- a/_configs/Sannce-1080P-IP-Cameras.md +++ b/_configs/Sannce-1080P-IP-Cameras.md @@ -9,14 +9,14 @@ Purchased as a set of 4 with an NVR (no HD), available on [Amazon.ca](https://ww ```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 - } + "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 + } } ``` diff --git a/_configs/SecuritySpy.md b/_configs/SecuritySpy.md index 58ba7aa8..bf1f9aef 100644 --- a/_configs/SecuritySpy.md +++ b/_configs/SecuritySpy.md @@ -10,30 +10,29 @@ The great thing about this is, if SecuritySpy supports your camera ([which is an ```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 - } - } - ] + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "Security Cam 0", + "videoConfig": { + "source": "-i http://:@:/++hls?cameraNum=0&codec=h264&width=1280&height=720", + "stillImageSource": "-i http://:@:/++image?cameraNum=0&width=480&height=270", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 30 + } + }, + { + "name": "Security Cam 1", + "videoConfig": { + "source": "-i http://:@:/++hls?cameraNum=1&codec=h264&width=1280&height=720", + "stillImageSource": "-i http://:@:/++image?cameraNum=1&width=480&height=270", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 30 + } + } + ] } ``` diff --git a/_configs/Synology-Surveillance-Station-2.md b/_configs/Synology-Surveillance-Station-2.md index 7c529087..37446555 100644 --- a/_configs/Synology-Surveillance-Station-2.md +++ b/_configs/Synology-Surveillance-Station-2.md @@ -9,24 +9,20 @@ When using Surveillance Station to connect and record the camera there is no poi ```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" - } - ] + "platforms": [{ + "cameras": [{ + "name": "My Camera", + "videoConfig": { + "source": "-re -i rtsp://syno:1234567890abcdef1234567890abcdef@localhost:554/Sms=1.unicast", + "maxWidth": 1920, + "maxHeight": 1080, + "maxFPS": 30, + "maxBitrate": 3000, + "vcodec": "copy", + "audio": true + } + }], + "platform": "Camera-ffmpeg" + }] } ``` diff --git a/_configs/Synology-Surveillance-Station.md b/_configs/Synology-Surveillance-Station.md index 3540869c..94afc8c7 100644 --- a/_configs/Synology-Surveillance-Station.md +++ b/_configs/Synology-Surveillance-Station.md @@ -8,20 +8,18 @@ Link for source and stillImageSource are generate by Surveillance Station, right ```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" - } - } - ] + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "Camera-Salon", + "videoConfig": { + "source": "-rtsp_transport tcp -re -i rtsp://USER:PASS@IP:554/Sms=CAMID.unicast", + "stillImageSource": "-rtsp_transport tcp -re -i rtsp://USER:PASS@IP:554/Sms=CAMID.unicast -updatefirst", + "maxStreams": 2, + "maxWidth": 2688, + "maxHeight": 1520, + "maxFPS": 20, + "vcodec": "h264" + } + }] } ``` diff --git a/_configs/Szsinocam-ip-onvif.md b/_configs/Szsinocam-ip-onvif.md index dd0c9447..173a1c1c 100644 --- a/_configs/Szsinocam-ip-onvif.md +++ b/_configs/Szsinocam-ip-onvif.md @@ -8,20 +8,18 @@ date: 2020-06-30 ```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" + "cameras": [{ + "name": "Camera", + "manufacturer": "SZSINOCAM", + "model": "IPCAM", + "motion": false, + "videoConfig": { + "source": "-rtsp_transport tcp -re -i rtsp://192.168.1.50:554/ucast/11", + "stillImageSource": "-re -i http://192.168.1.50/cgi-bin/anv/images_cgi?channel=0", + "maxFPS": 20, + "debug": false + } + }], + "platform": "Camera-ffmpeg" } ``` diff --git a/_configs/TP-Link-C100.md b/_configs/TP-Link-C100.md index 8ea714c7..599beabe 100644 --- a/_configs/TP-Link-C100.md +++ b/_configs/TP-Link-C100.md @@ -9,27 +9,25 @@ Model C 100 ```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" + "cameras": [{ + "name": "TP-Link Camera C100", + "manufacturer": "TP-Link", + "model": "C100", + "motion": true, + "videoConfig": { + "source": "-rtsp_transport http -re -i rtsp://user:password@ip:554/stream1", + "stillImageSource": "-rtsp_transport tcp -re -i rtsp://user:password@ip:554/stream1", + "maxStreams": 2, + "maxWidth": 1024, + "maxHeight": 576, + "maxFPS": 10, + "maxBitrate": 300, + "vcodec": "h264_omx", + "packetSize": 188, + "audio": true, + "debug": true + } + }], + "platform": "Camera-ffmpeg" } ``` diff --git a/_configs/TP-Link-C200.md b/_configs/TP-Link-C200.md index d8f34754..c32a1273 100644 --- a/_configs/TP-Link-C200.md +++ b/_configs/TP-Link-C200.md @@ -9,28 +9,26 @@ Model C 200 ```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 - } - } - ], + "name": "Camera ffmpeg", + "cameras": [{ + "name": "Camera-Salo_", + "manufacturer": "TP-Link", + "model": "C200", + "serialNumber": "1C3BF372F96C", + "firmwareRevision": "1.0.5", + "videoConfig": { + "source": "-re -i rtsp://user:password@ip:554/stream2", + "stillImageSource": "-i rtsp:// user:password@ip:554/stream2", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 10, + "maxBitrate": 300, + "vcodec": "libx264", + "packetSize": 1316, + "audio": true, + "debug": true + } + }] } ``` diff --git a/_configs/UNV-Uniview.md b/_configs/UNV-Uniview.md index e26d8011..463b8cfe 100644 --- a/_configs/UNV-Uniview.md +++ b/_configs/UNV-Uniview.md @@ -24,23 +24,21 @@ 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 - } - } -] +{ + "name": "Front of House", + "videoConfig": { + "source": "-rtsp_transport tcp -re -i rtsp://username:password@ipaddress:554/unicast/c1/s1/live", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 10, + "maxBitrate": 256, + "mapvideo": "0:0", + "mapaudio": "0:1", + "vcodec": "copy", + "packetSize": 376, + "audio": false, + "debug": true + } +} ``` diff --git a/_configs/Ubiquiti-AirCam.md b/_configs/Ubiquiti-AirCam.md index 1402f962..695694dc 100644 --- a/_configs/Ubiquiti-AirCam.md +++ b/_configs/Ubiquiti-AirCam.md @@ -12,14 +12,14 @@ Using fork for RPi ```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 - } + "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 + } } ``` diff --git a/_configs/Ubiquiti-UVC-G3.md b/_configs/Ubiquiti-UVC-G3.md index 46438993..c271af75 100644 --- a/_configs/Ubiquiti-UVC-G3.md +++ b/_configs/Ubiquiti-UVC-G3.md @@ -7,21 +7,21 @@ date: 2020-05-11 ```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" - } + "name": "CCTV Camera", + "manufacturer": "Ubiquiti", + "model": "UVC G3", + "serialNumber": "XYZXYZYZY", + "firmwareRevision": "4.14", + "videoConfig": { + "source": "-rtsp_transport tcp -re -i rtsp://admin:xxxxxxx@172.16.33.67:554/s0", + "maxStreams": 2, + "maxWidth": 1920, + "maxHeight": 1080, + "maxFPS": 30, + "vcodec": "copy", + "audio": true, + "mapvideo": "0:1", + "mapaudio": "0:0" + } } ``` diff --git a/_configs/UniFi-Video-G3-Micro.md b/_configs/UniFi-Video-G3-Micro.md index 610a156f..87f56e7c 100644 --- a/_configs/UniFi-Video-G3-Micro.md +++ b/_configs/UniFi-Video-G3-Micro.md @@ -11,21 +11,21 @@ Audio and video working on a Raspberry Pi 3 Model B using the instructions [here ```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" - } + "name": "UniFi-G3-Micro", + "videoConfig": { + "source": "-re -rtsp_transport tcp -i rtsp://UNIFI_CLOUD_KEY_G2_IP:PORT/UNIQUE_ID", + "stillImageSource": "-i http://UNIFI_CAMERA_IP/snap.jpeg", + "additionalCommandline": "-preset slow -profile:v high -level 4.2 -x264-params intra-refresh=1:bframes=0", + "vcodec": "h264_omx", + "audio": true, + "packetsize": 188, + "maxStreams": 2, + "maxWidth": 1024, + "maxHeight": 576, + "maxFPS": 20, + "debug": true, + "mapvideo": "0:1", + "mapaudio": "0:0" + } } ``` diff --git a/_configs/V380-Cloudcam.md b/_configs/V380-Cloudcam.md index 153938a5..452c4a53 100644 --- a/_configs/V380-Cloudcam.md +++ b/_configs/V380-Cloudcam.md @@ -20,20 +20,18 @@ Download files [here](https://drive.google.com/file/d/0B8j89vcA6EWGdlgxcWVuZTlJZ ```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 - } - } - ] + "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 + } + }] } ``` diff --git a/_configs/VESKYS-720P-Tilt-Pan.md b/_configs/VESKYS-720P-Tilt-Pan.md index 1d7994c6..22526e9b 100644 --- a/_configs/VESKYS-720P-Tilt-Pan.md +++ b/_configs/VESKYS-720P-Tilt-Pan.md @@ -9,20 +9,18 @@ date: 2017-05-13 ```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 - } - } - ] + "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 + } + }] } ``` diff --git a/_configs/Vivotek-CC-8130.md b/_configs/Vivotek-CC-8130.md index 2b9200d0..060c8a57 100644 --- a/_configs/Vivotek-CC-8130.md +++ b/_configs/Vivotek-CC-8130.md @@ -21,19 +21,17 @@ To resolve playback issues I had to use the OMX fork to get the PI 2 and FFMPEG ```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 - } - } - ] + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "Office Camera", + "videoConfig": { + "source": "-re -i http://login:password@192.168.1.98/video2.mjpg", + "stillImageSource": "-f mjpeg -i http://login:password@192.168.1.98/cgi-bin/viewer/video.jpg", + "maxStreams": 2, + "maxWidth": 1920, + "maxHeight": 1080, + "maxFPS": 30 + } + }] } ``` diff --git a/_configs/Vstarcam-C7824WIP.md b/_configs/Vstarcam-C7824WIP.md index c6c002da..c601df00 100644 --- a/_configs/Vstarcam-C7824WIP.md +++ b/_configs/Vstarcam-C7824WIP.md @@ -8,17 +8,17 @@ date: 2020-07-15 ```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 - } + "name": "Entrance Camera", + "motion": true, + "switches": false, + "motionTimeout": 35, + "videoConfig": { + "source": "-rtsp_transport udp -i rtsp://admin:yourpassword@cam-ip:10554/udp/av0_0", + "stillImageSource": "-i http://cam-ip/img/snapshot.cgi?user=admin&pwd=yourpassword&res=0", + "maxFPS": 25, + "packetSize": 1316, + "audio": true, + "debug": false + } } ``` diff --git a/_configs/WaveShare-RPi-Camera.md b/_configs/WaveShare-RPi-Camera.md index b32d2a35..cb7d954c 100644 --- a/_configs/WaveShare-RPi-Camera.md +++ b/_configs/WaveShare-RPi-Camera.md @@ -15,26 +15,24 @@ date: 2020-07-19 ```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" + "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" } ``` diff --git a/_configs/WyzeCam-V2.md b/_configs/WyzeCam-V2.md index c10f39c9..b873d681 100644 --- a/_configs/WyzeCam-V2.md +++ b/_configs/WyzeCam-V2.md @@ -10,16 +10,14 @@ As described in this [blog post](https://medium.com/dirigible/wyze-cam-homekit-5 ```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" - } - } - ] + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "Wyze Cam", + "videoConfig": { + "source": "-i rtsp://username:password@192.168.0.100/live", + "stillImageSource": "-i rtsp://username:password@192.168.0.100/live -vframes 1 -r 1", + "vcodec": "copy" + } + }] } ``` diff --git a/_configs/Wyzecam-V1.md b/_configs/Wyzecam-V1.md index 73426f32..a69f0c7b 100644 --- a/_configs/Wyzecam-V1.md +++ b/_configs/Wyzecam-V1.md @@ -14,19 +14,17 @@ The rest of the `config.json` file is similar to the above Xioami Xiaofang `conf ```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 - } - } - ] + "platform": "Camera-ffmpeg-omx", + "cameras": [{ + "name": "Garage Camera", + "videoConfig": { + "source": "-re -i rtsp://192.168.2.128/unicast", + "stillImageSource": "-i rtsp://192.168.2.128/unicast -vframes 1 -r 1", + "maxStreams": 2, + "maxWidth": 1920, + "maxHeight": 1080, + "maxFPS": 30 + } + }] } ``` diff --git a/_configs/Xiaomi-Dafang.md b/_configs/Xiaomi-Dafang.md index fd1e1953..51e92e7a 100644 --- a/_configs/Xiaomi-Dafang.md +++ b/_configs/Xiaomi-Dafang.md @@ -15,20 +15,18 @@ I run this config for my 3 Cams. ```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" - } - } - ] + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "Camera 1", + "videoConfig": { + "source": "-rtsp_transport tcp -i rtsp://ip-address/unicast", + "stillImageSource": "-rtsp_transport tcp -i rtsp://ip-address/unicast -vframes 1 -r 1", + "maxStreams": 5, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 25, + "vcodec": "h264_omx" + } + }] } ``` diff --git a/_configs/Xiaomi-Xiaofang-1S.md b/_configs/Xiaomi-Xiaofang-1S.md index 16754c75..eab9d2cf 100644 --- a/_configs/Xiaomi-Xiaofang-1S.md +++ b/_configs/Xiaomi-Xiaofang-1S.md @@ -11,19 +11,19 @@ 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 - } + "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 + } } ``` diff --git a/_configs/Xiaomi-Xiaofang.md b/_configs/Xiaomi-Xiaofang.md index 4ad1a0e2..2c28ecb6 100644 --- a/_configs/Xiaomi-Xiaofang.md +++ b/_configs/Xiaomi-Xiaofang.md @@ -12,20 +12,18 @@ I also reduced the RTSP output to 720p which is helpful when your Wi-Fi link is ```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" - } - } - ] + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "Camera 1", + "videoConfig": { + "source": "-rtsp_transport tcp -i rtsp://ip-address/unicast", + "stillImageSource": "-i rtsp://ip-address/unicast -vframes 1 -r 1", + "maxStreams": 2, + "maxWidth": 720, + "maxHeight": 480, + "maxFPS": 10, + "vcodec": "h264_omx" + } + }] } ``` diff --git a/_configs/Y-cam-Cameras.md b/_configs/Y-cam-Cameras.md index 587ebddf..943515ec 100644 --- a/_configs/Y-cam-Cameras.md +++ b/_configs/Y-cam-Cameras.md @@ -22,19 +22,17 @@ It may be worth mentioning, there are several streams available coming from the ```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 - } - } - ] + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "Y-Cam", + "videoConfig": { + "source": "-rtsp_transport tcp -re -i rtsp://user:pass@ip:554/live/0/mjpeg.sdp", + "stillImageSource": "-f mjpeg -i http://user:pass@ip:554/live/0/mjpeg.jpg", + "maxStreams": 2, + "maxWidth": 1920, + "maxHeight": 1080, + "maxFPS": 30 + } + }] } ``` diff --git a/_configs/ZNV-ZDIE-2121W-N3T-A.md b/_configs/ZNV-ZDIE-2121W-N3T-A.md index e39757d3..c9654484 100644 --- a/_configs/ZNV-ZDIE-2121W-N3T-A.md +++ b/_configs/ZNV-ZDIE-2121W-N3T-A.md @@ -13,22 +13,20 @@ date: 2018-04-20 ```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 - } - } - ] + "platform": "Camera-ffmpeg", + "cameras": [{ + "name": "ZNVCam", + "uploader": false, + "videoConfig": { + "source": "-rtsp_transport tcp -re -I rtsp://:@192.168.0.254:554/ch0_0.h264", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "packetSize": 188, + "maxFPS": 30, + "maxBitrate": 300, + "debug": false + } + }] } ``` diff --git a/_configs/Zoneminder.md b/_configs/Zoneminder.md index 20760987..5bd737d5 100644 --- a/_configs/Zoneminder.md +++ b/_configs/Zoneminder.md @@ -9,15 +9,15 @@ works pretty well with zoneminder, using the ZM 'nph-zms' urls. Since the stream ```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 - } + "name": "Sideyard Cam", + "videoConfig": { + "source": "-re -i http://localhost/zm/cgi-bin/nph-zms?mode=jpeg&monitor=&scale=100&maxfps=15&buffer=1000&user=&pass=", + "stillImageSource": "-i http://localhost/zm/cgi-bin/nph-zms?mode=single&monitor=&scale=100&user=&pass=", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 15, + "debug": true + } } ``` diff --git a/_configs/eufy-Security-eufyCam.md b/_configs/eufy-Security-eufyCam.md index 4577c305..cf61ea4b 100644 --- a/_configs/eufy-Security-eufyCam.md +++ b/_configs/eufy-Security-eufyCam.md @@ -13,19 +13,17 @@ A wireless camera system that records locally and supports RTSP. Love it! Tested ```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" - } - } - ] + "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" + } + }] } ``` diff --git a/configs.md b/configs.md index c5d41874..23ba6140 100644 --- a/configs.md +++ b/configs.md @@ -7,7 +7,7 @@ iSpyConnect [maintains a large database](https://www.ispyconnect.com/sources.asp 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. -Despite what some older posts and comments you come across may mention, it is strongly recommended that you do not use the `-re` setting in your source, as it is known to cause problems with live sources. +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: From 2398d59d3fdd181395d5bbab13191ea8efa4fcfa Mon Sep 17 00:00:00 2001 From: David Maher Date: Sun, 23 Aug 2020 13:20:59 -0400 Subject: [PATCH 10/38] Added #743 --- _configs/D-Link-DCS-933L.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 _configs/D-Link-DCS-933L.md diff --git a/_configs/D-Link-DCS-933L.md b/_configs/D-Link-DCS-933L.md new file mode 100644 index 00000000..1caa7599 --- /dev/null +++ b/_configs/D-Link-DCS-933L.md @@ -0,0 +1,36 @@ +--- +title: D-Link DCS 933L +author: Agneev Mukherjee +date: 2020-08-23 +--- +## Homebridge Config + +```json +{ + "name": "Front Gate Camera", + "manufacturer": "D-Link", + "model": "DCS-933L", + "firmwareRevision": "1.15.01", + "motion": false, + "videoConfig": { + "source": "-re -f mjpeg -i http://user:password@10.0.0.20/mjpeg.cgi -i http://user:password@10.0.0.20/audio.cgi", + "stillImageSource": "-i http://user:password@10.0.0.20/image/jpeg.cgi", + "maxStreams": 6, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 20, + "maxBitrate": 6000, + "minBitrate": 6000, + "vcodec": "h264_omx", + "packetSize": 564, + "videoFilter": "scale=640:480", + "mapaudio": "1:0", + "audio": true, + "debug": false + } +} +``` + +## Additional Information + +Tested on Raspberry Pi 4. There is a delay while using audio, so turn it off if it's not very important. From d71d765e6ff4851cbb6f836d298a7b0671e55b06 Mon Sep 17 00:00:00 2001 From: David Maher Date: Mon, 24 Aug 2020 12:28:35 -0400 Subject: [PATCH 11/38] Updated #743 --- _configs/D-Link-DCS-933L.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/_configs/D-Link-DCS-933L.md b/_configs/D-Link-DCS-933L.md index 1caa7599..5cf3a41a 100644 --- a/_configs/D-Link-DCS-933L.md +++ b/_configs/D-Link-DCS-933L.md @@ -1,7 +1,7 @@ --- title: D-Link DCS 933L author: Agneev Mukherjee -date: 2020-08-23 +date: 2020-08-24 --- ## Homebridge Config @@ -13,17 +13,16 @@ date: 2020-08-23 "firmwareRevision": "1.15.01", "motion": false, "videoConfig": { - "source": "-re -f mjpeg -i http://user:password@10.0.0.20/mjpeg.cgi -i http://user:password@10.0.0.20/audio.cgi", - "stillImageSource": "-i http://user:password@10.0.0.20/image/jpeg.cgi", + "source": "-re -f mjpeg -i http://username:password@10.0.0.20/mjpeg.cgi -i http://username:password@10.0.0.20/audio.cgi", + "stillImageSource": "-i http://username:password@10.0.0.20/image/jpeg.cgi", "maxStreams": 6, - "maxWidth": 1280, - "maxHeight": 720, - "maxFPS": 20, + "maxWidth": 0, + "maxHeight": 0, + "maxFPS": 0, "maxBitrate": 6000, - "minBitrate": 6000, + "forceMax": true, + "preserveRatio": true, "vcodec": "h264_omx", - "packetSize": 564, - "videoFilter": "scale=640:480", "mapaudio": "1:0", "audio": true, "debug": false From dcce61dc6efe2f01b31909d7bc9e69e6b2487c68 Mon Sep 17 00:00:00 2001 From: David Maher Date: Sat, 29 Aug 2020 22:49:04 -0400 Subject: [PATCH 12/38] Added homebridge-dahua-alerts --- _automation/helpers.md | 1 + 1 file changed, 1 insertion(+) diff --git a/_automation/helpers.md b/_automation/helpers.md index 0cb2df92..eb85868e 100644 --- a/_automation/helpers.md +++ b/_automation/helpers.md @@ -12,5 +12,6 @@ Because many cameras do not natively support MQTT or HTTP calls in the format Ho - [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. 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. From a379c58959062805d14914720dfe9043a51fe3f0 Mon Sep 17 00:00:00 2001 From: David Maher Date: Fri, 4 Sep 2020 10:55:53 -0400 Subject: [PATCH 13/38] Added #769 --- _configs/Dahua-DH-SD22204T-GN.md | 39 ++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 _configs/Dahua-DH-SD22204T-GN.md diff --git a/_configs/Dahua-DH-SD22204T-GN.md b/_configs/Dahua-DH-SD22204T-GN.md new file mode 100644 index 00000000..8d190d9f --- /dev/null +++ b/_configs/Dahua-DH-SD22204T-GN.md @@ -0,0 +1,39 @@ +--- +title: Dahua DH-SD22204T-GN +author: Dmitry Nosovitsky +date: 2020-09-04 +--- +**Homebridge Config** + +```json +{ + "cameras": [{ + "name": "Gate Camera", + "manufacturer": "Dahua", + "model": "DH-SD22204T-GN", + "serialNumber": "yourcameraserialnumber", + "firmwareRevision": "yourcamerafirmwarerevision", + "motion": true, + "motionTimeout": 35, + "videoConfig": { + "source": "-rtsp_transport tcp -re -i rtsp://yourcamerauser:yourcamerapassword@yourcameraIP:554/cam/realmonitor?channel=1&subtype=0", + "vcodec": "copy", + "maxFPS": 4, + "maxStreams": 2, + "maxWidth": 704, + "maxHeight": 576, + "packetsize": 1316, + "maxBitrate": 1000, + "audio": true, + "mapaudio": "0:1?", + "debug": true + } + }], + "platform": "Camera-ffmpeg" +} +``` + +**Additional Information** + +- Setting "vcodec" value as "copy" let you to use even old (2015) weak (RAM 512 MB) OrangePiOne as HomeBridge with 2-5% CPU load for 11 cameras simultaneously +- "maxFPS" could be set to 14 if your camera is in good wired network From 075a41484ef41bd1043c5707145f204849549c83 Mon Sep 17 00:00:00 2001 From: David Maher Date: Sun, 20 Sep 2020 11:06:24 -0400 Subject: [PATCH 14/38] Added #797 and #798 --- _configs/Amcrest-IPM-721W.md | 40 ++++++++++++++++++++++++++++++++++++ _configs/Sercomm-OC810.md | 29 ++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 _configs/Amcrest-IPM-721W.md create mode 100644 _configs/Sercomm-OC810.md diff --git a/_configs/Amcrest-IPM-721W.md b/_configs/Amcrest-IPM-721W.md new file mode 100644 index 00000000..63d6a1ce --- /dev/null +++ b/_configs/Amcrest-IPM-721W.md @@ -0,0 +1,40 @@ +--- +title: Amcrest IPM-721W +author: FawziD +date: 2020-09-19 +--- +**Homebridge Config** + +```json +{ + "name": "Cam1", + "manufacturer": "Amcrest", + "model": "IPM-721W", + "serialNumber": "XXXXXXXXXX", + "firmwareRevision": "V2.420.AC00.18.R, Build Date: 2020-02-17", + "motion": true, + "unbridge": true, + "videoConfig": { + "source": "-i rtsp://admin:####@192.168.2.99/cam/realmonitor?channel=1&subtype=0", + "maxStreams": 2, + "maxWidth": 0, + "maxHeight": 0, + "maxFPS": 15, + "maxBitrate": 1024, + "vcodec": "h264_omx", + "packetSize": 188, + "encoderOptions": "-preset ultrafast -tune zerolatency", + "audio": true, + "debug": false + } +} +``` + +**Additional Information** + +- Works ok on an old Raspberry pi 2 with this sub 50$ camera. I've fiddled quite a long while to get to this. There are a few skipped frames here and there but otherwise works fine. + +- The widget view in HomeKit shows only snapshots every 10 seconds in iOS and doesn't work at all in MacOS. But full screen view on iOS, TVOS, iPadOS and MacOS shows a live feed (with sound) reliably. + +- Hardware h264 decoding works fine, although each individual stream adds 25~30% load on the CPU. +And I've set the camera itself to 15fps, high quality and a 1024 bitrate which seemed to help also. diff --git a/_configs/Sercomm-OC810.md b/_configs/Sercomm-OC810.md new file mode 100644 index 00000000..4780f891 --- /dev/null +++ b/_configs/Sercomm-OC810.md @@ -0,0 +1,29 @@ +--- +title: Sercomm OC810 +author: cinsu +date: 2020-09-19 +--- +**Homebridge Config** + +```json +{ + "name": "Camera FFmpeg", + "cameras": [{ + "name": "Camera", + "motion": true, + "videoConfig": { + "source": "-i rtsp://administrator@[ip]:1025/img/media.sav", + "stillImageSource": "http://administrator@[ip]/img/snapshot.cgi", + "maxStreams": 2, + "maxWidth": 640, + "maxHeight": 480, + "maxFPS": 15, + "audio": true + } + }] +} +``` + +**Additional Information** + +Default video size is 320x240 which I’ve increased. There are reports some Sercomm models support 720 with a hidden api call but that did not work for this model. I’ve been testing the ffmpeg audio return without success. The parameter is http://[ip]/img/g711a.cgi From ad4b9c6e8c9a7f64fc66110b08f114ee1366efd7 Mon Sep 17 00:00:00 2001 From: David Maher Date: Thu, 31 Dec 2020 18:43:39 -0500 Subject: [PATCH 15/38] Added #819, #840, #842, #844, #857, #892, #919, #924, #931, #958, and #959 --- _configs/2n-HeliosIP.md | 33 +++++++++++++++ _configs/Amcrest-IP2M-842E.md | 42 +++++++++++++++++++ _configs/Besder-POE-720P.md | 16 +++++++ _configs/EzViz-C3-Husky.md | 28 +++++++++++++ ...sion-DS-2CD2T22WD-I5-and-DS-2CD2322WD-I.md | 21 ++++++++++ _configs/Intelbras-im3.md | 33 +++++++++++++++ _configs/Jawa-Z_22047.md | 25 +++++++++++ _configs/Raspberry-Pi-NoIR-Camera.md | 34 +++++++++++++++ _configs/Techage-2MP-PoE-NVR.md | 35 ++++++++++++++++ _configs/Vivint-Doorbell-Camera-Pro.md | 26 ++++++++++++ _configs/Wyze-Cam-Pan-V1.md | 31 ++++++++++++++ 11 files changed, 324 insertions(+) create mode 100644 _configs/2n-HeliosIP.md create mode 100644 _configs/Amcrest-IP2M-842E.md create mode 100644 _configs/Besder-POE-720P.md create mode 100644 _configs/EzViz-C3-Husky.md create mode 100644 _configs/Hikvision-DS-2CD2T22WD-I5-and-DS-2CD2322WD-I.md create mode 100644 _configs/Intelbras-im3.md create mode 100644 _configs/Jawa-Z_22047.md create mode 100644 _configs/Raspberry-Pi-NoIR-Camera.md create mode 100644 _configs/Techage-2MP-PoE-NVR.md create mode 100644 _configs/Vivint-Doorbell-Camera-Pro.md create mode 100644 _configs/Wyze-Cam-Pan-V1.md diff --git a/_configs/2n-HeliosIP.md b/_configs/2n-HeliosIP.md new file mode 100644 index 00000000..50666b6d --- /dev/null +++ b/_configs/2n-HeliosIP.md @@ -0,0 +1,33 @@ +--- +title: 2n HeliosIP +author: hihipto +date: 2020-10-14 +--- +**Homebridge Config** + +```json +{ + "name": "Doorbell", + "manufacturer": "2n", + "model": "HeliosIP", + "serialNumber": "1234", + "doorbell": true, + "videoConfig": { + "source": "-i rtsp://IPaddress:554/h264_stream", + "stillImageSource": "-i http://IPaddress/enu/camera640x480.jpg", + "maxWidth": 640, + "maxHeight": 480, + "maxBitrate": 512, + "forceMax": true, + "audio": false + } +} +``` + +**Additional Information** + +Automation is required to enable the doorbell function: +![](https://user-images.githubusercontent.com/5295141/96009114-8e1ea180-0e40-11eb-986f-559e9f783152.png) + +Not sure "Enhanced Video License" is required for streaming video: +![](https://user-images.githubusercontent.com/5295141/96009267-c0300380-0e40-11eb-806d-2c9d1ca11a2c.png) diff --git a/_configs/Amcrest-IP2M-842E.md b/_configs/Amcrest-IP2M-842E.md new file mode 100644 index 00000000..2a426fb2 --- /dev/null +++ b/_configs/Amcrest-IP2M-842E.md @@ -0,0 +1,42 @@ +--- +title: Amcrest IP2M-842E +comment: POE bullet camera +author: Brian Saycocie +date: 2020-12-04 +--- +**Homebridge Config** + +```json +{ + "name": "Outdoor Camera", + "manufacturer": "Amcrest", + "model": "IP2M-842E", + "serialNumber": "XXXXXXXXXXXXXX", + "firmwareRevision": "2.520.0000.0.R", + "videoConfig": { + "source": "-rtsp_transport tcp -re -i rtsp://username:password@ipaddress:554/cam/realmonitor?channel=1&subtype=0", + "stillImageSource": "-i http://username:password@ipaddress/cgi-bin/snapshot.cgi?chn=1", + "maxStreams": 2, + "maxWidth": 1920, + "maxHeight": 1080, + "maxFPS": 30, + "maxBitrate": 2048, + "vcodec": "libx264 -preset ultrafast", + "audio": false + } +} +``` + +**Additional Information** + +- Based on the [Amcrest IP4M-1026](https://sunoo.github.io/homebridge-camera-ffmpeg/configs/Amcrest-IP4M-1026.html) configuration, slightly modified for this specific camera. + +- The streaming appears to be working on iOS 14.1 and tvOS 14.3. + +- Works on a headless Ubuntu server with those specs, but may want to dial the values down to make it work on a Raspberry Pi e.g.: +```json +"maxWidth": 1280, +"maxHeight": 720, +"maxFPS": 15, +"maxBitrate": 1024, +``` diff --git a/_configs/Besder-POE-720P.md b/_configs/Besder-POE-720P.md new file mode 100644 index 00000000..b4a3a5f0 --- /dev/null +++ b/_configs/Besder-POE-720P.md @@ -0,0 +1,16 @@ +--- +title: Besder POE 720P +author: Liron Ilouz +date: 2020-10-19 +--- +**Homebridge Config** + +```json +{ + "name": "CAM 1", + "manufacturer": "Besder", + "videoConfig": { + "source": "-i rtsp://xxx.xxx.xxx.xxx/user=admin_password=tlJwpbo6_channel=1_stream=0.sdp" + } +} +``` diff --git a/_configs/EzViz-C3-Husky.md b/_configs/EzViz-C3-Husky.md new file mode 100644 index 00000000..1b37ac63 --- /dev/null +++ b/_configs/EzViz-C3-Husky.md @@ -0,0 +1,28 @@ +--- +title: EzViz C3 Husky +comment: settings also work for the CTQ3W +author: Careless 2000 +date: 2020-09-30 +--- +**Homebridge Config** + +```json +{ + "name": "Camera", + "videoConfig": { + "source": "-vcodec h264 -i rtsp://admin:******@192.x.x.x/Streaming/Channels/1", + "stillImageSource": "-i rtsp://admin:*****@192.x.x.x/Streaming/Channels/1/picture", + "vcodec": "copy", + "audio": true, + "maxFPS": 30, + "maxWidth": 1920, + "maxHeight": 1080, + "videoFilter": "none", + "maxBitrate": 1024, + "packetSize": 188, + "maxStreams": 2, + "additionalCommandline": "-x264-params intra-refresh=1:bframes=0 -loglevel verbose", + "debug": true + } +} +``` diff --git a/_configs/Hikvision-DS-2CD2T22WD-I5-and-DS-2CD2322WD-I.md b/_configs/Hikvision-DS-2CD2T22WD-I5-and-DS-2CD2322WD-I.md new file mode 100644 index 00000000..71007130 --- /dev/null +++ b/_configs/Hikvision-DS-2CD2T22WD-I5-and-DS-2CD2322WD-I.md @@ -0,0 +1,21 @@ +--- +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", + "stillImageSource": "http://user:password@192.168.0.2/ISAPI/Streaming/channels/101/picture" + } +} +``` + +**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. The still image Source is not updated automatically on homekit, but the live stream works nice. diff --git a/_configs/Intelbras-im3.md b/_configs/Intelbras-im3.md new file mode 100644 index 00000000..d8326a8c --- /dev/null +++ b/_configs/Intelbras-im3.md @@ -0,0 +1,33 @@ +--- +title: Intelbras im3 +author: pedroxns +date: 2020-11-17 +--- +**Homebridge Config** + +```json +{ + "name": "Babá Eletrônica", + "manufacturer": "Intelbras", + "model": "im3", + "serialNumber": "a1b2c3", + "firmwareRevision": "fw123", + "doorbell": false, + "unbridge": true, + "videoConfig": { + "source": "-i rtsp://admin::554/cam/realmonitor?channel=1&subtype=0", + "stillImageSource": "-i rtsp://admin::554/cam/realmonitor?channel=1&subtype=0", + "maxStreams": 4, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 30, + "maxBitrate": 9001, + "minBitrate": 9000, + "audio": true + } +} +``` + +**Additional Information** + +Intelbras is a Brazilian security system manufacturer, some cameras has RTSP access after enabling ONFIV protocol over the camera app settings. diff --git a/_configs/Jawa-Z_22047.md b/_configs/Jawa-Z_22047.md new file mode 100644 index 00000000..fb04a10a --- /dev/null +++ b/_configs/Jawa-Z_22047.md @@ -0,0 +1,25 @@ +--- +title: Jawa Z_22047 +author: cj-debug +date: 2020-12-26 +--- +**Homebridge Config** + +```json +{ + "name": "Camera Name", + "manufacturer": "Jawa", + "model": "Z_22047", + "firmwareRevision": "1.70", + "videoConfig": { + "source": "-rtsp_transport tcp -i rtsp://admin:password@ipaddress:2600/", + "stillImageSource": "-rtsp_transport tcp rtsp://admin:password@ipaddress:2600.jpg", + "maxStreams": 3, + "maxWidth": 1920, + "maxHeight": 1080, + "vcodec": "libx264", + "audio": true, + "debug": false + } +} +``` diff --git a/_configs/Raspberry-Pi-NoIR-Camera.md b/_configs/Raspberry-Pi-NoIR-Camera.md new file mode 100644 index 00000000..45d497d8 --- /dev/null +++ b/_configs/Raspberry-Pi-NoIR-Camera.md @@ -0,0 +1,34 @@ +--- +title: Raspberry Pi NoIR Camera +comment: OV5647 Chip same as Raspberry Pi Camera V1 +author: Marco Boerner +date: 2020-12-09 +--- +**Homebridge Config** + +```json +{ + "name": "MYCAM 1", + "unbridge": true, + "videoConfig": { + "source": "-re -f video4linux2 -i /dev/video0", + "stillImageSource": "-f video4linux2 -ss 0.9 -i /dev/video0 -vframes 1", + "maxStreams": 2, + "maxWidth": 1920, + "maxHeight": 1080, + "maxFPS": 30, + "maxBitrate": 2048, + "forceMax": true, + "vcodec": "h264_omx", + "encoderOptions": "-preset ultrafast -tune zerolatency" + } +} +``` + +**Additional Information** + +- I installed Homebridge following the Pi Zero instructions on Github. Activated the camera using raspi-config. Installed the Homebridge Camera FFmpeg plugin through the Homebridge site. For performance reasons I deactivated the Pi GUI. + +- The bitrate set to 2048 greatly increased the quality of the stream. A lower value might still be okay, especially when more users are allowed to stream the video. But 299 is too low and for 1080p unusable in my opinion. The encoderOptions helped also a lot. + +- Also I have not managed to get the camera to work in bridged mode, but unbridged is recommended anyways. diff --git a/_configs/Techage-2MP-PoE-NVR.md b/_configs/Techage-2MP-PoE-NVR.md new file mode 100644 index 00000000..398369e1 --- /dev/null +++ b/_configs/Techage-2MP-PoE-NVR.md @@ -0,0 +1,35 @@ +--- +title: Techage 2MP PoE NVR +author: ashtonaut +date: 2020-10-24 +--- +Cheap and very reliable across multiple installs with Homebridge running on Raspberry Pi 3B and 4. + +Purchased from official Techage store on AliExpress. + +[Link](https://www.aliexpress.com/item/32989530341.html) + +I have only tested the 2MP H264 (older) and H265 (newer) PoE cameras (grey cylindrical body). I haven’t tested wifi cameras or the 5MP cameras. One way audio works. + +**Homebridge Config** + +```json +{ + "name": "Camera Name", + "motion": true, + "switches": true, + "videoConfig": { + "source": "-rtsp_transport tcp -re -i rtsp://:554/user=admin&password=&channel=1&stream=0.sdp", + "stillImageSource": "-i http:///webcapture.jpg?command=snap&channel=0", + "audio": true + } +} +``` + +**Additional Information** + +- These cameras can upload snapshots on motion detect directly to a FTP server. I’ve used vsftp as the FTP server on the Pi. + +- To set up, log into the cameras directly using their IP address (you need to use an old version of Internet Explorer, user “admin”, no password) and set up the FTP snapshot location. Then enable FTP upload on motion trigger for each camera. + +- Use a plugin like homebridge-filesensor to watch the folder and trigger motion when a new snapshot is uploaded. diff --git a/_configs/Vivint-Doorbell-Camera-Pro.md b/_configs/Vivint-Doorbell-Camera-Pro.md new file mode 100644 index 00000000..70478f87 --- /dev/null +++ b/_configs/Vivint-Doorbell-Camera-Pro.md @@ -0,0 +1,26 @@ +--- +title: Vivint Doorbell Camera Pro +author: Error404UNF +date: 2020-10-14 +--- +**Homebridge Config** + +```json +{ + "name": "Doorbell", + "manufacturer": "VIVINT", + "model": "DBC300", + "motion": true, + "doorbell": true, + "motionTimeout": 1, + "videoConfig": { + "source": "-rtsp_transport tcp -re -i rtsp://user:XYXYXYXYXYXYXYXYXYXYXYX@10.10.10.10:0000/Video-00", + "vcodec": "copy", + "audio": true + } +} +``` + +**Additional Information** + +2 way audio not included due to WIP state. Ensure you have "showCameraConfig": true in the Vivint platform in config.json, copy the Config from the log in the Homebridge Log, paste into the "source" in the Config. Optional videoConfig Parameters can go anywhere after "source". diff --git a/_configs/Wyze-Cam-Pan-V1.md b/_configs/Wyze-Cam-Pan-V1.md new file mode 100644 index 00000000..8023d9af --- /dev/null +++ b/_configs/Wyze-Cam-Pan-V1.md @@ -0,0 +1,31 @@ +--- +title: Wyze Cam Pan V1 +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. From acfd4b6e1f3a6ad905b2c0de35c441431b1fc896 Mon Sep 17 00:00:00 2001 From: David Maher Date: Thu, 31 Dec 2020 18:52:43 -0500 Subject: [PATCH 16/38] Added #946 --- _configs/Raspberry-Pi-with-Camera-Module.md | 106 ++++++++++++++++++++ _configs/Wyze-Cam-Pan-V1.md | 1 + 2 files changed, 107 insertions(+) create mode 100644 _configs/Raspberry-Pi-with-Camera-Module.md diff --git a/_configs/Raspberry-Pi-with-Camera-Module.md b/_configs/Raspberry-Pi-with-Camera-Module.md new file mode 100644 index 00000000..99595660 --- /dev/null +++ b/_configs/Raspberry-Pi-with-Camera-Module.md @@ -0,0 +1,106 @@ +--- +title: Raspberry Pi with Camera Module +comment: with h264_omx or native h264 +author: moritzmhmk +date: 2020-09-06 +--- + +The following guide assumes that the [Official Homebridge Raspberry Pi Image](https://github.com/homebridge/homebridge-raspbian-image/wiki/Getting-Started) is used and the camera module is activated (e.g. via `raspi-config` *5 Interfacing Options* -> *P1 Camera*). + +The resolution is limited to 720p (i.e. 1280x720) to avoid the cropping when using 1080p mode. + +## Basic Config using h264_omx + +recommended for Raspberry Pi 2 and newer + +### config.json + +```json +{ + "name": "Raspberry Pi Camera", + "videoConfig": { + "source": "-f video4linux2 -i /dev/video0", + "maxStreams": 1, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 30, + "vcodec": "h264_omx" + } +} +``` + + +## Advanced Config using h264_omx to support multiple streams + +Requires Raspberry Pi 2 or newer! + +### Step1: Install v4l2loopback + +`sudo apt install v4l2loopback-dkms` + +### Step2: Adjust GPU RAM split + +Edit `/boot/config.txt` and change `gpu_mem=128` to `gpu_mem=256` (or use `raspi-config`). + +### Step3: Start the loopback device on boot + +Create file `/etc/systemd/system/camera-loopback.service` +```ini +[Unit] +Description=Set up loopback cameras + +[Service] +ExecStartPre=/sbin/modprobe v4l2loopback devices=2 +ExecStart=/usr/local/bin/ffmpeg -f video4linux2 -input_format yuv420p -video_size 1280x720 -i /dev/video0 -codec copy -f v4l2 /dev/video1 +Restart=always +RestartSec=2 + +[Install] +WantedBy=default.target +``` + +Activate with `sudo systemctl enable camera-loopback` and start with `sudo systemctl start camera-loopback`. + +### Step4: configure homebridge + +Use the *Basic Config* (see above) and replace `/dev/video0` with `/dev/video1` and set `maxStreams` to `3` + +*Note: more than three streams tend to crash.* + + +## Native h264 + +Only recommended for Raspberry Pi 1 (A/B/A+/B+) and Raspberry Pi Zero + +Using the native h264 from the camera results in better image quality and lower cpu usage but has some drawbacks: +* resolution is fixed (e.g. 720p) +* bitrate, flip and rotation need to be adjusted separately from the command line (see below) +* streaming to multiple devices is not possible + +Using [homebridge-camera-rpi](https://github.com/moritzmhmk/homebridge-camera-rpi) eliminates the first two drawbacks (*Disclaimer: I am the developer of that plugin*). + +### Prerequisite + +Set bitrate to 300k: `v4l2-ctl --set-ctrl video_bitrate=300000` + +Optionally adjust image orientation: +* Rotate image 180 degrees: `v4l2-ctl --set-ctrl rotate=180` +* Flip image vertically: `v4l2-ctl --set-ctrl vertical_flip=1` +* Flip image horizontally: `v4l2-ctl --set-ctrl horizontal_flip=1` + +### config.json + +```json +{ + "name": "Raspberry Pi Zero Camera", + "videoConfig": { + "source": "-f video4linux2 -input_format h264 -video_size 1280x720 -framerate 30 -timestamps abs -i /dev/video0", + "stillImageSource": "-f video4linux2 -input_format mjpeg -video_size 1280x720 -i /dev/video0", + "maxStreams": 1, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 30, + "vcodec": "copy" + } +} +``` diff --git a/_configs/Wyze-Cam-Pan-V1.md b/_configs/Wyze-Cam-Pan-V1.md index 8023d9af..c758be17 100644 --- a/_configs/Wyze-Cam-Pan-V1.md +++ b/_configs/Wyze-Cam-Pan-V1.md @@ -1,5 +1,6 @@ --- title: Wyze Cam Pan V1 +comment: running on Raspberry Pi 4b author: techeadred date: 2020-12-07 --- From 277b3ce27fe72a2c16aee1c33f6d9dbc7e6a5de9 Mon Sep 17 00:00:00 2001 From: David Maher Date: Thu, 31 Dec 2020 23:19:43 -0500 Subject: [PATCH 17/38] Added Vivint to helper plugin page --- _automation/helpers.md | 1 + 1 file changed, 1 insertion(+) diff --git a/_automation/helpers.md b/_automation/helpers.md index eb85868e..58bfb72f 100644 --- a/_automation/helpers.md +++ b/_automation/helpers.md @@ -13,5 +13,6 @@ Because many cameras do not natively support MQTT or HTTP calls in the format Ho - [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. From ee1ff69853bbcff1979bd67bd25876e01c0596e1 Mon Sep 17 00:00:00 2001 From: David Maher Date: Thu, 31 Dec 2020 23:27:27 -0500 Subject: [PATCH 18/38] Added #925 --- ...rry-Pi-Camera-Module-v2-with-Restreamer.md | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 _configs/Raspberry-Pi-Camera-Module-v2-with-Restreamer.md diff --git a/_configs/Raspberry-Pi-Camera-Module-v2-with-Restreamer.md b/_configs/Raspberry-Pi-Camera-Module-v2-with-Restreamer.md new file mode 100644 index 00000000..f98507cb --- /dev/null +++ b/_configs/Raspberry-Pi-Camera-Module-v2-with-Restreamer.md @@ -0,0 +1,66 @@ +--- +title: Raspberry Pi Camera Module v2 with Restreamer +author: Fabian Leutgeb +date: 2020-12-07 +--- +- [Raspberry Pi Camera Module v2](https://www.raspberrypi.org/products/camera-module-v2/) +- [Raspberry Pi 4 Model B 2GB RAM](https://www.raspberrypi.org/products/raspberry-pi-4-model-b/) +- [Raspberry Pi OS Lite](https://www.raspberrypi.org/software/operating-systems/) (Debian Buster) + +**Homebridge Config** + +Change `` to the value set for Restreamer in the `docker-compose` config below + +```json +{ + "name": "Camera", + "videoConfig": { + "source": "-re -i http://10.0.0.4:/hls/live.stream.m3u8", + "stillImageSource": "-i http://10.0.0.4:/images/live.jpg", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 25, + "maxBitrate": 300, + "packetSize": 1316, + "vcodec": "copy", + "videoFilter": "none", + "audio": false + } +} +``` + +**Additional Information** + +- Docker is required for this setup (see [this guide](https://dev.to/rohansawant/installing-docker-and-docker-compose-on-the-raspberry-pi-in-5-simple-steps-3mgl)) + +- I was using [Restreamer](https://datarhei.github.io/restreamer/docs/guides-raspicam.html) to provide a `rtmp` stream from the camera ([w/o re-encoding it](https://datarhei.github.io/restreamer/docs/guides-encoding.html)) with almost no setup or configuration needed + +- Setting `vcodec` `copy` also in Homebridge was keeping CPU usage very low (at around 10%), as it was not re-encoding the already h264 encoded stream + +- The video via Homebridge was choppy without the `-re` flag in `source` + +**Restreamer `docker-compose` Config** + +Set `` to a port available on the host, e.g., `8080`, and replace `` and `` + +```yml +services: + restreamer: + container_name: restreamer + image: datarhei/restreamer-armv7l:latest + privileged: true + restart: always + environment: + - RS_USERNAME= + - RS_PASSWORD= + - RS_MODE=RASPICAM + - RS_INPUTSTREAM=rtmp://127.0.0.1/live/raspicam.stream + - RS_TIMEZONE=Europe/Vienna + - RS_SNAPSHOT_INTERVAL=1m + ports: + - :8080 + volumes: + - /mnt/restreamer/db:/restreamer/db:rw + - /opt/vc:/opt/vc +``` From 70f99a2ba8e6307ea110bdda12085195c8e551ba Mon Sep 17 00:00:00 2001 From: David Maher Date: Thu, 31 Dec 2020 23:42:42 -0500 Subject: [PATCH 19/38] Added #874 --- _automation/helpers.md | 2 +- _automation/motion.md | 123 ++++++++++++++++++++++++++++ _configs/August-Doorbell-Cam-Pro.md | 31 +++++++ 3 files changed, 155 insertions(+), 1 deletion(-) create mode 100644 _automation/motion.md create mode 100644 _configs/August-Doorbell-Cam-Pro.md diff --git a/_automation/helpers.md b/_automation/helpers.md index 58bfb72f..1feb0ba7 100644 --- a/_automation/helpers.md +++ b/_automation/helpers.md @@ -1,6 +1,6 @@ --- title: Helper Plugins -order: 4 +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. diff --git a/_automation/motion.md b/_automation/motion.md new file mode 100644 index 00000000..d6a00b85 --- /dev/null +++ b/_automation/motion.md @@ -0,0 +1,123 @@ +--- +title: Motion-based Automation +order: 4 +--- +The August doorbell cameras are really slick, but they don’t support HomeKit at all, and their API is not made public. The August app alerts you when motion is detected or the doorbell is rung, and there are some integrations with Google and Amazon, but there’s no HomeKit integration at all. It’s a bit pathetic, really. + +Doorbell-button events can be obtained (from the wired versions of August doorbell cams, at least) by using the doorbell wiring to trigger an input on something like a Sonoff SV with RavenSystem/esp-homekit-devices firmware, or a Raspberry Pi, but video motion events require a software solution. Thankfully, August saw fit to enable a basic RTSP video stream from their doorbell cameras. We can monitor that video stream, at a very low frame rate to keep network traffic to a minimum, detect motion using a lightweight video monitoring application, and send motion events to homebridge via MQTT. This method will actually work for any RTSP stream, but these instructions are specifically for an August Doorbell Cam Pro. + +This is not for the faint of heart. It requires the ability to use command-line UNIX tools, navigate the filesystem, edit configuration files, and more. It is neither point-and-click nor plug-and-play. If that doesn’t scare you, then carry on. + +If you haven’t already, get setup with Homebridge, preferably on a dedicated Raspberry Pi. Install the homebridge-camera-ffmpeg plugin and get your August doorbell cam configured and working there. As part of this setup, you’ll want to be sure to assign a dedicated IP address to the doorbell with your local DHCP server (probably your Internet router). + +Make sure the homebridge-camera-ffmpeg configuration for the doorbell cam looks something like the following, inserting your doorbell cam's actual serial number, IP address, etc. in their respective spots (manufacturer/model/serialNumber are all optional): + +```json +{ + "name": "DoorbellCam", + "manufacturer": "August Home", + "model": "Doorbell Cam Pro", + "serialNumber": "ABCD12345", + "motion": true, + "motionTimeout": 15, + "videoConfig": { + "source": "-i rtsp://admin:admin@192.168.0.10/live/stream", + "stillImageSource": "-i rtsp://admin:admin@192.168.0.10/live/stream -vframes 1 -r 1", + "maxStreams": 2, + "maxWidth": 480, + "maxHeight": 640, + "maxFPS": 10, + "audio": true, + "debug": false + } +} +``` + +You’ll also need an MQTT broker & client: + +`# sudo apt-get install mosquitto mosquitto-clients` + +Edit /etc/mosquitto/mosquitto.conf and set “allow_anonymous true” unless you want to force authentication, in which case you’ll have to dig up that configuration magic yourself. Add your MQTT config to homebridge-camera-ffmpeg per [instructions](https://sunoo.github.io/homebridge-camera-ffmpeg/automation/mqtt.html). + +The lightweight video stream monitoring app is called “Motion”: + +`# sudo apt-get install motion` + +Edit /etc/motion/motion.conf. Find these parameters and set them accordingly, inserting your Doorbell Cam’s IP in the netcam_url string (everything else should be fine at defaults): + +``` +width 480 +height 640 +netcam_url rtsp://192.168.0.10/live/stream +netcam_userpass admin:admin +netcam_keepalive on +text_right '%Y-%m-%d %T' +text_double on +stream_quality 90 +stream_motion on +stream_maxrate 10 +stream_localhost off +on_motion_detected /etc/motion/motion_detected.sh +``` + +This is a very basic no-frills configuration that will monitor your doorbell cam video at 2 fps and run the “motion_detected.sh” shell script when the motion daemon detects motion. For more information on Motion and its configuration, visit [their site](https://motion-project.github.io). Once the motion daemon is running, you can "see what it's seeing" by opening a web browser to http://x.x.x.x:8081 where x.x.x.x is the RPi's IP. Motion runs that MJPEG stream at 1 fps unless motion is detected, at which point it will run at 10 fps. + +To enable motion as a system service (taken from [here](https://raspberrypi.stackexchange.com/questions/41342/how-to-start-motion-in-daemon-mode-on-rpi-running-raspbian-jessie)): + +Edit /etc/default/motion and set “start_motion_daemon=yes” + +Then, + +`# sudo systemctl enable motion` + +Now we need set up the script that Motion will use to trigger camera motion events from the command line. There are multiple ways to do this; the method I chose was taken from [here](https://www.ev3dev.org/docs/tutorials/sending-and-receiving-messages-with-mqtt/) and requires a Python module, paho-mqtt: + +`# sudo pip3 install paho-mqtt` + +Edit /etc/motion/motion_detected.sh and set its contents to the script below, with the following changes: + +1. Set “your-mqtt-topic” to the MQTT Topic value in your homebridge-camera-ffmpeg configuration. +2. Set “DoorbellCam” to the “name” value of your doorbell cam in the homebridge-camera-ffmpeg configuration. + +```python +#!/usr/bin/env python3 +import paho.mqtt.client as mqtt +# This is the Publisher +client = mqtt.Client() +client.connect("localhost",1883,60) +client.publish("your-mqtt-topic/motion", "DoorbellCam"); +client.disconnect(); +``` + +Set permissions on the file: + +`# sudo chmod 755 /etc/motion/motion_detected.sh` + +You can execute the file directly and make sure it triggers a motion event in HomeKit: + +`# sudo /etc/motion/motion_detected.sh` + +Reboot your RPi, and you should start automatically receiving doorbell camera motion events in HomeKit. + +If you want to reduce the streaming load on the Doorbell Cam, which may improve stability, you can set homebridge-camera-ffmpeg to use Motion's MJPEG output as the "source" and/or "stillImageSource". The text_* and stream_* settings in the Motion setup above are tailored for this use. Note that the MJPEG stream does not include audio, so if you use it for "source" you must set `"audio": false` or it won't work: + +```json +{ + "name": "DoorbellCam", + "manufacturer": "August Home", + "model": "Doorbell Cam Pro", + "serialNumber": "ABCD12345", + "motion": true, + "motionTimeout": 15, + "videoConfig": { + "source": "-i http://127.0.0.1:8081", + "stillImageSource": "-i http://127.0.0.1:8081", + "maxStreams": 2, + "maxWidth": 480, + "maxHeight": 640, + "maxFPS": 10, + "audio": false, + "debug": false + } +} +``` diff --git a/_configs/August-Doorbell-Cam-Pro.md b/_configs/August-Doorbell-Cam-Pro.md new file mode 100644 index 00000000..e31d04a0 --- /dev/null +++ b/_configs/August-Doorbell-Cam-Pro.md @@ -0,0 +1,31 @@ +--- +title: August Doorbell Cam Pro +author: jlg89 +date: 2020-11-03 +--- +**Homebridge Config** + +```json +{ + "name": "DoorbellCam", + "manufacturer": "August Home", + "model": "Doorbell Cam Pro", + "serialNumber": "ABCD12345", + "motion": true, + "motionTimeout": 15, + "videoConfig": { + "source": "-i rtsp://admin:admin@192.168.0.10/live/stream", + "stillImageSource": "-i rtsp://admin:admin@192.168.0.10/live/stream -vframes 1 -r 1", + "maxStreams": 2, + "maxWidth": 480, + "maxHeight": 640, + "maxFPS": 10, + "audio": true, + "debug": false + } +} +``` + +**Additional Information** + +[Included](https://sunoo.github.io/homebridge-camera-ffmpeg/automation/motion.html) is a writeup on configuring an RPi with Motion to monitor the RTSP stream from an August Doorbell Cam and generate MQTT motion events in homebridge-camera-ffmpeg. From 8042d3ad5dd75a2b549c86a47b02a5c580c4cbfa Mon Sep 17 00:00:00 2001 From: David Maher Date: Fri, 1 Jan 2021 11:08:47 -0500 Subject: [PATCH 20/38] Updated #958 --- _configs/Hikvision-DS-2CD2T22WD-I5-and-DS-2CD2322WD-I.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/_configs/Hikvision-DS-2CD2T22WD-I5-and-DS-2CD2322WD-I.md b/_configs/Hikvision-DS-2CD2T22WD-I5-and-DS-2CD2322WD-I.md index 71007130..14c34195 100644 --- a/_configs/Hikvision-DS-2CD2T22WD-I5-and-DS-2CD2322WD-I.md +++ b/_configs/Hikvision-DS-2CD2T22WD-I5-and-DS-2CD2322WD-I.md @@ -10,12 +10,11 @@ date: 2020-12-25 { "name": "Camera Front Door", "videoConfig": { - "source": "-i rtsp://user:password@192.168.0.2/ISAPI/Streaming/channels/101/HighResolutionVideo", - "stillImageSource": "http://user:password@192.168.0.2/ISAPI/Streaming/channels/101/picture" + "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. The still image Source is not updated automatically on homekit, but the live stream works nice. +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. From 4cc07f5a7d03d61797022d1947dfa9a876c574c6 Mon Sep 17 00:00:00 2001 From: David Maher Date: Sat, 2 Jan 2021 14:06:19 -0500 Subject: [PATCH 21/38] Added #973 --- _configs/Amcrest-AD110.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 _configs/Amcrest-AD110.md diff --git a/_configs/Amcrest-AD110.md b/_configs/Amcrest-AD110.md new file mode 100644 index 00000000..280fb34a --- /dev/null +++ b/_configs/Amcrest-AD110.md @@ -0,0 +1,31 @@ +--- +title: Amcrest AD110 +author: LiWhit +date: 2021-01-01 +--- +**Homebridge Config** + +```json +{ + "name": "Front Door", + "manufacturer": "Amcrest", + "model": "AD110", + "serialNumber": "XXXXXXXXXXXXX", + "motion": true, + "doorbell": true, + "switches": true, + "unbridge": true, + "videoConfig": { + "source": "-i rtsp://admin:password@X.X.X.X:554/cam/realmonitor?channel=1&subtype=1", + "maxWidth": 0, + "maxHeight": 0, + "maxFPS": 0, + "forceMax": true, + "audio": true + } +} +``` + +**Additional Information** + +Am unable to get the doorbell and motion sensor to work. Video feed is distorted for a second when opening the camera on the Home app. Audio is fine. No two-way audio From 292d8e513ee83e4296279871d7ca5ca4ba4419cd Mon Sep 17 00:00:00 2001 From: David Maher Date: Fri, 12 Feb 2021 16:24:26 -0500 Subject: [PATCH 22/38] Added #987, #998, and #1013 --- _configs/G.Craftsman-5Mp-H.265.md | 24 +++++++++++++++++ _configs/Instar-IN-9008.md | 45 +++++++++++++++++++++++++++++++ _configs/Insteon-2864-2xx.md | 38 ++++++++++++++++++++++++++ 3 files changed, 107 insertions(+) create mode 100644 _configs/G.Craftsman-5Mp-H.265.md create mode 100644 _configs/Instar-IN-9008.md create mode 100644 _configs/Insteon-2864-2xx.md diff --git a/_configs/G.Craftsman-5Mp-H.265.md b/_configs/G.Craftsman-5Mp-H.265.md new file mode 100644 index 00000000..4185bcfe --- /dev/null +++ b/_configs/G.Craftsman-5Mp-H.265.md @@ -0,0 +1,24 @@ +--- +title: G.Craftsman 5Mp H.265 +author: DobriyVasia +date: 2021-01-16 +--- +**Homebridge Config** + +```json +{ + "name": "Калитка", + "videoConfig": { + "source": "-rtsp_transport tcp -i rtsp://admin:12345@192.168.0.144:554/ch01.264?dev=1/live", + "stillImageSource": "-rtsp_transport tcp -i rtsp://admin:12345@192.168.0.144:554/ch01.264?dev=1/live -vframes 1 -r 1", + "vcodec": "copy", + "maxStreams": 2, + "motion": true, + "maxWidth": 2560, + "maxHeight": 1920, + "maxFPS": 15, + "audio": true, + "additionalCommandline": "-protocol_whitelist https,crypto,srtp,rtp,udp" + } +} +``` diff --git a/_configs/Instar-IN-9008.md b/_configs/Instar-IN-9008.md new file mode 100644 index 00000000..65fad4e0 --- /dev/null +++ b/_configs/Instar-IN-9008.md @@ -0,0 +1,45 @@ +--- +title: Instar IN-9008 +author: cnbhl +date: 2021-01-27 +--- +**Homebridge Config** + +```json +{ + "name": "camera name", + "manufacturer": "Instar", + "model": "IN-9008 Full HD", + "videoConfig": { + "source": "-i rtsp://user:password@ddnsadress:554/11", + "stillImageSource": "https://user:password@ddnsadress:8081/tmpfs/snap.jpg", + "maxFPS": 25 + } +} +``` + +**Additional Information** + +[Manufacturer](https://www.instar.com/) + +See also: + +`user`: the user set during camera setup (I assume to use the guest user) +`password`: the password for the user set during camera setup + + + +`ddnsadress`: DDNS adress (default provided by INSTAR via their DDNS service something like _abcd12.ddns3-instar.de_) +`554`: the port set for RTSP inside the camera (ensure port forwarding) +`8081`: the port set for HTTPS inside the camera (ensure port forwarding) + + + +`/11`: stream quality, values {/11,/12,/13} (/11 = 1080p) + +**Alternate MJPEG-Stream** + +An additional MJPEG Stream is also provided by the camera: + +http://ddnsadress:80/cgi-bin/hi3510/mjpegstream.cgi?-chn=11&-usr=user&-pwd=password +_(not tested)_ diff --git a/_configs/Insteon-2864-2xx.md b/_configs/Insteon-2864-2xx.md new file mode 100644 index 00000000..14be96a5 --- /dev/null +++ b/_configs/Insteon-2864-2xx.md @@ -0,0 +1,38 @@ +--- +title: Insteon 2864-2xx +comment: older firmware +author: Steve Jensen +date: 2021-01-10 +--- +**Homebridge Config** + +```json +{ + "name": "Laundry Camera", + "manufacturer": "Insteon", + "model": "2864-222", + "firmwareRevision": "2.11.1", + "motion": false, + "videoConfig": { + "source": "-i http://USER:PASS@CAMERA_IP/cgi-bin/CGIStream.cgi?cmd=GetMJStream&usr=USER&pwd=PASS", + "stillImageSource": "-i http://CAMERA_IP/cgi-bin/CGIProxy.fcgi?usr=USER&pwd=PASS&cmd=snapPicture2", + "maxStreams": 1, + "maxWidth": 640, + "maxHeight": 480, + "maxFPS": 15, + "forceMax": true, + "audio": false + } +} +``` + +**Additional Information** + +Insteon uses Foscam but has their own software loads. Certain camera hardware revisions cannot run their latest software and do not have RTSP support, none of the URL's on iSpyConnect work with the older firmware. So the only option with these very old cameras is to use the GetMJStream command. You can still use the Insteon App to pan and tilt the camera as needed. If you have newest firmware, you should be be able to use the URLs on iSpyConnect ( /videoStream.fcgi or RTSP) + +You likely will have set the stream format to 1 (MJPEG), at least that's the only way I could get it work properly: + +`curl "http://USER:PASS@CAMERA_IP/cgi-bin/CGIProxy.fcgi?cmd=setSubStreamFormat&format=1&usr=USER&pwd=PASS"` + +If you want to tinker directly with the Camera via API, see: + From 2a361c2a27c7820438f5d9dc2f9b293627ef8d8b Mon Sep 17 00:00:00 2001 From: David Maher Date: Tue, 16 Feb 2021 20:09:31 -0500 Subject: [PATCH 23/38] Added #1042 --- _configs/D-Link-DCS-1130.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 _configs/D-Link-DCS-1130.md diff --git a/_configs/D-Link-DCS-1130.md b/_configs/D-Link-DCS-1130.md new file mode 100644 index 00000000..805925e6 --- /dev/null +++ b/_configs/D-Link-DCS-1130.md @@ -0,0 +1,20 @@ +--- +title: D-Link DCS-1130 +author: NicholasB60 +date: 2021-02-16 +--- +## Homebridge Config + +```json +{ + "name": "D-Link Camera", + "videoConfig": { + "source": "-re -f mjpeg -i http://admin:password@localip:port/video/mjpg.cgi", + "stillImageSource": "-i http://admin:password@localip:port/image/jpeg.cgi", + "maxStreams": 2, + "maxWidth": 320, + "maxHeight": 240, + "maxFPS": 30 + } +} +``` From 8b6037bf1ccb1d803f431392aa5effed5c21a9cc Mon Sep 17 00:00:00 2001 From: David Maher Date: Wed, 17 Feb 2021 18:03:38 -0500 Subject: [PATCH 24/38] Added #1043 --- _configs/Foscam-FosBaby.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 _configs/Foscam-FosBaby.md diff --git a/_configs/Foscam-FosBaby.md b/_configs/Foscam-FosBaby.md new file mode 100644 index 00000000..e172f73b --- /dev/null +++ b/_configs/Foscam-FosBaby.md @@ -0,0 +1,26 @@ +--- +title: Foscam FosBaby +author: shortstop-20 +date: 2021-02-17 +--- +**Homebridge Config** + +```json +{ + "name": "Cam1", + "manufacturer": "FOSCAM", + "model": "FOSBABY", + "firmwareRevision": "2.22.2.21_p2", + "motion": true, + "unbridge": false, + "videoConfig": { + "source": "-i rtsp://username:password@10.0.1.9:88/videoMain", + "maxBitrate": 1000, + "audio": true + } +} +``` + +**Additional Information** + + From 18457337231a63bcc98f3109cb719a107b95b0fe Mon Sep 17 00:00:00 2001 From: David Maher Date: Sat, 20 Feb 2021 21:00:17 -0500 Subject: [PATCH 25/38] Update MQTT info --- _automation/mqtt.md | 46 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 41 insertions(+), 5 deletions(-) diff --git a/_automation/mqtt.md b/_automation/mqtt.md index fd49d505..4e390353 100644 --- a/_automation/mqtt.md +++ b/_automation/mqtt.md @@ -4,15 +4,17 @@ 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, or `topic` if you want to change the base topic to something besides the default of `homebridge`. +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 `homebridge/motion` with the camera name as the message. +To trigger the motion sensor publish to topic configured in `motionTopic` using the message defined in `motionMessage`. -If you publish a message with the camera name to `homebridge/motion/reset` 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. +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 `homebridge/doorbell` with the camera name as the message. +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 @@ -20,7 +22,6 @@ Doorbell activation is also available by publishing to topic `homebridge/doorbel { "platform": "Camera-ffmpeg", "mqtt": "127.0.0.1", - "topic": "homebridge", "cameras": [ { "name": "Camera name", @@ -34,6 +35,41 @@ Doorbell activation is also available by publishing to topic `homebridge/doorbel "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" } } ] From e2133d5ab4fbfc200fbccb1ca846a4f44b77af95 Mon Sep 17 00:00:00 2001 From: David Maher Date: Sat, 20 Feb 2021 21:47:38 -0500 Subject: [PATCH 26/38] Remove MQTT helper plugins --- _automation/helpers.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/_automation/helpers.md b/_automation/helpers.md index 1feb0ba7..3d447b6b 100644 --- a/_automation/helpers.md +++ b/_automation/helpers.md @@ -4,11 +4,7 @@ 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. -#### MQTT-based Helper Plugins - -- [homebridge-dafang-mqtt-republish](https://www.npmjs.com/package/homebridge-dafang-mqtt-republish) by Sunoo: Cameras running [Dafang Hacks](https://github.com/EliasKotlyar/Xiaomi-Dafang-Hacks). Can also expose various additional fuctionality of these cameras. - -#### HTTP-based Helper Plugins +#### 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. From 6eb83a9d14588d8c15e650e2d09dd30764e35b27 Mon Sep 17 00:00:00 2001 From: David Maher Date: Thu, 25 Feb 2021 10:29:00 -0500 Subject: [PATCH 27/38] Added #1051 --- _configs/TP-Link-NC230-and-NC250.md | 33 +++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 _configs/TP-Link-NC230-and-NC250.md diff --git a/_configs/TP-Link-NC230-and-NC250.md b/_configs/TP-Link-NC230-and-NC250.md new file mode 100644 index 00000000..bb10ac45 --- /dev/null +++ b/_configs/TP-Link-NC230-and-NC250.md @@ -0,0 +1,33 @@ +--- +title: TP-Link NC230 and NC250 +author: Daniel Berlin +date: 2021-02-25 +--- +**Homebridge Config** + +```json +{ + "name": "Camera", + "videoConfig": { + "source": "-rtsp_transport tcp -re -i rtsp://USERNAME:PASSWORD@CAMERA-IP-OR-HOST/h264_hd.sdp", + "stillImageSource": "-i http://USERNAME:PASSWORD@CAMERA-IP-OR-HOST:8080/stream/snapshot.jpg", + "maxWidth": 0, + "maxHeight": 0, + "maxFPS": 0, + "vcodec": "h264_omx", + "audio": true + } +} +``` + +**Additional Information** + +I achieved the best best quality and least interruptions with the following settings: + +- set the FPS in the camerca config UI to 20 FPS, more FPS lead to interruptions (but YMMV!) + +- set maxFPS, maxWidth and maxHeight to 0 (as shown above), so that the video is not resized and the FPS is not changed; otherwise the (already mediocre) quality becomes absolutely ugly! + +- h264_omx gives the best performance on Raspberry Pis with small quality impact. On non-Pis, you'll probably want to choose another codec + +Audio quality is very bad and I did not find a way to improve it... but it's better than nothing. From 200e3f59dd8a7ce394c3eba7a35aa53b611f0174 Mon Sep 17 00:00:00 2001 From: David Maher Date: Mon, 1 Mar 2021 00:40:20 -0500 Subject: [PATCH 28/38] Added #1055 and #1056 --- _configs/Amcrest-IP2M-841-2.md | 43 +++++++++++++++++++++++ _configs/Wyzecam-V2-2.md | 62 ++++++++++++++++++++++++++++++++++ 2 files changed, 105 insertions(+) create mode 100644 _configs/Amcrest-IP2M-841-2.md create mode 100644 _configs/Wyzecam-V2-2.md diff --git a/_configs/Amcrest-IP2M-841-2.md b/_configs/Amcrest-IP2M-841-2.md new file mode 100644 index 00000000..4a522ce5 --- /dev/null +++ b/_configs/Amcrest-IP2M-841-2.md @@ -0,0 +1,43 @@ +--- +title: Amcrest IP2M-841 +author: kelmers +date: 2021-02-28 +--- +This is to get IP2M-841 cameras streaming to homekit in 1080p, via transcode on a mac, with h264_videotoolbox. + +**Homebridge Config** + +```json +{ + "name": "Driveway", + "unbridge": true, + "videoConfig": { + "source": "-i rtsp://user:password@IPADDRESS:554/cam/realmonitor?channel=1&subtype=0", + "stillImageSource": "-i http://user:password@IPADDRESS/cgi-bin/snapshot.cgi?1", + "maxStreams": 2, + "maxWidth": 1920, + "maxHeight": 1080, + "maxFPS": 30, + "maxBitrate": 8192, + "forceMax": true, + "vcodec": "h264_videotoolbox", + "audio": true + } +} +``` + +**Additional Information** + +To get this working right, login to amcrest web portal for camera to change stream settings. Then click camera and then video (both on left pane). +Under main stream settings, change: + +- Encode mode: H.264H +- Smart Codec OFF +- resolution 1920x1080 +- FPS 30 +- Bit rate : VBR +- Quality 6 Best +- Max bit rate 8192 +- Frame Interval 60 + +Then click save. \ No newline at end of file diff --git a/_configs/Wyzecam-V2-2.md b/_configs/Wyzecam-V2-2.md new file mode 100644 index 00000000..079885b6 --- /dev/null +++ b/_configs/Wyzecam-V2-2.md @@ -0,0 +1,62 @@ +--- +title: Wyzecam V2 +comment: running their rtsp v2 firmware +author: Bluey05 +date: 2021-02-28 +--- +**Homebridge Config** + +```json +{ + "name": "WyzeCam-Garage", + "motion": true, + "videoConfig": { + "source": "-i rtsp://usezrname:password@192.168.188.27/live", + "maxStreams": 1, + "vcodec": "copy", + "packetSize": 188, + "audio": true + } +} +``` + +**Additional Information** + +***Hardware*** + +I have been experimenting with implementing FFmpeg plugin on my homebridge for weeks. + +I used an old mac mini, a more recent mac mini and a windows PC. + +I installed Homebridge on MAC, Windows and Linux Distro's (Tried with Ubuntu, Mint Linux and Debian) + +I have a very good working Homebridge running on an old Intel Mac - 2,0GHz, with 4GB RAM + +***Issues*** + +The issues encountered were; +- very long delay before video was showing (sometimes up to 40 seconds), + +- blurry snapshots on the bottom half of the image due to missed frames. + +I had been using every bit of advise and suggestions, I could find on the internet, adding, adapting and removing FFmpeg parameters, but ultimately found the above JSON config, working almost perfectly. + +***My gestimate on why this works*** + +Why (to my humble knowledge) this one works; + +- Using a domain name, to avoid the use of internal addresses delays the return of video with 10 seconds (in my case) and is actually not required, if you already have a Homepod or AppleTV incorporated in your Homekit setup. It also voids the opening of as many ports as you have cameras... + +- Removing the still image source will force use of the WyzeCam software to produce an image captured from the video stream which is crisp clear and shows no anomalies (Images refreshes almost every 1 to 15 seconds on "MyHome" page of Homekit) + +- setting the "maxstream" to one, made a difference of almost 5 seconds for the video to start playing on my iPhone (Cannot gestimate why, but this setting does not stop me from looking at the same stream from multiple sources) + +- vcopy (explains itself and all tips and tricks found on the intern explain that better than I can) + +- reducing the packet size has made a huge difference for the video stream to start playing + +***Finally after months of trying*** + +In short, I now have crisp clear snapshots, one way audio, motion detection and a video stream, will always start in less than 10 seconds when on premise and between 15 to 20 seconds, when offsite on 4G (depending on 4G signal strength). + +I hope this can help some of you out there. \ No newline at end of file From a08d5b41bbec81f165cb1f435321d2dc0886f992 Mon Sep 17 00:00:00 2001 From: David Maher Date: Wed, 24 Mar 2021 17:09:47 -0400 Subject: [PATCH 29/38] Added #1065, #1068, and #1086 --- _configs/Dahua-N41C2P2-NVR.md | 25 +++++++++++++++++++++++++ _configs/Flashforge-Adventurer-3.md | 28 ++++++++++++++++++++++++++++ _configs/ihoumi-AJ-Cloud-camera.md | 24 ++++++++++++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 _configs/Dahua-N41C2P2-NVR.md create mode 100644 _configs/Flashforge-Adventurer-3.md create mode 100644 _configs/ihoumi-AJ-Cloud-camera.md diff --git a/_configs/Dahua-N41C2P2-NVR.md b/_configs/Dahua-N41C2P2-NVR.md new file mode 100644 index 00000000..8fa36d1b --- /dev/null +++ b/_configs/Dahua-N41C2P2-NVR.md @@ -0,0 +1,25 @@ +--- +title: Dahua N41C2P2 NVR +comment: with N42BJ62 5MP Camera +author: jonsem2 +date: 2021-03-09 +--- +**Homebridge Config** + +```json +{ + "name": "FrontDoor", + "videoConfig": { + "source": "-i rtsp://admin:password@192.168.1.108:554/cam/realmonitor?channel=1&subtype=0" + } +} +``` + +**Additional Information** + +These cameras are connected to a Dahua POE NVR on a isolated network. RTSP stream is being reached by going to NVR LAN address. + +rtsp://:@:/cam/realmonitor?channel=1@subtype=0 +channel:stream channel on NVR;subtype: Code-stream ty[pe, main stream 0, substream 1 + +rtsp://admin:password@192.168.1.108:554/cam/realmonitor?channel=4&subtype=0 diff --git a/_configs/Flashforge-Adventurer-3.md b/_configs/Flashforge-Adventurer-3.md new file mode 100644 index 00000000..7884cc60 --- /dev/null +++ b/_configs/Flashforge-Adventurer-3.md @@ -0,0 +1,28 @@ +--- +title: Flashforge Adventurer 3 +author: Dan Parker +date: 2021-03-08 +--- +**Homebridge Config** + +```json +{ + "name": "Adventurer 3", + "manufacturer": "Flashforge", + "model": "Adventurer 3", + "serialNumber": "1234567890AB", + "firmwareRevision": "1.2.3", + "videoConfig": { + "source": "-f mjpeg -i http://example.com:8080/?action=stream", + "stillImageSource": "-f mjpeg -i http://example.com:8080/?action=stream -vframes 1 -r 1", + "maxWidth": 0, + "maxHeight": 0, + "maxFPS": 0, + "debug": false + } +} +``` + +**Additional Information** + +Likely the same for other Flashforge models with cameras. diff --git a/_configs/ihoumi-AJ-Cloud-camera.md b/_configs/ihoumi-AJ-Cloud-camera.md new file mode 100644 index 00000000..1c9dd847 --- /dev/null +++ b/_configs/ihoumi-AJ-Cloud-camera.md @@ -0,0 +1,24 @@ +--- +title: ihoumi AJ Cloud camera +comment: might also work for wansview cameras +author: Alberto Xamin +date: 2021-03-24 +--- +**Homebridge Config** + +```json +{ + "name": "Cancello Ingresso", + "unbridge": true, + "videoConfig": { + "source": "-rtsp_transport tcp -i rtsp://USERNAME:PASSWORD@IPADDRESS:554/live/ch1" + } +} +``` + +**Additional Information** + +`/live/ch1` is for 720p +`/live/ch0` is for 1080p + +I guess ihoumi is just a reseller for these cameras that use the app AJ Cloud From 7006fdb6bd7e96d87b1cda7c4395b0975cefe7ec Mon Sep 17 00:00:00 2001 From: David Maher Date: Mon, 23 Aug 2021 21:14:03 -0400 Subject: [PATCH 30/38] Added #1114, #1127, #1129, #1137, #1138, #1153, #1155, #1171, #1172, #1173, #1178, and #1181 --- _configs/AirBeam.md | 30 ++++++++++++++++++ _configs/Amcrest-IPM-721W-2.md | 44 +++++++++++++++++++++++++++ _configs/D-Link-DCS-942L.md | 35 +++++++++++++++++++++ _configs/Digoo-BB-M1X.md | 22 ++++++++++++++ _configs/EzViz-C3X.md | 35 +++++++++++++++++++++ _configs/Foscam-R2C.md | 37 ++++++++++++++++++++++ _configs/Hikvision-DS-2CD2423G0-IW.md | 28 +++++++++++++++++ _configs/Raspberry-Pi-HQ-Camera.md | 30 ++++++++++++++++++ _configs/TP-Link-Tapo-C310.md | 18 +++++++++++ _configs/Wyze-Cam-v2-and-Pan.md | 33 ++++++++++++++++++++ _configs/iPCamera.md | 24 +++++++++++++++ _configs/macOS-Screen.md | 26 ++++++++++++++++ 12 files changed, 362 insertions(+) create mode 100644 _configs/AirBeam.md create mode 100644 _configs/Amcrest-IPM-721W-2.md create mode 100644 _configs/D-Link-DCS-942L.md create mode 100644 _configs/Digoo-BB-M1X.md create mode 100644 _configs/EzViz-C3X.md create mode 100644 _configs/Foscam-R2C.md create mode 100644 _configs/Hikvision-DS-2CD2423G0-IW.md create mode 100644 _configs/Raspberry-Pi-HQ-Camera.md create mode 100644 _configs/TP-Link-Tapo-C310.md create mode 100644 _configs/Wyze-Cam-v2-and-Pan.md create mode 100644 _configs/iPCamera.md create mode 100644 _configs/macOS-Screen.md diff --git a/_configs/AirBeam.md b/_configs/AirBeam.md new file mode 100644 index 00000000..66dcc56b --- /dev/null +++ b/_configs/AirBeam.md @@ -0,0 +1,30 @@ +--- +title: AirBeam iOS App +comment: on iPhone 5C running iOS 10.3 +author: lazymoose5 +date: 2021-08-22 +--- +**Homebridge Config** + +```json +{ + "name": "iphone5", + "manufacturer": "Apple", + "model": "iPhone 5C", + "videoConfig": { + "source": "-i http://192.168.3.8/service/camera/video.mjpeg", + "maxStreams": 2, + "maxWidth": 0, + "maxHeight": 0, + "maxFPS": 0, + "audio": false, + "debug": true + } +} +``` + +**Additional Information** + +Video framerate and quality are set in the Air Beam app. + +I am using the Homebridge plugin in TrueNAS 12. Installation of ffmpeg through the shell made it work - as it was not available in the jail by default, use `pkg install ffmpeg` diff --git a/_configs/Amcrest-IPM-721W-2.md b/_configs/Amcrest-IPM-721W-2.md new file mode 100644 index 00000000..88cbdd2a --- /dev/null +++ b/_configs/Amcrest-IPM-721W-2.md @@ -0,0 +1,44 @@ +--- +title: Amcrest IPM-721W +author: FawziD +date: 2021-06-12 +--- +**Homebridge Config** + +```json +{ + "name": "XXXXXX", + "manufacturer": "Amcrest", + "model": "IPM-721W", + "serialNumber": "AMCXXXXXXXXXXXXXXX", + "firmwareRevision": "V2.420.AC00.18.R, Build Date: 2020-02-17", + "unbridge": true, + "videoConfig": { + "source": "-rtsp_transport tcp -i rtsp://admin:XXXXXXXX@192.168.2.XXX/cam/realmonitor?channel=1&subtype=00&authbasic=", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 15, + "maxBitrate": 1024, + "forceMax": false, + "vcodec": "libx264 -preset ultrafast", + "packetSize": 1316, + "encoderOptions": "-async 1 -vsync 1", + "audio": true, + "debug": false + } +} +``` + +**Additional Information** + +After a LOT of trial and error I finally got this working right ! +This Amcrest camera is one of the cheapest PTZ camera available. It's web ui is extremely slow but once it's setup it works fine. + +*The most helpful settings:* +- **encoderOptions** which gives the system a little leeway and not freeze frames that are a little out of sync (I think...). +- **rtsp_transport tcp** setting which limits the transport to TCP only so the receiving end doesn't try to reorder packets received out of order with UDP. +- **vcodec** setting; "copy" or "h264_omx" don't allow -preset ultrafast. It ads some load to the processor (about 14% per stream) but I get the stream's startup delay down to less than 5 seconds. + +And with this, it runs absolutely smoothly ! + diff --git a/_configs/D-Link-DCS-942L.md b/_configs/D-Link-DCS-942L.md new file mode 100644 index 00000000..9779de36 --- /dev/null +++ b/_configs/D-Link-DCS-942L.md @@ -0,0 +1,35 @@ +--- +title: D-Link DCS-942L +author: WaldperlachFabi +date: 2021-05-17 +--- +**Homebridge Config** + +```json +{ + "name": "D-link", + "motionDoorbell": true, + "doorbell": true, + "switches": true, + "videoConfig": { + "stillImageSource": "-i https://xxx.xxx.xxx.xx/image/jpeg.cgi", + "source": "-i rtsp://xxx.xxx.xxx.xx/play1.sdp", + "maxWidth": 640, + "audio": true, + "maxHeight": 480 + }, + "motion": true +} +``` + +xxx.xxx.xxx.xx is the IP address from your camera. + +**Additional Information** + +Please set up in the camera settings that you dont need a password for rtsp stream and the photo. + +Sorry that the photos are in German. But I think you can see what you have to adjust. + +![IMG_2303](https://user-images.githubusercontent.com/80318133/118520280-3c255d80-b73a-11eb-992c-6726d5436fa1.jpeg) + +![IMG_2304](https://user-images.githubusercontent.com/80318133/118520313-42b3d500-b73a-11eb-957b-07f7fa8943b1.jpeg) diff --git a/_configs/Digoo-BB-M1X.md b/_configs/Digoo-BB-M1X.md new file mode 100644 index 00000000..1993b36d --- /dev/null +++ b/_configs/Digoo-BB-M1X.md @@ -0,0 +1,22 @@ +--- +title: Digoo BB-M1X +author: Attila Laszlo +date: 2021-08-13 +--- +**Homebridge Config** + +```json +{ + "name": "Digoo", + "unbridge": true, + "videoConfig": { + "source": "-re -i rtsp://admin:20160404@IPADDRESS:554/onvif1", + "maxWidth": 1280, + "maxHeight": 960 + } +} +``` + +**Additional Information** + +I've included the default user and password, but make sure you change it during the setup of your camera. diff --git a/_configs/EzViz-C3X.md b/_configs/EzViz-C3X.md new file mode 100644 index 00000000..587d4555 --- /dev/null +++ b/_configs/EzViz-C3X.md @@ -0,0 +1,35 @@ +--- +title: EzViz C3X +author: BEskandari +date: 2021-06-18 +--- +**Homebridge Config** + +```json +{ + "name": "Camera", + "manufacturer": "EZVIZ", + "model": "C3X", + "serialNumber": "XXXXXXX", + "firmwareRevision": "5.2.5 build 210511", + "unbridge": true, + "videoConfig": { + "source": "-i rtsp://user:pwd@192.x.x.x/Streaming/Channels/2", + "stillImageSource": "-i rtsp://user:pwd@192.x.x.x/Streaming/Channels/2/picture", + "maxStreams": 2, + "maxWidth": 1920, + "maxHeight": 1080, + "maxFPS": 25, + "maxBitrate": 1024, + "packetSize": 188, + "vcodec": "h264_omx", + "videoFilter": "none", + "audio": true, + "debug": false + } +} +``` + +**Additional Information** + +Configuration on Raspberry Pi 4 diff --git a/_configs/Foscam-R2C.md b/_configs/Foscam-R2C.md new file mode 100644 index 00000000..4ec4bdc9 --- /dev/null +++ b/_configs/Foscam-R2C.md @@ -0,0 +1,37 @@ +--- +title: Foscam R2C +author: shalmi +date: 2021-08-23 +--- +**Homebridge Config** + +```json +{ + "name": "Garage", + "unbridge": false, + "videoConfig": { + "source": "-rtsp_transport tcp -re -i rtsp://USERNAME:PASSWORD@10.0.0.104:88/videoSub", + "maxBitrate": 1000, + "audio": true, + "stillImageSource": "-i http://10.0.0.104:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=USERNAME&pwd=PASSWORD&", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 30 + } +} +``` + +**Additional Information** + +I chose the sub stream. I VERY much doubt that matters. what does matter is the stream settings. On the camera itself, I set the settings for substream to: + +Stream Type: User Defined +Resolution: VGA(640x480) +Bit Rate: 512k +Frame Rate: 15 +Key Frame Interval: 10 + +Those settings are IMPORTANT and are what made this work. I used the app "Foscam VMS" to set those settings on the camera + +Obviously you should change out USERNAME for your username to the cam and PASSWORD for your PASSWORD, as well as changing the ip and port if need be. diff --git a/_configs/Hikvision-DS-2CD2423G0-IW.md b/_configs/Hikvision-DS-2CD2423G0-IW.md new file mode 100644 index 00000000..f74e6f12 --- /dev/null +++ b/_configs/Hikvision-DS-2CD2423G0-IW.md @@ -0,0 +1,28 @@ +--- +title: Hikvision DS-2CD2423G0-IW +author: guzi2007 +date: 2021-07-19 +--- +**Homebridge Config** + +```json +{ + "name": "Camera IP", + "model": "DS-2CD2423G0-IW", + "serialNumber": "XXX:YYY", + "firmwareRevision": "V5.5.83 build 190221", + "unbridge": true, + "videoConfig": { + "source": "-i rtsp://username:password@ipaddress:554", + "maxStreams": 2, + "maxWidth": 800, + "maxHeight": 600, + "maxFPS": 25, + "audio": true + } +} +``` + +**Additional Information** + +If maxWidth or maxHeight is set for more than 800 and 600 respectively or not set at all, the camera does not show the live view. diff --git a/_configs/Raspberry-Pi-HQ-Camera.md b/_configs/Raspberry-Pi-HQ-Camera.md new file mode 100644 index 00000000..c5b876f8 --- /dev/null +++ b/_configs/Raspberry-Pi-HQ-Camera.md @@ -0,0 +1,30 @@ +--- +title: Raspberry Pi HQ Camera +comment: with Logitech C525 (for sound only) +author: hylkefaber +date: 2021-08-14 +--- +**Homebridge Config** + +```json +{ + "name": "HQ cam", + "unbridge": true, + "videoConfig": { + "source": "-re -f video4linux2 -input_format mjpeg -i /dev/video2 -f alsa -ac 1 -i hw:CARD=C525,DEV=0", + "stillImageSource": "-f video4linux2 -ss 0.9 -i /dev/video2 -vframes 1", + "maxStreams": 3, + "maxFPS": 30, + "forceMax": false, + "encoderOptions": "-preset ultrafast -tune zerolatency", + "audio": true, + "debug": false + } +} +``` + +**Additional Information** + +Adding the C525 changes the address of the HQ cam from /dev/video0 to /dev/video2, so keep that in mind! + +I did a write-up [on Reddit](https://www.reddit.com/r/homebridge/comments/p45wb5/making_a_baby_cam_with_the_raspberry_pi_hq_cam/). diff --git a/_configs/TP-Link-Tapo-C310.md b/_configs/TP-Link-Tapo-C310.md new file mode 100644 index 00000000..31bf3ab2 --- /dev/null +++ b/_configs/TP-Link-Tapo-C310.md @@ -0,0 +1,18 @@ +--- +title: TP-Link Tapo C310 +author: githubwyllie +date: 2021-08-16 +--- +**Homebridge Config** + +```json +{ + "name": "Tapo C310", + "motion": true, + "doorbell": true, + "videoConfig": { + "source": "-i rtsp://USER:PASSWORD@IP:554/stream1", + "audio": true + } +} +``` diff --git a/_configs/Wyze-Cam-v2-and-Pan.md b/_configs/Wyze-Cam-v2-and-Pan.md new file mode 100644 index 00000000..3506af74 --- /dev/null +++ b/_configs/Wyze-Cam-v2-and-Pan.md @@ -0,0 +1,33 @@ +--- +title: Wyze Cam v2 and Pan +author: recoi1er +date: 2021-04-22 +--- +**Homebridge Config** + +```json +{ + "name": "CAMERA NAME", + "manufacturer": "Wyze", + "model": "Wyze Cam v2 OR Pan", + "serialNumber": "SERIAL#", + "firmwareRevision": "VERSION#", + "unbridge": false, + "videoConfig": { + "source": "-rtsp_transport tcp -i rtsp://USER:PASS@IP/live", + "stillImageSource": "-rtsp_transport tcp -i rtsp://USER:PASS@IP/live -vframes 1 -r 1", + "additionalCommandline": "-protocol_whitelist https,crypto,srtp,rtp,udp", + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 15, + "maxStreams": 2, + "audio": true, + "vcodec": "copy", + "motion": true + } +} +``` + +**Additional Information** + +"unbridge" is recommend in the plugin configuration but I could get not any camera to appear in HomeKit until I after I set it to false (or removed it from config), I tested it on bare bones where I removed most of the settings listed above to make sure none of them were in conflict. diff --git a/_configs/iPCamera.md b/_configs/iPCamera.md new file mode 100644 index 00000000..b8c9fe51 --- /dev/null +++ b/_configs/iPCamera.md @@ -0,0 +1,24 @@ +--- +title: iPCamera - High-End NetworkCam (iOS App) +author: kalebakeits +date: 2021-05-16 +--- +**Homebridge Config** + +```json +{ + "name": "Bedroom View", + "videoConfig": { + "source": "-i http://10.211.xxx.xxx/live", + "stillImageSource": "-i http://10.211.xxx.xxx/live", + "maxStreams": 2, + "maxWidth": 480, + "maxHeight": 360, + "maxFPS": 30 + } +} +``` + +**Additional Information** + +You don't need to specify a port for this camera just http://{camera ip}/live. I am using mine without a password at the moment so I cannot advise on that. I know it is risky. diff --git a/_configs/macOS-Screen.md b/_configs/macOS-Screen.md new file mode 100644 index 00000000..5c4c8a41 --- /dev/null +++ b/_configs/macOS-Screen.md @@ -0,0 +1,26 @@ +--- +title: macOS Screen +author: crbyxwpzfl +date: 2021-07-16 +--- +**Homebridge Config** + +```json +{ + "name": "test", + "unbridge": false, + "videoConfig": { + "source": "-f avfoundation -i 0", + "maxStreams": 2, + "encoderOptions": "-preset ultrafast", + "audio": false, + "debug": true + } +} +``` + +**Additional Information** + +Tested with Homebridge on macOS Big Sur. + +For some reason the stream does not work with `"encoderOptions": "-preset ultrafast -tune zerolatency"`, everything except the stream works with this default encoder options even the debug output looks the same just the stream never starts. From 69907456a4da9516f8efb8dab872806631add20e Mon Sep 17 00:00:00 2001 From: David Maher Date: Mon, 23 Aug 2021 21:20:34 -0400 Subject: [PATCH 31/38] Formatting --- _configs/Foscam-R2C.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_configs/Foscam-R2C.md b/_configs/Foscam-R2C.md index 4ec4bdc9..621d26df 100644 --- a/_configs/Foscam-R2C.md +++ b/_configs/Foscam-R2C.md @@ -26,11 +26,13 @@ date: 2021-08-23 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 From 7e83d757864bcdab6b19132760ef949821e272bf Mon Sep 17 00:00:00 2001 From: Agneev Mukherjee <19761269+agneevX@users.noreply.github.com> Date: Thu, 2 Sep 2021 22:41:25 +0530 Subject: [PATCH 32/38] Add more details to D-Link DCS-933L config (#1187) --- _configs/D-Link-DCS-933L.md | 94 +++++++++++++++++++++++++++---------- 1 file changed, 70 insertions(+), 24 deletions(-) diff --git a/_configs/D-Link-DCS-933L.md b/_configs/D-Link-DCS-933L.md index 5cf3a41a..5fab34d7 100644 --- a/_configs/D-Link-DCS-933L.md +++ b/_configs/D-Link-DCS-933L.md @@ -1,35 +1,81 @@ --- -title: D-Link DCS 933L +title: D-Link DCS-933L author: Agneev Mukherjee -date: 2020-08-24 +date: 2021-09-02 --- -## Homebridge Config +## 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 { - "name": "Front Gate Camera", - "manufacturer": "D-Link", - "model": "DCS-933L", - "firmwareRevision": "1.15.01", - "motion": false, - "videoConfig": { - "source": "-re -f mjpeg -i http://username:password@10.0.0.20/mjpeg.cgi -i http://username:password@10.0.0.20/audio.cgi", - "stillImageSource": "-i http://username:password@10.0.0.20/image/jpeg.cgi", - "maxStreams": 6, - "maxWidth": 0, - "maxHeight": 0, - "maxFPS": 0, - "maxBitrate": 6000, - "forceMax": true, - "preserveRatio": true, - "vcodec": "h264_omx", - "mapaudio": "1:0", - "audio": true, - "debug": false - } + "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. There is a delay while using audio, so turn it off if it's not very important. +Tested on Raspberry Pi 4 running Ubuntu 20.04 (64-bit). From 537123cfa908430f9c92d7939e68ee5e57a81301 Mon Sep 17 00:00:00 2001 From: David Maher Date: Fri, 10 Sep 2021 21:43:23 -0400 Subject: [PATCH 33/38] Added #1190 and #1191 --- _configs/AirBeam-2.md | 76 +++++++++++++++++++++++++++ _configs/Hikvision-DS-2CD2542FWD-I.md | 19 +++++++ 2 files changed, 95 insertions(+) create mode 100644 _configs/AirBeam-2.md create mode 100644 _configs/Hikvision-DS-2CD2542FWD-I.md diff --git a/_configs/AirBeam-2.md b/_configs/AirBeam-2.md new file mode 100644 index 00000000..e13d9960 --- /dev/null +++ b/_configs/AirBeam-2.md @@ -0,0 +1,76 @@ +--- +title: AirBeam iOS App +comment: with Audio and Motion Detection Support via mqtt +author: jotzet79 +date: 2021-09-10 +--- +**Homebridge Config:** + +```json +{ + "name": "Phone Cam", + "model": "AirBeam on iPhone 4S / iOS 9.3", + "serialNumber": "0123456789", + "motion": true, + "switches": true, + "motionTimeout": 5, + "unbridge": true, + "videoConfig": { + "source": "-use_wallclock_as_timestamps 1 -thread_queue_size 1024 -re -probesize 32 -analyzeduration 0 -i http://[IP_ADDRESS:PORT]/service/camera/video.mjpeg -fflags nobuffer -probesize 32 -analyzeduration 0 -i http://[IP_ADDRESS:PORT]/service/camera/audio.aac", + "stillImageSource": "-re -probesize 32 -analyzeduration 0 -i http://[IP_ADDRESS:PORT]/service/camera/video.mjpeg", + "maxFPS": 10, + "forceMax": true, + "packetSize": 188, + "encoderOptions": "-preset ultrafast -tune zerolatency", + "audio": true, + "debug": false + }, + "mqtt": { + "motionTopic": "homebridge/camera-ffmpeg/Phone%20Cam/motionDetected", + "motionMessage": "yes", + "motionResetTopic": "homebridge/camera-ffmpeg/Phone%20Cam/motionDetected", + "motionResetMessage": "no" + } +} +``` + +**Additional Information:** + +### Features + - Audio + - Motion Detection + - Video ;-) + +### Settings in AirBeam +- Camera + - Activate Audio / Video + - Format: High + - Limit Frame Rate: 10FPS + - No Overlays / AutoFocus / Mirror + +- Streaming + - Video: Motion JPEG (H264 Setting is useless; App always outputs MJPEG) + - Audio: AAC + - Video Resolution: 50% + - Quality: 50% + - No UDP + + +### Node-RED Flow for listening to AirBeam's MotionDetected Events + - Flow AirBeamConnectableFlow + - Configurable Array of Cameras + - Detect if Camera devices (= Phones) are not reachable (e.g. if not connected to WiFi), and setting global value + - Detet if Video / Audio / Motion service (= AirBeam) is not consumable (e.g. if app is not running), and setting global value + ![Node-RED Flow AirBeamConnectableFlow](https://user-images.githubusercontent.com/44292689/132904112-fa79a5b0-642e-4a13-9638-682f593533b5.png) + + - 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 Flow AirBeamMotionDetection](https://user-images.githubusercontent.com/44292689/132904121-30f3fd37-39e9-4db0-bcf6-b19e0d7d20e8.png) + +[Node-RED_AirBeamCameraMotionDetectionFlow.flow.txt](https://github.com/Sunoo/homebridge-camera-ffmpeg/files/7145917/Node-RED_AirBeamCameraMotionDetectionFlow.flow.txt) + +Latency when opening the stream is BLAZING fast now (even a bit better than my native Logitech Circle 2 Cams), delays / lags are <1s, and the audio is properly in sync with video (was the biggest "issue"). + +Running smooth on Raspberry 4b, OS 32bit / RAM 4GB: +Raspi's Load is 60% / Temp is around 75°C when running 2 camera streams simultaneously (8% / ~60-65°C in normal operation mode). diff --git a/_configs/Hikvision-DS-2CD2542FWD-I.md b/_configs/Hikvision-DS-2CD2542FWD-I.md new file mode 100644 index 00000000..0fbea03e --- /dev/null +++ b/_configs/Hikvision-DS-2CD2542FWD-I.md @@ -0,0 +1,19 @@ +--- +title: Hikvision DS-2CD2542FWD-I +author: Albilia +date: 2021-09-09 +--- +**Homebridge Config** + +```json +{ + "name": "Hikvision", + "model": "DS-2CD2542FWD-I", + "serialNumber": "DS-2CD2542FWD-I20180319BBWRC10320726", + "firmwareRevision": "V5.5.5 build 180111", + "unbridge": false, + "videoConfig": { + "source": "-i rtsp://admin:hvi12345@192.168.1.188:554" + } +} +``` From a75d31dc0db7b112a4b0b1f79d505a0491daa8f8 Mon Sep 17 00:00:00 2001 From: David Maher Date: Sun, 27 Mar 2022 08:30:43 -0400 Subject: [PATCH 34/38] Added #1183, #1204, #1206, #1207, #1213, #1214 --- _configs/Amcrest-IP3M-943B.md | 38 +++++++++++++++++++++++++++ _configs/Amcrest-IP8M-2496EB.md | 19 ++++++++++++++ _configs/Logitech-C270-webcam.md | 29 +++++++++++++++++++++ _configs/Night-Owl-2.W.md | 28 ++++++++++++++++++++ _configs/TP-Link-Tapo-C200.md | 44 ++++++++++++++++++++++++++++++++ _configs/WyzeCam.md | 34 ++++++++++++++++++++++++ 6 files changed, 192 insertions(+) create mode 100644 _configs/Amcrest-IP3M-943B.md create mode 100644 _configs/Amcrest-IP8M-2496EB.md create mode 100644 _configs/Logitech-C270-webcam.md create mode 100644 _configs/Night-Owl-2.W.md create mode 100644 _configs/TP-Link-Tapo-C200.md create mode 100644 _configs/WyzeCam.md diff --git a/_configs/Amcrest-IP3M-943B.md b/_configs/Amcrest-IP3M-943B.md new file mode 100644 index 00000000..77711e62 --- /dev/null +++ b/_configs/Amcrest-IP3M-943B.md @@ -0,0 +1,38 @@ +--- +title: Amcrest IP3M-943B +comment: Working with Motion and MotionDoorbell +author: Brad Downey +date: 2021-08-24 +--- +**Homebridge Config** + +```json +{ + "name": "Front Door Camera", + "manufacturer": "Amcrest", + "model": "IP3M-943B", + "motion": true, + "doorbell": true, + "motionTimeout": 0, + "motionDoorbell": true, + "unbridge": true, + "videoConfig": { + "source": "-i rtsp://admin:admin@192.168.128.123/cam/realmonitor?channel=1&subtype=0", + "stillImageSource": "-i http://admin:admin@192.168.128.123/cgi-bin/snapshot.cgi?chan=1", + "maxWidth": 0, + "maxHeight": 0, + "maxFPS": 0, + "maxBitrate": 2048, + "forceMax": true, + "vcodec": "copy", + "audio": false, + "debug": false + } +} +``` + +**Additional Information** + +`dahua-alerts` reaches out to each camera at `/cgi-bin/eventManager.cgi?action=attach&codes=[VideoMotion]'` and the camera will send a notification when motion is detected. `dahua-alerts` will then send an http post to the http motion detection for `Camera-ffmpeg` + +I'm even getting Doorbell alerts on my Apple TV. So Cool!! diff --git a/_configs/Amcrest-IP8M-2496EB.md b/_configs/Amcrest-IP8M-2496EB.md new file mode 100644 index 00000000..1a0f9c28 --- /dev/null +++ b/_configs/Amcrest-IP8M-2496EB.md @@ -0,0 +1,19 @@ +--- +title: Amcrest IP8M-2496EB +comment: 4K POE Camera +author: MatthewKovalcik +date: 2021-09-29 +--- +**Homebridge Config** + +```json +{ + "name": "Front Door", + "unbridge": true, + "videoConfig": { + "source": "-i rtsp://USERNAME:PASSWORD@INTERNALIP:554/cam/realmonitor?channel=1&subtype=0", + "maxWidth": 1920, + "maxHeight": 1080 + } +} +``` diff --git a/_configs/Logitech-C270-webcam.md b/_configs/Logitech-C270-webcam.md new file mode 100644 index 00000000..90c5d5d3 --- /dev/null +++ b/_configs/Logitech-C270-webcam.md @@ -0,0 +1,29 @@ +--- +title: Logitech C270 webcam +author: CodingDog +date: 2020-09-27 +--- +**Homebridge Config** + +```json +{ + "name": "C270", + "manufacturer": "Logitech", + "model": "C270", + "videoConfig": { + "source": "-re -r 30 -s 1280x720 -f video4linux2 -i /dev/video0", + "stillImageSource": "-s 1280x720 -f video4linux2 -i /dev/video0", + "maxStreams": 2, + "maxWidth": 1280, + "maxHeight": 720, + "vcodec": "h264_omx", + "packetSize": 188, + "audio": false, + "debug": false + } +} +``` + +**Additional Information** + +I tested all of the Logitech configurations and none of them would work except when combining it with the source from the raspberry pi cam v2, maybe mine's just finicky. diff --git a/_configs/Night-Owl-2.W.md b/_configs/Night-Owl-2.W.md new file mode 100644 index 00000000..af0dc596 --- /dev/null +++ b/_configs/Night-Owl-2.W.md @@ -0,0 +1,28 @@ +--- +title: Night Owl 2.W +comment: (WNVR201 Series) +author: Luis Ramos +date: 2021-10-01 +--- +**Homebridge Config** + +```json +{ + "name": "Front Door", + "manufacturer": "NightOwl SP", + "unbridge": true, + "videoConfig": { + "source": "-i http://[IP]:80/cgi-bin/sp.cgi?chn=[CHANNEL]&u=[USER]&p=[PASSWORD]", + "stillImageSource": "-i http://[USER]:[PASSWORD]@[IP]/cgi-bin/snapshot.cgi?chn=[CHANNEL]&u=[USER]&p=[PASSWORD]", + "maxStreams": 2, + "maxWidth": 1920, + "maxHeight": 1080, + "maxFPS": 0, + "audio": false + } +} +``` + +**Additional Information** + +You can try setting the video codec to `h264_omx` but I've found the default `libx264` to be more reliable. Audio is not supported. diff --git a/_configs/TP-Link-Tapo-C200.md b/_configs/TP-Link-Tapo-C200.md new file mode 100644 index 00000000..0d447aa7 --- /dev/null +++ b/_configs/TP-Link-Tapo-C200.md @@ -0,0 +1,44 @@ +--- +title: TP Link Tapo C200 +comment: with motion detection +author: mihailescu2m +date: 2021-10-10 +--- +**Homebridge Config** + +```json +{ + "name": "Tapo-1", + "manufacturer": "Tp-Link", + "model": "C200", + "serialNumber": "2001", + "unbridge": true, + "motion": true, + "motionTimeout": 0, + "videoConfig": { + "source": "-rtsp_transport tcp -re -i rtsp://[USER]:[PASS]@[CAM.IP]:554/stream2", + "stillImageSource": "-i rtsp://[USER]:[PASS]@[CAM.IP]:554/stream2", + "maxWidth": 640, + "maxHeight": 480, + "maxFPS": 15, + "maxBitrate": 384, + "forceMax": true, + "vcodec": "copy", + "audio": true + }, + "mqtt": { + "motionTopic": "onvif2mqtt/Tapo-1/motion", + "motionMessage": "ON", + "motionResetTopic": "onvif2mqtt/Tapo-1/motion", + "motionResetMessage": "OFF" + } +} +``` + +**Additional Information** + +Motion detection set up using onvif2mqtt. + +~3s delay for the 640x480 stream (stream2). + +In the debug info, Getting the first frames took usually shows ~3s. diff --git a/_configs/WyzeCam.md b/_configs/WyzeCam.md new file mode 100644 index 00000000..126040ac --- /dev/null +++ b/_configs/WyzeCam.md @@ -0,0 +1,34 @@ +--- +title: Wyze Cam v2/v3/pan/doorbell/outdoor +comment: on docker-wyze-bridge +author: mrlt8 +date: 2021-09-29 +--- +**Homebridge Config** + +```json +{ + "name": "CAM_NAME", + "manufacturer": "WyzeCam", + "model": "WYZE_CAKP2JFUS", + "unbridge": true, + "videoConfig": { + "source": "-i rtsp://:8554/cam-name", + "vcodec": "copy" + } +} +``` + +**Additional Information** + +docker-wyze-bridge does not support audio at this time. + +Depending on your config, you may want to rotate the doorbell cam in homebridge with hardware acceleration, which can be done by specifying your `vcodec` of choice and setting `videoFilter` to `transpose=1`: + +```json +"videoConfig": { + "source": "-i rtsp://10.0.0.10:8554/front", + "vcodec": "libx264", + "videoFilter": "transpose=1" +} +``` From 721a02336ed577e3e12c35380b5413bcd93c1e80 Mon Sep 17 00:00:00 2001 From: David Maher Date: Sun, 27 Mar 2022 08:33:58 -0400 Subject: [PATCH 35/38] Formatting --- Gemfile.lock | 222 ++++++++++++++++++++++++++------------------ _configs/WyzeCam.md | 2 +- configs.md | 10 +- 3 files changed, 134 insertions(+), 100 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 7d00b99d..22feb457 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,13 +1,13 @@ GEM remote: https://rubygems.org/ specs: - activesupport (6.0.3.2) + 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.7.0) + addressable (2.8.0) public_suffix (>= 2.0.2, < 5.0) coffee-script (2.4.1) coffee-script-source @@ -16,84 +16,107 @@ GEM colorator (1.1.0) commonmarker (0.17.13) ruby-enum (~> 0.5) - concurrent-ruby (1.1.6) - dnsruby (1.61.3) - addressable (~> 2.5) - em-websocket (0.5.1) + 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.6.0) - ethon (0.12.0) - ffi (>= 1.3.0) + http_parser.rb (~> 0) + ethon (0.15.0) + ffi (>= 1.15.0) eventmachine (1.2.7) - execjs (2.7.0) - faraday (1.0.1) + 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) - ffi (1.13.1) + 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 (206) - github-pages-health-check (= 1.16.1) - jekyll (= 3.8.7) + 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.13.0) + jekyll-feed (= 0.15.1) jekyll-gist (= 1.5.0) jekyll-github-metadata (= 2.13.0) - jekyll-mentions (= 1.5.1) + 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.15.0) + jekyll-redirect-from (= 0.16.0) jekyll-relative-links (= 0.6.1) - jekyll-remote-theme (= 0.4.1) + jekyll-remote-theme (= 0.4.3) jekyll-sass-converter (= 1.5.2) - jekyll-seo-tag (= 2.6.1) + jekyll-seo-tag (= 2.7.1) jekyll-sitemap (= 1.4.0) jekyll-swiss (= 1.0.0) - jekyll-theme-architect (= 0.1.1) - jekyll-theme-cayman (= 0.1.1) - jekyll-theme-dinky (= 0.1.1) - jekyll-theme-hacker (= 0.1.1) - jekyll-theme-leap-day (= 0.1.1) - jekyll-theme-merlot (= 0.1.1) - jekyll-theme-midnight (= 0.1.1) - jekyll-theme-minimal (= 0.1.1) - jekyll-theme-modernist (= 0.1.1) - jekyll-theme-primer (= 0.5.4) - jekyll-theme-slate (= 0.1.1) - jekyll-theme-tactile (= 0.1.1) - jekyll-theme-time-machine (= 0.1.1) + 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.11.1) - kramdown (= 1.17.0) + 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.10.4, < 2.0) - rouge (= 3.19.0) + nokogiri (>= 1.12.5, < 2.0) + rouge (= 3.26.0) terminal-table (~> 1.4) - github-pages-health-check (1.16.1) + github-pages-health-check (1.17.9) addressable (~> 2.3) dnsruby (~> 1.60) octokit (~> 4.0) - public_suffix (~> 3.0) + public_suffix (>= 3.0, < 5.0) typhoeus (~> 1.3) - html-pipeline (2.13.0) + html-pipeline (2.14.0) activesupport (>= 2) nokogiri (>= 1.4) - http_parser.rb (0.6.0) + http_parser.rb (0.8.0) i18n (0.9.5) concurrent-ruby (~> 1.0) - jekyll (3.8.7) + 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.14) + kramdown (>= 1.17, < 3) liquid (~> 4.0) mercenary (~> 0.3.3) pathutil (~> 0.9) @@ -113,14 +136,16 @@ GEM rouge (>= 2.0, < 4.0) jekyll-default-layout (0.1.4) jekyll (~> 3.0) - jekyll-feed (0.13.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-mentions (1.5.1) + 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) @@ -128,97 +153,105 @@ GEM jekyll-paginate (1.1.0) jekyll-readme-index (0.3.0) jekyll (>= 3.0, < 5.0) - jekyll-redirect-from (0.15.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.1) + jekyll-remote-theme (0.4.3) addressable (~> 2.0) jekyll (>= 3.5, < 5.0) - rubyzip (>= 1.3.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.6.1) - jekyll (>= 3.3, < 5.0) + 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.1.1) - jekyll (~> 3.5) + jekyll-theme-architect (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-cayman (0.1.1) - jekyll (~> 3.5) + jekyll-theme-cayman (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-dinky (0.1.1) - jekyll (~> 3.5) + jekyll-theme-dinky (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-hacker (0.1.1) - jekyll (~> 3.5) + jekyll-theme-hacker (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-leap-day (0.1.1) - jekyll (~> 3.5) + jekyll-theme-leap-day (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-merlot (0.1.1) - jekyll (~> 3.5) + jekyll-theme-merlot (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-midnight (0.1.1) - jekyll (~> 3.5) + jekyll-theme-midnight (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-minimal (0.1.1) - jekyll (~> 3.5) + jekyll-theme-minimal (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-modernist (0.1.1) - jekyll (~> 3.5) + jekyll-theme-modernist (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-primer (0.5.4) + 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.1.1) - jekyll (~> 3.5) + jekyll-theme-slate (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-tactile (0.1.1) - jekyll (~> 3.5) + jekyll-theme-tactile (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-time-machine (0.1.1) - jekyll (~> 3.5) + 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.11.1) + jemoji (0.12.0) gemoji (~> 3.0) html-pipeline (~> 2.2) jekyll (>= 3.0, < 5.0) - kramdown (1.17.0) + kramdown (2.3.1) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) liquid (4.0.3) - listen (3.2.1) + 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.4.0) + 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.14.1) + minitest (5.15.0) multipart-post (2.1.1) - nokogiri (1.10.10) - mini_portile2 (~> 2.4.0) - octokit (4.18.0) + 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 (3.1.1) - rb-fsevent (0.10.4) + public_suffix (4.0.6) + racc (1.6.0) + rb-fsevent (0.11.1) rb-inotify (0.10.1) ffi (~> 1.0) - rouge (3.19.0) - ruby-enum (0.8.0) + rexml (3.2.5) + rouge (3.26.0) + ruby-enum (0.9.0) i18n - rubyzip (2.3.0) + ruby2_keywords (0.0.5) + rubyzip (2.3.2) safe_yaml (1.0.5) sass (3.7.4) sass-listen (~> 4.0.0) @@ -228,18 +261,23 @@ GEM 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.7) + tzinfo (1.2.9) thread_safe (~> 0.1) - tzinfo-data (1.2020.1) + tzinfo-data (1.2022.1) tzinfo (>= 1.0.0) - unicode-display_width (1.7.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.4.0) + zeitwerk (2.5.4) PLATFORMS ruby diff --git a/_configs/WyzeCam.md b/_configs/WyzeCam.md index 126040ac..e581780e 100644 --- a/_configs/WyzeCam.md +++ b/_configs/WyzeCam.md @@ -1,5 +1,5 @@ --- -title: Wyze Cam v2/v3/pan/doorbell/outdoor +title: Wyze Cam v2 / v3 / Pan / Doorbell / Outdoor comment: on docker-wyze-bridge author: mrlt8 date: 2021-09-29 diff --git a/configs.md b/configs.md index 23ba6140..3f4cd83c 100644 --- a/configs.md +++ b/configs.md @@ -12,11 +12,7 @@ Keep in mind that many configs on this site were written for older versions of t Users have submitted {{ site.configs | size }} configurations: {% assign collection = site.configs | sort_natural:"title" %} -
    + {% for config in collection %} -
  • - {{ config.title }} - {% if config.comment %}{% endif %} -
  • -{% endfor %} -
++ [{{ config.title }}]({{ site.baseurl }}{{ config.url }}){% if config.comment %} +*{{ config.comment }}*{% endif %}{% endfor %} From d778087e7e08f94a29563e1f1f94c7747751956b Mon Sep 17 00:00:00 2001 From: David Maher Date: Sun, 27 Mar 2022 10:48:39 -0400 Subject: [PATCH 36/38] Added #1214, #1216, #1217, #1227, #1233, #1234 --- _configs/AVYCon-DVR-AVR-HN808P8.md | 23 ++++++++++++++++++++ _configs/Blue-Iris-2.md | 28 ++++++++++++++++++++++++ _configs/H.View-HV-E800A.md | 22 +++++++++++++++++++ _configs/TP-Link-Tapo-C200.md | 2 +- _configs/ThomView-DSC-725S.md | 27 +++++++++++++++++++++++ _configs/Toadi-Automatic-Mower.md | 30 +++++++++++++++++++++++++ _configs/Wyze-Cam-v3.md | 35 ++++++++++++++++++++++++++++++ 7 files changed, 166 insertions(+), 1 deletion(-) create mode 100644 _configs/AVYCon-DVR-AVR-HN808P8.md create mode 100644 _configs/Blue-Iris-2.md create mode 100644 _configs/H.View-HV-E800A.md create mode 100644 _configs/ThomView-DSC-725S.md create mode 100644 _configs/Toadi-Automatic-Mower.md create mode 100644 _configs/Wyze-Cam-v3.md diff --git a/_configs/AVYCon-DVR-AVR-HN808P8.md b/_configs/AVYCon-DVR-AVR-HN808P8.md new file mode 100644 index 00000000..19e37458 --- /dev/null +++ b/_configs/AVYCon-DVR-AVR-HN808P8.md @@ -0,0 +1,23 @@ +--- +title: AVYCon DVR AVR-HN808P8 +author: Rob Lawrence +date: 2021-10-13 +--- +**Homebridge Config** + +```json +{ + "name": "Front Entry", + "videoConfig": { + "source": "-i rtsp://username:password@xx.xxx.xxx.xxx:554/chID=1&streamType=main&linkType=tcp", + "maxStreams": 6, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 30 + } +} +``` + +**Additional Information** + +Critical configuration issues on the local streaming unit: 1) must have the most current firmware (here the fw number ends with (8D218). ALSO, must change port settings as follows: RTSP=enabled AND Authentication=basic. The configuration above did not include the still image as I had not turned that on in the NVR unit. diff --git a/_configs/Blue-Iris-2.md b/_configs/Blue-Iris-2.md new file mode 100644 index 00000000..825c1b38 --- /dev/null +++ b/_configs/Blue-Iris-2.md @@ -0,0 +1,28 @@ +--- +title: Blue Iris +comment: updated +author: meluvalli +date: 2021-12-07 +--- +**Homebridge Config** + +```json +{ + "name": "My Camera", + "motion": true, + "switches": true, + "unbridge": true, + "videoConfig": { + "source": "-rtsp_transport tcp -probesize 32 -analyzeduration 0 -re -i rtsp://[Blue Iris ip address]:[Blue Iris HTTP Port]/[Camera or GroupName]", + "stillImageSource": "-i http://[Blue Iris ip address]:[Blue Iris HTTP Port]/image/[Camera or GroupName]?q=75", + "maxFPS": 0, + "vcodec": "copy", + "audio": true, + "debug": true + } +} +``` + +**Additional Information** + +Note: There is already a Blue Iris config posted, however it uses HLS and is HORIBLE resaults! I would recommend updating :) diff --git a/_configs/H.View-HV-E800A.md b/_configs/H.View-HV-E800A.md new file mode 100644 index 00000000..36c50c39 --- /dev/null +++ b/_configs/H.View-HV-E800A.md @@ -0,0 +1,22 @@ +--- +title: H.View HV-E800A +author: MA72E +date: 2021-12-11 +--- +**Homebridge Config** + +```json +{ + "name": "name", + "serialNumber": "original serialNumber", + "firmwareRevision": "IPCAM_V4.04.40.210303", + "motion": true, + "unbridge": true, + "videoConfig": { + "source": "-i rtsp://user:password@ipadress:554/live/main", + "maxWidth": 800, + "maxHeight": 600, + "maxFPS": 25 + } +} +``` diff --git a/_configs/TP-Link-Tapo-C200.md b/_configs/TP-Link-Tapo-C200.md index 0d447aa7..4facc6b0 100644 --- a/_configs/TP-Link-Tapo-C200.md +++ b/_configs/TP-Link-Tapo-C200.md @@ -1,5 +1,5 @@ --- -title: TP Link Tapo C200 +title: TP-Link Tapo C200 comment: with motion detection author: mihailescu2m date: 2021-10-10 diff --git a/_configs/ThomView-DSC-725S.md b/_configs/ThomView-DSC-725S.md new file mode 100644 index 00000000..a2a24dfe --- /dev/null +++ b/_configs/ThomView-DSC-725S.md @@ -0,0 +1,27 @@ +--- +title: ThomView DSC-725S +author: Gus Muche +date: 2021-10-20 +--- +**Homebridge Config** + +```json +{ + "name": "Camera", + "manufacturer": "ThomView", + "model": "DSC-725S", + "unbridge": false, + "videoConfig": { + "source": "-i rtsp://username:password@XX.XXX.XXX.XXX:port/videoMain", + "vcodec": "copy", + "packetSize": 188, + "audio": false + } +} +``` + +**Additional Information** + +`"vcodec": "libx264"` -> OK + +`"packetSize": 1316` -> OK \ No newline at end of file diff --git a/_configs/Toadi-Automatic-Mower.md b/_configs/Toadi-Automatic-Mower.md new file mode 100644 index 00000000..dc217c0f --- /dev/null +++ b/_configs/Toadi-Automatic-Mower.md @@ -0,0 +1,30 @@ +--- +title: Toadi Automatic Mower +author: Gus Muche +date: 2021-10-17 +--- +**Homebridge Config** + +```json +{ + "name": "Toadi2", + "motion": false, + "switches": false, + "unbridge": true, + "videoConfig": { + "source": "-re -loop 1 -i http://IPfromControlPanel:8080/image/front/img.jpg?timestamp=21439115", + "stillImageSource": "-i http://IPfromControlPanel::8080/image/front/img.jpg?timestamp=21439115", + "maxStreams": 1, + "maxWidth": 640, + "maxHeight": 480, + "maxFPS": 1, + "debug": false + } +} +``` + +**Additional Information** + +Maybe the frame rate can be shorter. Just play with the parameters. + +The link to the image can be found with a right click on the image stream from the control panel and paste in the navigation bar. diff --git a/_configs/Wyze-Cam-v3.md b/_configs/Wyze-Cam-v3.md new file mode 100644 index 00000000..0825325f --- /dev/null +++ b/_configs/Wyze-Cam-v3.md @@ -0,0 +1,35 @@ +--- +title: Wyze Cam v3 +author: Gus Muche +date: 2021-11-30 +--- +**Homebridge Config** + +```json +{ + "name": "Test Cam", + "unbridge": true, + "manufacturer": "WYZE", + "model": "WYZE_CAKP2JFUS", + "videoConfig": { + "source": "-i rtsp://user:pass@/live", + "stillImageSource": "-i rtsp://user:pass@/live -vframes 1 -r 1", + "audio": true, + "maxStreams": 3, + "maxWidth": 1280, + "maxHeight": 720, + "maxFPS": 10, + "maxBitrate": 299, + "packetSize": 752, + "debug": false, + "additionalCommandline": "-protocol_whitelist https,crypto,srtp,rtp,udp" + } +} +``` + +**Additional Information** + +Installed v3 RTSP Firmware: +https://support.wyze.com/hc/en-us/articles/360026245231-Wyze-Cam-RTSP + +Haven't tested motion or notifs but the Homekit app is more stable than the Wyze app... The Wyze app kept freezing on me in the middle of the night. From 6eae42233521fd7d47e63ea40a8e008af849df03 Mon Sep 17 00:00:00 2001 From: David Maher Date: Sun, 27 Mar 2022 11:01:48 -0400 Subject: [PATCH 37/38] Add #1248, #1254, #1258, #1273, #1274 --- _configs/Amcrest-IP8M-2496E.md | 39 +++++++++++++++++++++++++++ _configs/Bosch-Security-Cameras.md | 33 +++++++++++++++++++++++ _configs/EZVIZ-C8T-C8C.md | 33 +++++++++++++++++++++++ _configs/Foscam-DBW5.md | 42 ++++++++++++++++++++++++++++++ _configs/Sercomm-iCamera2.md | 30 +++++++++++++++++++++ 5 files changed, 177 insertions(+) create mode 100644 _configs/Amcrest-IP8M-2496E.md create mode 100644 _configs/Bosch-Security-Cameras.md create mode 100644 _configs/EZVIZ-C8T-C8C.md create mode 100644 _configs/Foscam-DBW5.md create mode 100644 _configs/Sercomm-iCamera2.md diff --git a/_configs/Amcrest-IP8M-2496E.md b/_configs/Amcrest-IP8M-2496E.md new file mode 100644 index 00000000..37b95479 --- /dev/null +++ b/_configs/Amcrest-IP8M-2496E.md @@ -0,0 +1,39 @@ +--- +title: Amcrest IP8M-2496E +author: reflectivist +date: 2022-01-23 +--- +**Homebridge Config** + +```json +{ + "name": "Carport", + "manufacturer": "Amcrest", + "model": "IP8M-2496EB", + "serialNumber": "AMC04677C19C80AB21", + "firmwareRevision": "2.622_00AC000.0.R.210319", + "unbridge": false, + "videoConfig": { + "source": "-i rtsp://admin:mypassword@xxx.xxx.xxx.xxx@cam/realmonitor?channel=1&subtype=0", + "stillImageSource": "-i http://admin:mypassword@xxx.xxx.xxx.xxx/cgi-bin/snapshot.cgi", + "maxStreams": 2, + "maxFPS": 15, + "maxWidth": 3840, + "maxHeight": 2160, + "maxBitrate": 4096, + "encoderOptions": "-profile high -preset ultrafast -tune zerolatency", + "vcodec": "libx264", + "audio": false + } +} +``` + +**Additional Information** + +Download the Amcrest Config tool to get all of the information and configuration parameter data specific to your Amcrest camera, such as protocol, max frame rate, max bit rate, ... including firmware revision (Camera firmware with that tool too, and firmware is easy to locate by searching for Amcrest firmware on the web). + +Search web for "Amcrest API" to find the documentation that describes how to access the camera, including format of the rtsp:// URL, and the still image URL. That document indicates URL default options that could possibly be omitted (due to redundancy) from the configuration line (such as port 554 being the default, and channel=1). + +The x264 --fullhelp command which you can enter in a terminal window on your homebridge server, lists libx264 codec options. Note that the IP8M-2496E shows up in the Amcrest config tool as using the H.264H protocol (H for 'high'), as opposed to H.264, which is base cnfiguration. H.264H translates to -profile high in the libx264 codec options. + +On macOS Monterey the default ffmpeg command was too early a version and didn't support all the options homebridge was passing to it. Building the latest stable ffmpeg from source on github fixed that (had to build it with H.264 explicitly enabled on the configuration command). diff --git a/_configs/Bosch-Security-Cameras.md b/_configs/Bosch-Security-Cameras.md new file mode 100644 index 00000000..9b6f7200 --- /dev/null +++ b/_configs/Bosch-Security-Cameras.md @@ -0,0 +1,33 @@ +--- +title: Bosch Security Cameras +author: chrkan +date: 2022-01-05 +--- +**Homebridge Config** + +```json +{ + "name": "Tinyion", + "manufacturer": "Bosch", + "model": "TINYON IP 2000 WI", + "serialNumber": "00000", + "firmwareRevision": "7.10.0095", + "motion": true, + "doorbell": true, + "switches": true, + "motionDoorbell": false, + "videoConfig": { + "source": "-rtsp_transport tcp -re -i rtsp://live:PW@IP-Adress/?h26x=4", + "stillImageSource": "-i http://live:PW@IP-Adress/snap.jpg", + "forceMax": true, + "mapvideo": "rtsp://live:PW@IP-Adress/?h26x=4", + "audio": false, + "debug": false + } +} +``` + +**Additional Information** + +More Stream Information can added by using the RTSP usage with Bosch VIP Devices document: +https://resources-boschsecurity-cdn.azureedge.net/public/documents/RTSP_VIP_Configuration_Note_enUS_9007200806939915.pdf diff --git a/_configs/EZVIZ-C8T-C8C.md b/_configs/EZVIZ-C8T-C8C.md new file mode 100644 index 00000000..a8189660 --- /dev/null +++ b/_configs/EZVIZ-C8T-C8C.md @@ -0,0 +1,33 @@ +--- +title: EZVIZ C8T / C8C +author: nevada_scout +date: 2022-03-12 +--- +**Homebridge Config** + +```json +{ + "name": "EZVIZ Camera", + "manufacturer": "EZVIZ", + "model": "C8C", + "serialNumber": "XXXXXXXXX", + "unbridge": true, + "videoConfig": { + "source": "-i rtsp://user@pwd@192.x.x.x/Streaming/Channels/1/", + "stillImageSource": "-i rtsp://user@pwd@192.x.x.x/Streaming/Channels/1/picture", + "maxWidth": 1920, + "maxHeight": 1080, + "maxFPS": 25, + "maxBitrate": 1024, + "vcodec": "h264_omx", + "packetSize": 188, + "videoFilter": "none" + } +} +``` + +**Additional Information** + +Configuration on Raspberry Pi 4B + +The box for the camera says "C8T" but in the app it says that the model is "C8C Lite". diff --git a/_configs/Foscam-DBW5.md b/_configs/Foscam-DBW5.md new file mode 100644 index 00000000..5b6e0471 --- /dev/null +++ b/_configs/Foscam-DBW5.md @@ -0,0 +1,42 @@ +--- +title: Foscam DBW5 +author: Wohltemperirte Tapir +date: 2022-01-28 +--- +**Homebridge Config** + +```json +{ + "name": "your-cam-name", + "manufacturer": "Foscam", + "model": "DBW5", + "firmwareRevision": "2.0.2.30", + "doorbell": true, + "switches": true, + "unbridge": true, + "videoConfig": { + "source": "-fflags nobuffer -flags low_delay -fflags discardcorrupt -analyzeduration 0 -probesize 2000 -rtsp_transport tcp -i rtsp://changeme-username:changeme-password@changeme-ipaddr:changeme-port/videoMain", + "stillImageSource": "-i http://changeme-username:changeme-password@changeme-ipaddr:changeme-port/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=changeme-username&pwd=changeme-password", + "maxStreams": 2, + "maxWidth": 1920, + "maxHeight": 1080, + "maxFPS": 30, + "maxBitrate": 300, + "packetSize": 1316, + "audio": true, + "debug": false + } +} +``` + +**Additional Information** + +No two-way audio. Provides video/audio feed from the camera, plus "ring button pressed" alerts with cam shot. + +For the ring button to work, you need to: + +1. Specify "porthttp" in your Camera-ffmpeg configuratiomn +install Foscam VMS (can't do it from the mobile app), go to your doorbell cam configuration >> settings >> device settings >> detector >> alarm linkage. + +2. Insert the following line: +http://:/doorbell? diff --git a/_configs/Sercomm-iCamera2.md b/_configs/Sercomm-iCamera2.md new file mode 100644 index 00000000..5d252fcd --- /dev/null +++ b/_configs/Sercomm-iCamera2.md @@ -0,0 +1,30 @@ +--- +title: Sercomm iCamera2 +author: John Fox +date: 2022-03-14 +--- +**Homebridge Config** + +```json +{ + "name": "", + "manufacturer": "Sercomm", + "model": "iCamera2", + "serialNumber": "", + "videoConfig": { + "source": "-i rtsp://administrator@:554/img/media.sav", + "stillImageSource": "http://administrator@:554/img/snapshot.cgi", + "audio": true + } +} +``` + +**Additional Information** + +There are some additional parameters you'll need to set in the Camera firmware itself through your browser to ensure Wi-Fi connectivity: + +1. Set SSID: http:///adm/get_group.cgi?group=WIRELESS&wlan_essid= + +2. Set WLAN Password: http:///adm/get_group.cgi?group=WIRELESS&wpa_ascii= + +Please note that when setting your iCam2's up through Homebridge you will lose the ability for CVR through Xfinity Home and you will not be able to access your cameras through the Xfinity Home touchscreen or mobile app. All access will be through Apple HomeKit. From 155aea43fef8e98a7b0331a948b5f080d0b64122 Mon Sep 17 00:00:00 2001 From: David Maher Date: Wed, 6 Apr 2022 19:11:44 -0400 Subject: [PATCH 38/38] Fix Motion section --- automation.md | 12 ++++-------- configs.md | 2 +- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/automation.md b/automation.md index f8aab0bc..44cc0dbb 100644 --- a/automation.md +++ b/automation.md @@ -1,16 +1,12 @@ --- layout: page -title: Automation +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 }} - {% if automation.comment %}{% endif %} -
  • -{% endfor %} -
++ [{{ automation.title }}]({{ site.baseurl }}{{ automation.url }}){% if automation.comment %} +*{{ automation.comment }}*{% endif %}{% endfor %} diff --git a/configs.md b/configs.md index 3f4cd83c..4d9f4247 100644 --- a/configs.md +++ b/configs.md @@ -1,6 +1,6 @@ --- layout: page -title: Tested Configurations +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.