alexbelgium / hassio-addons

My homeassistant addons
MIT License
1.47k stars 213 forks source link

✨ [REQUEST] Restreamer #893

Open MaasOne opened 1 year ago

MaasOne commented 1 year ago

Checked

Which addon?

Restreamer https://github.com/datarhei/restreamer

Is your feature request related to a problem? Please describe

Restreamer consumes camera/video streams and provides them to other consuming video endpoints in a very efficient and low-performance way. In HA this is a possible solution for video streams that need to be loaded immediately within a second ("stand-by-mode"). No connecting to the cam. No active taping on the screen for activating and then waiting another time. Just getting the stream when you need it. That short reaction time is not needed for every camera stream, but if you need it, Restreamer is a good and reliable open source choice for that issue.

Describe the solution you'd like

A simple "clone" add-on. I tried to create a local custom add-on, but failed with the data persistence of the two persistant directories /core/data and /core/config because of my lack of experience with HA addons and docker. Restreamer has a Web-UI at "./ui/:8080" so Ingress would be the way. Ingress worked perfectly with Restreamer-Web-UI in my case.

So, it would be great if you could include Restreamer into your repo! Thanks in advance!

MaasOne commented 1 year ago

A working sample without data persistence would be:

Dockerfile

ARG BUILD_FROM
FROM ${BUILD_FROM}

config.json

{
  "arch": [
    "aarch64",
    "amd64",
    "armv7"
  ],
  "name": "Restreamer",
  "version": "2.6.0",
  "slug": "restreamer",
  "description": "Restreamer add-on",
  "init": false,
  "ports": {
    "8080/tcp": 8080,
    "8181/tcp": 8181,
    "1935/tcp": 1935,
    "1936/tcp": 1936,
    "6000/udp": 6000
  },
  "host_network": true,
  "ingress": true,  
  "ingress_port": 8080,
  "ingress_entry": "./ui/"
}

build.json

{
  "build_from": {
    "aarch64": "datarhei/restreamer:latest",
    "amd64": "datarhei/restreamer:latest",
    "armv7": "datarhei/restreamer:latest"
  }
}

The default direct docker command would be

docker run -d --restart=always --name restreamer \
   -v /opt/restreamer/config:/core/config -v /opt/restreamer/data:/core/data \
   -p 8080:8080 -p 8181:8181 \
   -p 1935:1935 -p 1936:1936 \
   -p 6000:6000/udp \
   datarhei/restreamer:latest