Skip to content

Allow control of the dockerized RTSP server #48

@farshidtz

Description

@farshidtz

🚀 Feature Request

Relevant Package [REQUIRED]

Device USB Camera and RTSP Server

Description [REQUIRED]

The Dockerfile uses aler9/rtsp-simple-server as a base:

FROM aler9/rtsp-simple-server:v0.18.4 AS rtsp

And runs the process before starting the camera service:

echo "Run rtsp-simple-server..."
/rtsp-simple-server &
echo "Run device-usb-camera..."
/device-usb-camera $@

At the same time, the device service allows configuration of the RTSP server:

[Driver]
RtspServerHostName = "localhost"
RtspTcpPort = "8554"

I'm not convinced that adding an RTSP server inside the same docker container is a good idea. Note that rtsp-simple-server is already dockerized and easily deployable as standalone: https://hub.docker.com/r/aler9/rtsp-simple-server

There are a few issues:

  • The USB Camera service config allows using an external server, but does not allow disabling the internal one. The 9-10MB for the executable gets pulled in regardless.
  • It is unclear how someone can configure and secure the internal RTSP server. Does the upstream documentation apply to the Device USB service container too? Our README doesn't make that clear.
  • Embedding the rtsp-simple-server adds maintenance burden to EdgeX. I don't think this dependency was approved by the TSC. It's been a few weeks and we are already a few versions behind.

Describe the solution you'd like

The control of the RTSP server process can be made possible for example by reading an env var in docker-entrypoint.sh to decide if the process should run.

If the RTSP server wasn't embedded, I could easily deploy the project's container together with the Device Usb Camera service container.

Describe alternatives you've considered

Metadata

Metadata

Assignees

No one assigned

    Labels

    1-lowpriority denoting isolated changesenhancementNew feature or requesthelp wantedExtra attention is needed

    Type

    No type

    Projects

    Status

    Icebox

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions