Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gen2brain/cam2ip
Turn any webcam into an IP camera
https://github.com/gen2brain/cam2ip
camera mjpeg webcam
Last synced: 10 days ago
JSON representation
Turn any webcam into an IP camera
- Host: GitHub
- URL: https://github.com/gen2brain/cam2ip
- Owner: gen2brain
- License: gpl-3.0
- Created: 2017-10-03T18:49:23.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2024-01-30T15:33:13.000Z (9 months ago)
- Last Synced: 2024-10-16T08:12:40.725Z (24 days ago)
- Topics: camera, mjpeg, webcam
- Language: Go
- Homepage:
- Size: 131 KB
- Stars: 881
- Watchers: 33
- Forks: 92
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- License: COPYING
- Authors: AUTHORS
Awesome Lists containing this project
- awesome-repositories - gen2brain/cam2ip - Turn any webcam into an IP camera (Go)
README
## cam2ip
Turn any webcam into an IP camera.
Example (in web browser):
http://localhost:56000/html
or
http://localhost:56000/mjpeg
You can also use apps like `ffplay` or `vlc`:
ffplay -i http://localhost:56000/mjpeg
### Requirements
* On Linux/RPi native Go [V4L](https://github.com/korandiz/v4l) implementation is used to capture images.
* On Windows [Video for Windows (VfW)](https://en.wikipedia.org/wiki/Video_for_Windows) framework is used over win32 API.### Build tags
* `cv2` - build with `OpenCV` 2.x ([go-opencv](https://github.com/lazywei/go-opencv))
* `cv4` - build with `OpenCV` 4.x ([gocv](https://github.com/hybridgroup/gocv))
* `turbo` - build with `libjpeg-turbo` ([libjpeg-turbo](https://www.libjpeg-turbo.org/)) instead of native Go `image/jpeg`### Download
Binaries are compiled with static OpenCV/libjpeg-turbo libraries, they should just work:
- [Linux 64bit](https://github.com/gen2brain/cam2ip/releases/download/1.6/cam2ip-1.6-64bit.tar.gz)
- [Linux 64bit OpenCV](https://github.com/gen2brain/cam2ip/releases/download/1.6/cam2ip-1.6-64bit-cv2.tar.gz)
- [macOS 64bit OpenCV](https://github.com/gen2brain/cam2ip/releases/download/1.6/cam2ip-1.6-darwin-cv2.zip)
- [RPi 32bit](https://github.com/gen2brain/cam2ip/releases/download/1.6/cam2ip-1.6-RPi.tar.gz)
- [RPi 32bit OpenCV](https://github.com/gen2brain/cam2ip/releases/download/1.6/cam2ip-1.6-RPi-cv2.tar.gz)
- [RPi 32bit Static](https://github.com/gen2brain/cam2ip/releases/download/1.6/cam2ip-1.6-RPi-nocgo.tar.gz)
- [RPi3 32bit](https://github.com/gen2brain/cam2ip/releases/download/1.6/cam2ip-1.6-RPi3.tar.gz)
- [RPi3 32bit OpenCV](https://github.com/gen2brain/cam2ip/releases/download/1.6/cam2ip-1.6-RPi3-cv2.tar.gz)
- [Windows 32bit](https://github.com/gen2brain/cam2ip/releases/download/1.6/cam2ip-1.6-32bit.zip)
- [Windows 32bit OpenCV](https://github.com/gen2brain/cam2ip/releases/download/1.6/cam2ip-1.6-32bit-cv2.zip)
- [Windows 64bit](https://github.com/gen2brain/cam2ip/releases/download/1.6/cam2ip-1.6-64bit.zip)
- [Windows 64bit OpenCV](https://github.com/gen2brain/cam2ip/releases/download/1.6/cam2ip-1.6-64bit-cv2.zip)### Installation
go get -v github.com/gen2brain/cam2ip/cmd/cam2ip
This will install app in `$GOPATH/bin/cam2ip`.
### Run in Docker container
docker run --device=/dev/video0:/dev/video0 -p56000:56000 -it gen2brain/cam2ip # on RPi use gen2brain/cam2ip:arm
### Usage
```
Usage of cam2ip:
-bind-addr string
Bind address [CAM2IP_BIND_ADDR] (default ":56000")
-delay int
Delay between frames, in milliseconds [CAM2IP_DELAY] (default 10)
-height float
Frame height [CAM2IP_HEIGHT] (default 480)
-htpasswd-file string
Path to htpasswd file, if empty auth is disabled [CAM2IP_HTPASSWD_FILE]
-index int
Camera index [CAM2IP_INDEX]
-nowebgl
Disable WebGL drawing of images (html handler) [CAM2IP_NOWEBGL]
-rotate int
Rotate image, valid values are 90, 180, 270 [CAM2IP_ROTATE]
-timestamp
Draws timestamp on images [CAM2IP_TIMESTAMP]
-width float
Frame width [CAM2IP_WIDTH] (default 640)
```### Handlers
* `/html`: HTML handler, frames are pushed to canvas over websocket
* `/jpeg`: Static JPEG handler
* `/mjpeg`: Motion JPEG, supported natively in major web browsers