2026-06-30 19:01:49 +02:00
2026-06-30 14:49:14 +02:00
2026-06-30 19:01:49 +02:00
2026-06-30 18:52:39 +02:00
2017-10-03 20:50:11 +02:00
2017-10-03 20:50:11 +02:00
2026-06-30 17:23:44 +02:00
2026-06-30 18:52:39 +02:00
2026-06-30 18:52:39 +02:00

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

Build tags

  • vfw - on Windows, use Video for Windows to access camera instead of the default Media Foundation
  • libjpeg - build with libjpeg (go-libjpeg) instead of native image/jpeg

Download

Download the latest binaries from the releases.

Installation

go install github.com/gen2brain/cam2ip/cmd/cam2ip@latest

This command will install cam2ip in GOBIN, you can point GOBIN to e.g. /usr/local/bin or ~/.local/bin.

Usage

Usage: cam2ip [<flags>]
  --index
    	Camera index [CAM2IP_INDEX] (default "0")
  --device
    	Camera name to use, matched as substring, overrides index [CAM2IP_DEVICE] (default "")
  --delay
    	Delay between frames, in milliseconds [CAM2IP_DELAY] (default "10")
  --width
    	Frame width [CAM2IP_WIDTH] (default "640")
  --height
    	Frame height [CAM2IP_HEIGHT] (default "480")
  --quality
    	Image quality [CAM2IP_QUALITY] (default "75")
  --rotate
    	Rotate image, valid values are 90, 180, 270 [CAM2IP_ROTATE] (default "0")
  --flip
    	Flip image, valid values are horizontal and vertical [CAM2IP_FLIP] (default "")
  --no-webgl
    	Disable WebGL drawing of image (html handler) [CAM2IP_NO_WEBGL] (default "false")
  --timestamp
    	Draws timestamp on image [CAM2IP_TIMESTAMP] (default "false")
  --time-format
    	Time format [CAM2IP_TIME_FORMAT] (default "2006-01-02 15:04:05")
  --bind-addr
    	Bind address [CAM2IP_BIND_ADDR] (default ":56000")
  --htpasswd-file
    	Path to htpasswd file, if empty auth is disabled [CAM2IP_HTPASSWD_FILE] (default "")
  --add-user
    	Add a user to the htpasswd file (with --htpasswd-file) and exit (default "")
  --lazy
    	Open the camera only while clients are connected [CAM2IP_LAZY] (default "false")
  --list-devices
    	List available cameras and exit (default "false")
  --version
    	Print version and exit (default "false")

Handlers

  • /html: HTML handler, frames are pushed to canvas over websocket
  • /jpeg: Static JPEG handler
  • /mjpeg: Motion JPEG, supported natively in major web browsers
Description
Turn any webcam into an IP camera
Readme 539 KiB
Languages
Go 99.7%
Dockerfile 0.3%