Sunoo / Homebridge Camera Ffmpeg
Licence: apache-2.0
Homebridge Plugin Providing FFmpeg-based Camera Support
Stars: ✭ 726
Programming Languages
typescript
32286 projects
Projects that are alternatives of or similar to Homebridge Camera Ffmpeg
camera.ui
NVR like user Interface for RTSP capable cameras
Stars: ✭ 99 (-86.36%)
Mutual labels: stream, camera, homebridge, homekit
App Media
Elements for accessing data from media input devices and visualizing that data for users
Stars: ✭ 60 (-91.74%)
Mutual labels: stream, camera, audio
Homebridge Nest Cam
View your Nest cams in HomeKit using Homebridge.
Stars: ✭ 103 (-85.81%)
Mutual labels: homebridge, homekit, ffmpeg
Homebridge Unifi Protect Camera Motion
Camera & Motion sensor support for Unifi Protect cameras in Homekit via Homebridge
Stars: ✭ 79 (-89.12%)
Mutual labels: homebridge, homekit, camera
Trinity
android video record editor muxer sdk
Stars: ✭ 609 (-16.12%)
Mutual labels: camera, audio, ffmpeg
Homebridge Dafang
Homebridge Plugin for Xiaomi Dafang / Wyze Cam IP Camera => Hey Siri, Start Video Recording
Stars: ✭ 176 (-75.76%)
Mutual labels: homebridge, homekit, ffmpeg
Homebridge Raspbian Image
Official Homebridge Raspberry Pi Image based on Raspbian Lite.
Stars: ✭ 534 (-26.45%)
Mutual labels: homebridge, homekit, ffmpeg
Docker Homebridge
Homebridge Docker. HomeKit support for the impatient using Docker on x86_64, Raspberry Pi (armhf) and ARM64. Includes ffmpeg + libfdk-aac.
Stars: ✭ 1,847 (+154.41%)
Mutual labels: homebridge, homekit, ffmpeg
Homebridge Unifi Protect
📹 Complete HomeKit integration for UniFi Protect with full support for most features including autoconfiguration, motion detection, and multiple controllers: https://homebridge.io
Stars: ✭ 335 (-53.86%)
Mutual labels: homebridge, homekit, camera
Ffmpegcore
A .NET FFMpeg/FFProbe wrapper for easily integrating media analysis and conversion into your C# applications
Stars: ✭ 429 (-40.91%)
Mutual labels: audio, ffmpeg
Evilslive
This project is a SDK about video stream live
Stars: ✭ 420 (-42.15%)
Mutual labels: camera, ffmpeg
Awesome Video
A curated list of awesome streaming video tools, frameworks, libraries, and learning resources.
Stars: ✭ 397 (-45.32%)
Mutual labels: audio, ffmpeg
Ffmpeg Php
FFmpegPHP is a pure OO PHP port of ffmpeg-php library that was written in C. It adds an easy to use, object-oriented API for accessing and retrieving information from video and audio files. It has methods for returning frames from movie files as images that can be manipulated using PHP's image functions. This works well for automatically creating thumbnail images from movies. FFmpegPHP is also useful for reporting the duration and bitrate of audio files (mp3, wma...). FFmpegPHP can access many of the video formats supported by ffmpeg (mov, avi, mpg, wmv...)
Stars: ✭ 446 (-38.57%)
Mutual labels: audio, ffmpeg
Homebridge Webos Tv
Homebridge plugin for LG webOS TVs
Stars: ✭ 433 (-40.36%)
Mutual labels: homebridge, homekit
Mediatoolkit
A .NET library to convert and process all your video & audio files.
Stars: ✭ 492 (-32.23%)
Mutual labels: audio, ffmpeg
Ffsubsync
Automagically synchronize subtitles with video.
Stars: ✭ 5,167 (+611.71%)
Mutual labels: audio, ffmpeg
Homepoint
Espressif ESP32 Based Smarthome screen for MQTT
Stars: ✭ 391 (-46.14%)
Mutual labels: homebridge, homekit
Rtmppublisher
Rtmp client on Android. Live Video Streaming.
Stars: ✭ 515 (-29.06%)
Mutual labels: camera, audio
Homebridge Camera FFmpeg
Homebridge Plugin Providing FFmpeg-based Camera Support
Installation
Before installing this plugin, you should install Homebridge using the official instructions.
Install via Homebridge Config UI X
- Search for
Camera FFmpeg
on the Plugins tab of Config UI X. - Install the
Homebridge Camera FFmpeg
plugin and use the form to enter your camera configurations.
Manual Installation
- Install this plugin using:
sudo npm install -g homebridge-camera-ffmpeg --unsafe-perm
. - Edit
config.json
manually to add your cameras. See below for instructions on that.
Tested configurations
Other users have been sharing configurations that work for them on our GitHub site. You may want to check that to see if anyone else has gotten your model of camera working already, or share a configuration setup that works for you.
Manual Configuration
Most Important Parameters
-
platform
: (Required) Must always be set toCamera-ffmpeg
. -
name
: (Required) Set the camera name for display in the Home app. -
source
: (Required) FFmpeg options on where to find and how to decode your camera's video stream. The most basic form is-i
followed by your camera's URL. -
stillImageSource
: If your camera also provides a URL for a still image, that can be defined here with the same syntax assource
. If not set, the plugin will grab one frame fromsource
.
Config Example
{
"platform": "Camera-ffmpeg",
"cameras": [
{
"name": "Camera Name",
"videoConfig": {
"source": "-i rtsp://username:[email protected]:554",
"stillImageSource": "-i http://example.com/still_image.jpg",
"maxStreams": 2,
"maxWidth": 1280,
"maxHeight": 720,
"maxFPS": 30
}
}
]
}
Optional Parameters
-
motion
: Exposes the motion sensor for this camera. This can be triggered with dummy switches, MQTT messages, or via HTTP, depending on what features are enabled in the config. (Default:false
) -
doorbell
: Exposes the doorbell device for this camera. This can be triggered with dummy switches, MQTT messages, or via HTTP, depending on what features are enabled in the config. (Default:false
) -
switches
: Enables dummy switches to trigger motion and/or doorbell, if either of those are enabled. When enabled there will be an additional switch that triggers the motion or doorbell event. See the project site for more detailed instructions. (Default:false
) -
motionTimeout
: The number of seconds after triggering to reset the motion sensor. Set to 0 to disable resetting of motion trigger for MQTT or HTTP. (Default:1
) -
motionDoorbell
: Rings the doorbell when motion is activated. This allows for motion alerts to appear on Apple TVs. (Default:false
) -
manufacturer
: Set the manufacturer name for display in the Home app. (Default:Homebridge
) -
model
: Set the model for display in the Home app. (Default:Camera FFmpeg
) -
serialNumber
: Set the serial number for display in the Home app. (Default:SerialNumber
) -
firmwareRevision
: Set the firmware revision for display in the Home app. (Default: current plugin version) -
unbridge
: Bridged cameras can cause slowdowns of the entire Homebridge instance. If unbridged, the camera will need to be added to HomeKit manually. (Default:false
)
Config Example with Manufacturer and Model Set
{
"platform": "Camera-ffmpeg",
"cameras": [
{
"name": "Camera Name",
"manufacturer": "ACME, Inc.",
"model": "ABC-123",
"serialNumber": "1234567890",
"firmwareRevision": "1.0",
"videoConfig": {
"source": "-i rtsp://username:[email protected]:554",
"stillImageSource": "-i http://example.com/still_image.jpg",
"maxStreams": 2,
"maxWidth": 1280,
"maxHeight": 720,
"maxFPS": 30
}
}
]
}
Optional videoConfig Parameters
-
returnAudioTarget
: (EXPERIMENTAL - WIP) The FFmpeg output command for directing audio back to a two-way capable camera. This feature is still in development and a configuration that works today may not work in the future. -
maxStreams
: The maximum number of streams that will be allowed at once to this camera. (Default:2
) -
maxWidth
: The maximum width used for video streamed to HomeKit. If set to 0, the resolution of the source is used. If not set, will use any size HomeKit requests. -
maxHeight
: The maximum height used for video streamed to HomeKit. If set to 0, the resolution of the source is used. If not set, will use any size HomeKit requests. -
maxFPS
: The maximum frame rate used for video streamed to HomeKit. If set to 0, the framerate of the source is used. If not set, will use any frame rate HomeKit requests. -
maxBitrate
: The maximum bitrate used for video streamed to HomeKit, in kbit/s. If not set, will use any bitrate HomeKit requests. -
forceMax
: If set, the settings requested by HomeKit will be overridden with any 'maximum' values defined in this config. (Default:false
) -
vcodec
: Set the codec used for encoding video sent to HomeKit, must be H.264-based. You can change to a hardware accelerated video codec with this option, if one is available. (Default:libx264
) -
audio
: Enables audio streaming from camera. (Default:false
) -
packetSize
: If audio or video is choppy try a smaller value, should be set to a multiple of 188. (Default:1316
) -
mapvideo
: Selects the stream used for video. (Default: FFmpeg automatically selects a video stream) -
mapaudio
: Selects the stream used for audio. (Default: FFmpeg automatically selects an audio stream) -
videoFilter
: Comma-delimited list of additional video filters for FFmpeg to run on the video. If 'none' is included, the default video filters are disabled. -
encoderOptions
: Options to be passed to the video encoder. (Default:-preset ultrafast -tune zerolatency
if using libx264) -
debug
: Includes debugging output from the main FFmpeg process in the Homebridge log. (Default:false
) -
debugReturn
: Includes debugging output from the FFmpeg used for return audio in the Homebridge log. (Default:false
)
More Complicated Example
{
"platform": "Camera-ffmpeg",
"cameras": [
{
"name": "Camera Name",
"videoConfig": {
"source": "-i rtsp://myfancy_rtsp_stream",
"stillImageSource": "-i http://faster_still_image_grab_url/this_is_optional.jpg",
"maxStreams": 2,
"maxWidth": 1280,
"maxHeight": 720,
"maxFPS": 30,
"maxBitrate": 200,
"vcodec": "h264_omx",
"audio": false,
"packetSize": 188,
"hflip": true,
"additionalCommandline": "-x264-params intra-refresh=1:bframes=0",
"debug": true
}
}
]
}
Camera MQTT Parameters
-
motionTopic
: The MQTT topic to watch for motion alerts. -
motionMessage
: The message to watch for to trigger motion alerts. Will use the name of the camera if blank. -
motionResetTopic
: The MQTT topic to watch for motion resets. -
motionResetMessage
: The message to watch for to trigger motion resets. Will use the name of the camera if blank. -
doorbellTopic
: The MQTT topic to watch for doorbell alerts. -
doorbellMessage
: The message to watch for to trigger doorbell alerts. Will use the name of the camera if blank.
Camera MQTT Example
{
"platform": "Camera-ffmpeg",
"cameras": [
{
"name": "Camera Name",
"videoConfig": {
"source": "-i rtsp://myfancy_rtsp_stream"
},
"mqtt": {
"motionTopic": "home/camera",
"motionMessage": "ON",
"motionResetTopic": "home/camera",
"motionResetMessage": "OFF",
"doorbellTopic": "home/doobell",
"doorbellMessage": "ON"
}
}
]
}
Automation Parameters
-
mqtt
: Defines the hostname or IP of the MQTT broker to connect to for MQTT-based automation. If not set, MQTT support is not started. See the project site for more information on using MQTT. -
portmqtt
: The port of the MQTT broker. (Default:1883
) -
tlsmqtt
: Use TLS to connect to the MQTT broker. (Default:false
) -
usermqtt
: The username used to connect to your MQTT broker. If not set, no authentication is used. -
passmqtt
: The password used to connect to your MQTT broker. If not set, no authentication is used. -
porthttp
: The port to listen on for HTTP-based automation. If not set, HTTP support is not started. See the project site for more information on using HTTP. -
localhttp
: Only allow HTTP calls from localhost. Useful if using helper plugins that translate to HTTP. (Default:false
)
Automation Example
{
"platform": "Camera-ffmpeg",
"mqtt": "127.0.0.1",
"porthttp": "8080",
"cameras": []
}
Rarely Needed Parameters
-
videoProcessor
: Defines which video processor is used to decode and encode videos, must take the same parameters as FFmpeg. Common uses would beavconv
or the path to a custom-compiled version of FFmpeg. If not set, will use the included version of FFmpeg, or the version of FFmpeg installed on the system if no included version is available.
Rare Option Example
{
"platform": "Camera-ffmpeg",
"videoProcessor": "/usr/bin/ffmpeg",
"cameras": []
}
Credit
Homebridge Camera FFmpeg is based on code originally written by Khaos Tian.
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].