mirror of
https://github.com/gen2brain/cam2ip.git
synced 2025-12-15 20:08:30 +00:00
13385ba650dd7fe06bcc6b40b299999948f399ed
Removes the bind address in favor of using JS to auto detect the location and use instead. "window.location.host" will point to the proper endpoint.
If the server is at "10.10.10.10", 'new WebSocket("ws://" + window.location.host + "/socket");' would be created at "ws://10.10.10.10". The "window.location.host" property also includes the port number as well.
This should fix the current open issue with websockets on HTML not rendering properly when the "-bind" option is omitted.
cam2ip
Turn any webcam into an IP camera.
Example (in web browser):
http://localhost:56000/mjpeg
or
http://localhost:56000/html
Requirements
- libjpeg-turbo (use
-tags jpegto build withoutCGo) - On Linux/RPi native Go V4L implementation is used to capture images.
- On Windows Video for Windows (VfW) framework is used over win32 API.
Installation
go get -u github.com/gen2brain/cam2ip
Build tags
cv2- build withOpenCV2.x (go-opencv)cv3- build withOpenCV3.x (gocv)jpeg- build with native Goimage/jpeginstead oflibjpeg-turbo
Download
Binaries are compiled with static OpenCV/libjpeg-turbo libraries, they should just work:
- Linux 64bit
- Linux 64bit OpenCV
- RPi 32bit
- RPi 32bit OpenCV
- RPi 32bit Static
- RPi3 32bit
- RPi3 32bit OpenCV
- Windows 32bit
- Windows 32bit OpenCV
- Windows 64bit
- Windows 64bit OpenCV
Installation
go get -v github.com/gen2brain/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 (default ":56000")
-delay int
Delay between frames, in milliseconds (default 10)
-height float
Frame height (default 480)
-width float
Frame width (default 640)
-htpasswd-file string
Path to htpasswd file, if empty auth is disabled
-index int
Camera index
-nowebgl
Disable WebGL drawing of images (html handler)
-rotate int
Rotate image, valid values are 90, 180, 270
-video-file string
Use video file instead of camera
Handlers
/html: HTML handler, frames are pushed to canvas over websocket/jpeg: Static JPEG handler/mjpeg: Motion JPEG, supported natively in major web browsers
Languages
Go
91.6%
Shell
7.8%
Dockerfile
0.6%