Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dmitri-mcguckin/webcamd
A minimalist service for streaming a webcam over HLS
https://github.com/dmitri-mcguckin/webcamd
Last synced: 2 months ago
JSON representation
A minimalist service for streaming a webcam over HLS
- Host: GitHub
- URL: https://github.com/dmitri-mcguckin/webcamd
- Owner: dmitri-mcguckin
- License: gpl-3.0
- Created: 2021-09-13T00:57:01.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2023-01-28T02:48:36.000Z (almost 2 years ago)
- Last Synced: 2024-09-06T14:20:57.787Z (5 months ago)
- Language: Python
- Homepage:
- Size: 24.4 KB
- Stars: 3
- Watchers: 1
- Forks: 8
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# OctoPrint Stuff
This is a collection of bits and bobs that make running Octoprint a tad easier.
The most notable component is webcamd which is a minimalist drop-in replacement for `mjpeg_streamer`.
* Octoprint appends a seemingly-random session ID to the camera URI, which confuses the hell out of `mjpg-streamer`
* `mjpg-streamer` doesn't appear to be capable of handle multiple simultaneous streams, resulting in the infuriating `403: Forbidden! frame already sent` error
* `mjpg-streamer` itself is complete overkill here`webcamd` is based on Igor Maculan’s *“Simple Python Motion Jpeg”* [daemon](https://gist.github.com/n3wtron/4624820). It has been reworked to run under python-3.x, accept command-line arguments, to fine-tune the webcam streaming experience.
### Note!
The user running `webcamd` must have sufficient access to the webcam device. On most Linux systems, this is as simple as adding the user to the `video` group. Otherwise the daemon will have to be run as root, which is **NOT** recommended.
[email protected] is a systemd unit file for webcam.py.
haproxy.cfg is a configuration file for haproxy that actually works with non-ancient versions of haproxy, and enforces SSL connections to Octoprint.
***
# `webcamd` Quickstart
### Install Locally
`$` `pip install .`
### Run the module directly
`$` `python3 -m webcamd`
### Help and Usage
`$` `webcamd --help`
### Create a SystemD Service
Open the following file and copy these contents:
```
/etc/systemd/system/webcamd.service
___________________________________
[Unit]
Description=Webcam Daemon. A minimalist webcam streaming service.
After=network.online.target
Wants=network.online.target[Service]
Type=simple
User=octoprint
Group=octoprint
ExecStart=/usr/bin/webcamd
ExecStop=killall -u webcam webcamd[Install]
WantedBy=multi-user.target
```Then restart the systemd daemon loader:
`$` `sudo systemctl daemon-reload`
And enable the service, to allow the service to start automatically on boot:
`$` `sudo systemctl enable webcamd.service`
***
# Development
### Install Locally with `dev` dependencies
`$` `pip install -e .[dev]`
***
# Contributors and Authors
This repository is a derevation of the [octoprint-stuff repo](https://github.com/christopherkobayashi/octoprint-stuff) maintained by Christopher RYU and Shell Shrader. The specific webcampy script that inspired this repository was originally authored by Igor Maculan.