mirror of
https://github.com/gen2brain/cam2ip.git
synced 2025-12-15 20:08:30 +00:00
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f36a47b9a2 | ||
|
|
29e9f6a562 | ||
|
|
24fffe2c3f | ||
|
|
04492f988a | ||
|
|
3dc3aa1796 | ||
|
|
f0e85361bc |
@@ -1,6 +1,6 @@
|
||||
## cam2ip
|
||||
|
||||
Turn any webcam into ip camera.
|
||||
Turn any webcam into an IP camera.
|
||||
|
||||
Example (in web browser):
|
||||
|
||||
@@ -18,9 +18,10 @@ or
|
||||
|
||||
Binaries are compiled with static OpenCV library:
|
||||
|
||||
- [Linux 64bit](https://github.com/gen2brain/cam2ip/releases/download/1.0/cam2ip-1.0-64bit.tar.gz)
|
||||
- [Windows 32bit](https://github.com/gen2brain/cam2ip/releases/download/1.0/cam2ip-1.0.zip)
|
||||
- [RPi 32bit](https://github.com/gen2brain/cam2ip/releases/download/1.0/cam2ip-1.0-RPi.tar.gz)
|
||||
- [Android 32bit](https://github.com/gen2brain/cam2ip/releases/download/1.1/cam2ip-1.1-android.tar.gz)
|
||||
- [Linux 64bit](https://github.com/gen2brain/cam2ip/releases/download/1.1/cam2ip-1.1-64bit.tar.gz)
|
||||
- [RPi 32bit](https://github.com/gen2brain/cam2ip/releases/download/1.1/cam2ip-1.1-RPi.tar.gz)
|
||||
- [Windows 32bit](https://github.com/gen2brain/cam2ip/releases/download/1.1/cam2ip-1.1.zip)
|
||||
|
||||
|
||||
### Installation
|
||||
|
||||
@@ -96,6 +96,7 @@ func (c *Camera) SetProperty(id int, value float64) int {
|
||||
func (c *Camera) Close() (err error) {
|
||||
if c.camera == nil {
|
||||
err = fmt.Errorf("camera: camera is not opened")
|
||||
return
|
||||
}
|
||||
|
||||
c.camera.Release()
|
||||
|
||||
@@ -44,66 +44,31 @@ func (h *HTML) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
var html = `<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>cam2ip</title>
|
||||
<style>
|
||||
body {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
background-color: #000000;
|
||||
}
|
||||
|
||||
div {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
canvas {
|
||||
height: auto;
|
||||
width: auto;
|
||||
max-height: 100%;
|
||||
max-width: 100%;
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
box-sizing: border-box;
|
||||
margin: auto;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
var url = "ws://{BIND}/socket";
|
||||
ws = new WebSocket(url);
|
||||
ws = new WebSocket("ws://{BIND}/socket");
|
||||
var image = new Image();
|
||||
|
||||
ws.onopen = function() {
|
||||
console.log("onopen");
|
||||
var context = document.getElementById("canvas").getContext("2d");
|
||||
image.onload = function() {
|
||||
context.drawImage(image, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
ws.onmessage = function(e) {
|
||||
var context = document.getElementById("canvas").getContext("2d");
|
||||
|
||||
var image = new Image();
|
||||
image.onload = function() {
|
||||
context.drawImage(image, 0, 0);
|
||||
}
|
||||
|
||||
image.setAttribute("src", "data:image/jpeg;base64," + e.data);
|
||||
}
|
||||
|
||||
ws.onclose = function(e) {
|
||||
console.log("onclose");
|
||||
}
|
||||
|
||||
ws.onerror = function(e) {
|
||||
console.log("onerror");
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div><canvas id="canvas" width="{WIDTH}" height="{HEIGHT}"></canvas></div>
|
||||
<body style="background-color: #000000">
|
||||
<table style="width:100%; height:100%">
|
||||
<tr style="height:100%">
|
||||
<td style="height:100%; text-align:center">
|
||||
<canvas id="canvas" width="{WIDTH}" height="{HEIGHT}"></canvas>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>`
|
||||
|
||||
18
make.bash
18
make.bash
@@ -3,6 +3,7 @@
|
||||
CHROOT="/usr/x86_64-pc-linux-gnu-static"
|
||||
MINGW="/usr/i686-w64-mingw32"
|
||||
RPI="/usr/armv6j-hardfloat-linux-gnueabi"
|
||||
ANDROID="/opt/android-toolchain-arm7"
|
||||
|
||||
mkdir -p build
|
||||
|
||||
@@ -10,13 +11,13 @@ LIBRARY_PATH="$CHROOT/usr/lib:$CHROOT/lib" \
|
||||
PKG_CONFIG_PATH="$CHROOT/usr/lib/pkgconfig" \
|
||||
PKG_CONFIG_LIBDIR="$CHROOT/usr/lib/pkgconfig" \
|
||||
CGO_LDFLAGS="-L$CHROOT/usr/lib -L$CHROOT/lib" \
|
||||
CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -v -x -o build/cam2ip.amd64 -ldflags "-linkmode external -s -w" github.com/gen2brain/cam2ip
|
||||
CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -v -x -o build/cam2ip.linux.amd64 -ldflags "-linkmode external -s -w" github.com/gen2brain/cam2ip
|
||||
|
||||
|
||||
PKG_CONFIG="/usr/bin/i686-w64-mingw32-pkg-config" \
|
||||
PKG_CONFIG_PATH="$MINGW/usr/lib/pkgconfig" \
|
||||
PKG_CONFIG_LIBDIR="$MINGW/usr/lib/pkgconfig" \
|
||||
CGO_LDFLAGS="-L$MINGW/usr/lib -L$MINGW/usr/include" \
|
||||
CGO_LDFLAGS="-L$MINGW/usr/lib" \
|
||||
CGO_CFLAGS="-I$MINGW/usr/include" \
|
||||
CC="i686-w64-mingw32-gcc" CXX="i686-w64-mingw32-g++" \
|
||||
CGO_ENABLED=1 GOOS=windows GOARCH=386 go build -v -x -o build/cam2ip.exe -ldflags "-linkmode external -s -w '-extldflags=-static'" github.com/gen2brain/cam2ip
|
||||
@@ -24,7 +25,16 @@ CGO_ENABLED=1 GOOS=windows GOARCH=386 go build -v -x -o build/cam2ip.exe -ldflag
|
||||
PKG_CONFIG="/usr/bin/armv6j-hardfloat-linux-gnueabi-pkg-config" \
|
||||
PKG_CONFIG_PATH="$RPI/usr/lib/pkgconfig" \
|
||||
PKG_CONFIG_LIBDIR="$RPI/usr/lib/pkgconfig" \
|
||||
CGO_LDFLAGS="-L$RPI/usr/lib -L$RPI/usr/include" \
|
||||
CGO_LDFLAGS="-L$RPI/usr/lib" \
|
||||
CGO_CFLAGS="-I$RPI/usr/include" \
|
||||
CC="armv6j-hardfloat-linux-gnueabi-gcc" CXX="armv6j-hardfloat-linux-gnueabi-g++" \
|
||||
CGO_ENABLED=1 GOOS=linux GOARCH=arm go build -v -x -o build/cam2ip.arm -ldflags "-linkmode external -s -w" github.com/gen2brain/cam2ip
|
||||
CGO_ENABLED=1 GOOS=linux GOARCH=arm go build -v -x -o build/cam2ip.linux.arm -ldflags "-linkmode external -s -w" github.com/gen2brain/cam2ip
|
||||
|
||||
PATH="$PATH:$ANDROID/bin" \
|
||||
PKG_CONFIG="$ANDROID/bin/arm-linux-androideabi-pkg-config" \
|
||||
PKG_CONFIG_PATH="$ANDROID/lib/pkgconfig" \
|
||||
PKG_CONFIG_LIBDIR="$ANDROID/lib/pkgconfig" \
|
||||
CGO_LDFLAGS="-L$ANDROID/lib" \
|
||||
CGO_CFLAGS="-I$ANDROID/include" \
|
||||
CC="arm-linux-androideabi-gcc" CXX="arm-linux-androideabi-g++" \
|
||||
CGO_ENABLED=1 GOOS=android GOARCH=arm go build -v -x -o build/cam2ip.android.arm -ldflags "-linkmode external -s -w" github.com/gen2brain/cam2ip
|
||||
|
||||
Reference in New Issue
Block a user