GithubHelp home page GithubHelp logo

gen2brain / cam2ip Goto Github PK

View Code? Open in Web Editor NEW
835.0 33.0 85.0 134 KB

Turn any webcam into an IP camera

License: GNU General Public License v3.0

Go 91.14% Shell 8.20% Dockerfile 0.66%
webcam camera mjpeg

cam2ip's People

Contributors

bothan-tarot avatar gen2brain avatar randomerrormessage avatar stackcoder avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cam2ip's Issues

Timestamp Scaling?

Could we get a simple option to perhaps scale the timestamp size? It's verrrry tiny on my 1080 stream!

Otherwise, this is great.

audio

is there any thought about adding audio?

ERROR: SampleCB() - buffer sizes do not match

Hello. First of all, I inform you that I am writing this article through a translator. Please excuse me.

A few days ago, I was using a program that was released as cam2ip-1.6-64bit-cv2.zip, but there was a power outage once due to an accident, and after that, the console displays an ERROR: SampleCB() - buffer sizes do not match error, and it is not running normally.

To solve this problem, I have downgraded to 1.5 version, no cv2 version, and run to 32bit version, but no progress has been made.

The main command to use is cam2ip.exe -width 640 -height 360, and using cam2ip without any further syntax did not run normally. and i'm using Windows 10
image

The "native VFW implementation on Windows" binary doesn't seem to work

I tried both "cam2ip-1.5-64bit.zip" and "cam2ip-1.5-32bit.zip" version on 4 different computers (2 Win 7 & 2 Win10, all 64-bit) with USB cameras from various vendors, none of them work.

The symptom is: the program started fine, and the camera would be activated for a second and then it immediately went off.

There is no apparent error on the console, until you open http://localhost:56000/mjpeg, when it will start to throw 2019/04/24 14:34:28 mjpeg: read: camera: can not retrieve frame: EOF errors constantly.

The "cam2ip-1.5-64bit-cv2.zip" version works flawlessly.

It is not a big deal to me personally since I can just use CV2 version instead, but think developers may want to know this.

Thanks!

OpenCV 3 Support

Would be great if cam2ip would support the current OpenCV releases.

Suggestion for better bandwidth for non-http transmitting of matrices

This can be implemented in the web browser as well, but it will be a bit harder to do so, im only providing a very simple example.

Better bandwidth may be achieved if the jpeg frame being sent is the difference between the previous Matrix and the current matrix we are about to send. This is because for small periods of time, not much in the matrix would change significantly, this means subtracting these matrices would leave a lot of values near zero, this means when we do jpeg compression on this matrix, it is more efficient. If you want more detail you can look up how jpeg and discrete fourier transforms work.

Unfortunately I am unfamiliar with the opencv interface for go lang but here is an implementation in c++. If you do implement this the client will have to change as well, it will have to add the incoming matrix to the previous matrix it received.

capture

capture1

As you can see the size of the data to transmit is a lot lower.

capture

android build

Hi there,

I am interested to build this application for android device, I saw you do have android support, however I am having trouble to build it. Can you please kindly share the build steps for the android build?

Thanks.

Raspberry Pi version 2 executable are broken

Installed "cam2ip" on a Raspberry Pi version 2 and got the following when executing.

$ cam2ip
cam2ip: /usr/lib/arm-linux-gnueabihf/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by cam2ip)
cam2ip: /usr/lib/arm-linux-gnueabihf/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by cam2ip)

I get exactly the same messages when executing the version for Raspberry Pi v3 on the4 v2 platform

html websocket is 127.0.0.1 when connecting from remote computer (RPI3)

I just installed cam2ip on my RPI B3+ and it works well.
My RPI has static IP 192.168.0.60
MJPEG works perfectly when I connect here : http://192.168.0.60:56000/mjpeg

But HTML doesn't work when connecting to http://192.168.0.60:56000/html
I'm connecting from a remote computer on the network
But the javascript code wants to open websocket 127.0.0.1
"WebSocket connection to 'ws://127.0.0.1:56000/socket' failed: Error in connection establishment:net::ERR_CONNECTION_REFUSED"

It should open ws://192.168.0.60:56000

Am I doing something wrong ?

Provide a Docker image

Hello again,

I am using cam2ip instead of motion because motion is using to much CPU all the time, and I love Go by the way. I am using it inside a Docker container. Could be nice to provide it officially no ?

Below the Dockerfile that I am using right now. It could be improved by using alpine and environment variables for example.

FROM armhf/ubuntu
LABEL maintainer="Francois ALLAIS <[email protected]>"

RUN apt-get update && \
    apt-get install -y wget && \
    rm -rf /var/lib/apt/lists/* && \
    mkdir -p /app && \
    cd /app && \
    wget https://github.com/gen2brain/cam2ip/releases/download/1.3/cam2ip-1.3-RPi3.tar.gz && \
    tar zxvpf cam2ip-1.3-RPi3.tar.gz && \
    cp cam2ip-1.3-RPi3/cam2ip ./ && \
    chmod +x cam2ip && \
    rm cam2ip-1.3-RPi3.tar.gz

WORKDIR /app

EXPOSE     80
CMD        [ "/app/cam2ip", "--bind-addr", ":80", "--delay", "2" ]

cannot retreive frame : eof

Hi

win 10
downloaded 64 bit version
double clicked on it from the winrar window
web cam is plugged
it asks for the firewall to allow access, I click yess
no matter what I choose in the web browser, it keeps giving me that error

Listening on :56000 2023/07/22 19:38:40 socket: read: camera: can not retrieve frame: EOF 2023/07/22 19:38:43 socket: read: camera: can not retrieve frame: EOF 2023/07/22 19:38:44 socket: read: camera: can not retrieve frame: EOF

Cannot open more than 2 cameras on windows

When we try to open 3th camera we got:
camera: cannot open camera XX
All cameras are working when running 1 or 2 instances.
We use windows x64 (opencv_ffmpeg2413_64.dll). We use different ports and indexes.

Please add LICENSE

Please add a license to your project. Without one it is legally questionable to work with your code. I recommend ISC for permissive license, or AGPL for a copyleft license.

Cam2IP Source Code Not able to compile on Windows 10

i had followed all the steps mentioned for Source Code Compile
i had installed following things

  1. go1.11.windows-amd64.msi
    GOPATH: %USERPROFILE%\go

  2. libjpeg-turbo-2.0.0-gcc.exe
    PATH: C:\libjpeg-turbo-gcc\bin

  3. mingw-w64-install.exe
    PATH: C:\Program Files\mingw-w64\x86_64-7.1.0-posix-seh-rt_v5-rev2\mingw64\bin

  4. opencv-2.4.13.6-vc14.exe
    PATH: C:\Program Files\mingw-w64\x86_64-7.1.0-posix-seh-rt_v5-rev2\mingw64\opencv\build\x64\vc14\bin

and while trying to compile im getting the error below attached let me know how can i compile successfully
capture

Only open camera when capturing

This is a fantastic tool! It would work better for my case if it if it did not grab the camera as soon as the server is started, but instead only when it is actively serving video or images. This might result in some lag time when starting up, but this would not be a problem for me. Leaving the camera off when the server is not in use would be helpful.

Not familiar with go or opencv, but it looks that the camera is initialized in New()

func New(opts Options) (camera *Camera, err error) {

Not sure but maybe that initialization could be deferred? Possibly to Read() ?? Or maybe done by the handlers? (JPEG would release immediately; MJPEG or HTTP would release when the connection is closed)

High cpu usage?

Hi. I've used this software for a while and it does a nice job with my cheap logitech C270 webcam, thanks. However, cpu usage for cam2ip is always at the top.

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

7158 rolf 20 0 824140 41904 13576 S 85.2 0.3 5902:38 cam2ip

This looks to be spread pretty evenly across the 4 cores, according to htop. A bit earlier this a.m., CPU was more like 75%, maybe due to lower light levels? I am viewing the stream in Chrome at fullscreen, typically, and it's been running well for about 4 days, this session. That's much better than when I was using vlc to view the v4l2 device, which would crash frequently, requiring re-starts/re-plugs of the usb cable. Kudos!

Following are some bits on the hardware and the command I use to start cam2ip. I wonder if you have any thoughts? Thanks.

$ inxi -C
CPU:       Topology: Quad Core model: Intel Core i5-6500 type: MCP L2 cache: 6144 KB 
           Speed: 3359 MHz min/max: 800/3600 MHz Core speeds (MHz): 1: 3381 2: 3351 3: 3356 
           4: 3320 
[rolf@z170i ~]$ inxi -b
System:    Host: z170i Kernel: 4.14.30-desktop-3.mga6 x86_64 bits: 64 Desktop: N/A 
           Distro: Mageia 6 mga6 
Machine:   Type: Desktop Mobo: ASUSTeK model: Z170I PRO GAMING v: Rev X.0x serial: N/A 
           UEFI [Legacy]: American Megatrends v: 3607 date: 03/21/2018 
CPU:       Quad Core: Intel Core i5-6500 type: MCP speed: 3454 MHz min/max: 800/3600 MHz 
Graphics:  Card-1: Intel HD Graphics 530 driver: i915 v: kernel 
           Display Server: Mageia X.org 11.0 driver: intel,v4l 
           resolution: 1280x800~60Hz, 1152x864~60Hz 
           OpenGL: renderer: llvmpipe (LLVM 3.9 256 bits) v: 3.3 Mesa 17.3.6 
Network:   Card-1: Intel Ethernet Connection I219-V driver: e1000e 
Drives:    HDD Total Size: 268.30 GiB used: 34.69 GiB (12.9%) 
Info:      Processes: 232 Uptime: 6d 11h 43m Memory: 15.54 GiB used: 3.05 GiB (19.6%) 
           Shell: bash inxi: 2.9.11

/home/rolf/cam2ip-1.3-64bit/cam2ip -height 768 -width 1024

Password?

What is the format for the password file login name and password?

Multiple cameras

If a computer has multiple cameras (virtual or physical), it can be hard to identify the camera by an index number. Perhaps enumerating the camera index and which camera it is in a command switch would be useful. In addition, allowing you to select a camera by name would be good for times when the index may change from time to time.

Goost lib?

I get an import error related to base64 from goost namespace. It seems goost.org does not work. Wouldn't it be better using the standard base64? I have a fork with the fix if interested.

go get goost.org/encoding/base64 
go get: unrecognized import path "goost.org/encoding/base64": https fetch: Get "https://goost.org/encoding/base64?go-get=1": dial tcp: lookup goost.org on 172.25.192.1:53: no such host

If not, is there a workaround for this?

How to change index camera

I know this is not an issue I'm just new to this and a bit slow. Can't find an answer anywhere else. How can I change via command line which camera is used? Or is it compiling the program where I can change that? Im just downloading the binaries which works great but use the internal webcam. Thank you for your time.

Random crash on Mac OS after running few minutes

I tried the precompiled for Mac OS. It works but randomly crashes after a few minutes.

Command: cam2ip' -bind-addr :62001 -delay 100
OS: Mac OS 11.2.3

Logs:

Listening on :62001
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x7fff274a81c9]
runtime stack:
runtime.throw(0x49a96c4, 0x2a)
/home/milann/go/src/runtime/panic.go:774 +0x72
runtime.sigpanic()
/home/milann/go/src/runtime/signal_unix.go:378 +0x47c
goroutine 40 [syscall]:
runtime.cgocall(0x43b7fe0, 0xc00025f7a0, 0x1)
/home/milann/go/src/runtime/cgocall.go:128 +0x5b fp=0xc00025f770 sp=0xc00025f738 pc=0x40058eb
github.com/gen2brain/go-opencv/opencv._Cfunc_cvGrabFrame(0x52056c0, 0x0)
_cgo_gotypes.go:2108 +0x49 fp=0xc00025f7a0 sp=0xc00025f770 pc=0x4200649
github.com/gen2brain/go-opencv/opencv.(*Capture).GrabFrame.func1(0x52056c0, 0xc000092e00)
/home/milann/golang/pkg/mod/github.com/gen2brain/[email protected]/opencv/highgui.go:497 +0x56 fp=0xc00025f7d8 sp=0xc00025f7a0 pc=0x4207c06
github.com/gen2brain/go-opencv/opencv.(*Capture).GrabFrame(0x52056c0, 0xc000146030)
/home/milann/golang/pkg/mod/github.com/gen2brain/[email protected]/opencv/highgui.go:497 +0x2b fp=0xc00025f7f8 sp=0xc00025f7d8 pc=0x42056ab
github.com/gen2brain/cam2ip/camera.(*Camera).Read(0xc000086580, 0xc00025f960, 0x4a2f480, 0xc0000a2140, 0x0)
/home/milann/Projects/cam2ip/camera/camera_cv2.go:43 +0x44 fp=0xc00025f8a8 sp=0xc00025f7f8 pc=0x42099a4
github.com/gen2brain/cam2ip/handlers.(*MJPEG).ServeHTTP(0xc0000a2520, 0x4a385a0, 0xc0003e4000, 0xc0003d2000)
/home/milann/Projects/cam2ip/handlers/mjpeg.go:59 +0x5cf fp=0xc00025faf0 sp=0xc00025f8a8 pc=0x43b0e2f
github.com/gen2brain/cam2ip/server.newAuthHandler.func1(0x4a385a0, 0xc0003e4000, 0xc0003d2000)
/home/milann/Projects/cam2ip/server/server.go:85 +0x71 fp=0xc00025fb90 sp=0xc00025faf0 pc=0x43b1f51
net/http.HandlerFunc.ServeHTTP(0xc0000a2540, 0x4a385a0, 0xc0003e4000, 0xc0003d2000)
/home/milann/go/src/net/http/server.go:2007 +0x44 fp=0xc00025fbb8 sp=0xc00025fb90 pc=0x4369b64
net/http.(*ServeMux).ServeHTTP(0x4d9d6a0, 0x4a385a0, 0xc0003e4000, 0xc0003d2000)
/home/milann/go/src/net/http/server.go:2387 +0x1bd fp=0xc00025fc18 sp=0xc00025fbb8 pc=0x436ba3d
net/http.serverHandler.ServeHTTP(0xc000118000, 0x4a385a0, 0xc0003e4000, 0xc0003d2000)
/home/milann/go/src/net/http/server.go:2802 +0xa4 fp=0xc00025fc48 sp=0xc00025fc18 pc=0x436cfb4
net/http.(*conn).serve(0xc0003b8000, 0x4a39120, 0xc0003ca000)
/home/milann/go/src/net/http/server.go:1890 +0x875 fp=0xc00025ffc8 sp=0xc00025fc48 pc=0x4368955
runtime.goexit()
/home/milann/go/src/runtime/asm_amd64.s:1357 +0x1 fp=0xc00025ffd0 sp=0xc00025ffc8 pc=0x405c781
created by net/http.(*Server).Serve
/home/milann/go/src/net/http/server.go:2927 +0x38e
goroutine 1 [IO wait]:
internal/poll.runtime_pollWait(0x50b6f68, 0x72, 0x0)
/home/milann/go/src/runtime/netpoll.go:184 +0x55
internal/poll.(*pollDesc).wait(0xc0000f8098, 0x72, 0x0, 0x0, 0x4999adc)
/home/milann/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/home/milann/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Accept(0xc0000f8080, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
/home/milann/go/src/internal/poll/fd_unix.go:384 +0x1f8
net.(*netFD).accept(0xc0000f8080, 0xc0c882361d, 0x6d6cc882361d, 0x100000001)
/home/milann/go/src/net/fd_unix.go:238 +0x42
net.(*TCPListener).accept(0xc0000a25e0, 0x608200f4, 0xc000050bd8, 0x40b5c56)
/home/milann/go/src/net/tcpsock_posix.go:139 +0x32
net.(*TCPListener).Accept(0xc0000a25e0, 0xc000050c28, 0x18, 0xc000000180, 0x436d47e)
/home/milann/go/src/net/tcpsock.go:261 +0x47
net/http.(*Server).Serve(0xc000118000, 0x4a382e0, 0xc0000a25e0, 0x0, 0x0)
/home/milann/go/src/net/http/server.go:2896 +0x286
github.com/gen2brain/cam2ip/server.(*Server).ListenAndServe(0xc0000b4120, 0xc0000aa008, 0x499c9b4)
/home/milann/Projects/cam2ip/server/server.go:71 +0x3e8
main.main()
/home/milann/Projects/cam2ip/cmd/cam2ip/main_cv.go:80 +0x66e
goroutine 52 [IO wait, 2 minutes]:
internal/poll.runtime_pollWait(0x50b6e98, 0x72, 0xffffffffffffffff)
/home/milann/go/src/runtime/netpoll.go:184 +0x55
internal/poll.(*pollDesc).wait(0xc0003d6018, 0x72, 0x0, 0x1, 0xffffffffffffffff)
/home/milann/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/home/milann/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc0003d6000, 0xc0003c8041, 0x1, 0x1, 0x0, 0x0, 0x0)
/home/milann/go/src/internal/poll/fd_unix.go:169 +0x22b
net.(*netFD).Read(0xc0003d6000, 0xc0003c8041, 0x1, 0x1, 0x0, 0x0, 0x0)
/home/milann/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc0000aa088, 0xc0003c8041, 0x1, 0x1, 0x0, 0x0, 0x0)
/home/milann/go/src/net/net.go:184 +0x68
net/http.(*connReader).backgroundRead(0xc0003c8030)
/home/milann/go/src/net/http/server.go:677 +0x58
created by net/http.(*connReader).startBackgroundRead
/home/milann/go/src/net/http/server.go:673 +0xd4

Do you have any ideas about the issue?

Thanks!

jpeglib.h: No such file or directory

Hello,

I get this error when installing this Go package.

root@crustbook:/home/henry/.motion#     go get -v github.com/gen2brain/cam2ip/cmd/cam2ip
github.com/antonini/golibjpegturbo
github.com/klauspost/compress/flate
# github.com/antonini/golibjpegturbo
/root/go/src/github.com/antonini/golibjpegturbo/decode.go:32:10: fatal error: jpeglib.h: No such file or directory
   32 | #include <jpeglib.h>
      |          ^~~~~~~~~~~
compilation terminated.
# github.com/klauspost/compress/flate
/root/go/src/github.com/klauspost/compress/flate/deflate.go:135:23: cannot convert d.window (type []byte) to type *[32768]byte
/root/go/src/github.com/klauspost/compress/flate/deflate.go:135:56: cannot convert d.window[windowSize:] (type []byte) to type *[32768]byte
/root/go/src/github.com/klauspost/compress/flate/fast_encoder.go:93:28: cannot convert e.hist (type []byte) to type *[32768]byte
/root/go/src/github.com/klauspost/compress/flate/fast_encoder.go:93:63: cannot convert e.hist[offset:] (type []byte) to type *[32768]byte
/root/go/src/github.com/klauspost/compress/flate/huffman_bit_writer.go:794:17: cannot convert w.literalFreq[:] (type []uint16) to type *[256]uint16
/root/go/src/github.com/klauspost/compress/flate/huffman_bit_writer.go:796:16: cannot convert w.literalFreq[256:] (type []uint16) to type *[32]uint16

Os info:

/root/go/src/github.com/klauspost/compress/flate/fast_encoder.go:93:63: caroot@crustbook:/home/henry/.motion# cat /etc/os-release 
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
root@crustbook:/home/henry/.motion# 

...

root@crustbook:/home/henry/.motion# apt search jpegli*
Sorting... Done
Full Text Search... Done

Can't get higher than 5FPS

Greetings. I have a Windows 10 system with two 1080p webcams connected to it running cam2ip for both cameras. The cameras support up to 30FPS at 1080p, but cam2ip will not run them at any higher than 5FPS no matter what value I use for the -delay option. I don't need to run them at the full 30FPS, but I'd like to be able to run them at at least 10FPS. Is there an additional setting I'm overlooking?

Thank you.

Cannot install using go get

When I try to install using go get -v -tags cv2 github.com/gen2brain/cam2ip/cmd/cam2ip I get the following:

# pkg-config --cflags  -- opencv
Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing 'opencv.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opencv' found
pkg-config: exit status 1
# github.com/klauspost/compress/flate
go/src/github.com/klauspost/compress/flate/deflate.go:135:23: cannot convert d.window (type []byte) to type *[32768]byte
go/src/github.com/klauspost/compress/flate/deflate.go:135:56: cannot convert d.window[windowSize:] (type []byte) to type *[32768]byte
go/src/github.com/klauspost/compress/flate/fast_encoder.go:93:28: cannot convert e.hist (type []byte) to type *[32768]byte
go/src/github.com/klauspost/compress/flate/fast_encoder.go:93:63: cannot convert e.hist[offset:] (type []byte) to type *[32768]byte
go/src/github.com/klauspost/compress/flate/huffman_bit_writer.go:794:17: cannot convert w.literalFreq[:] (type []uint16) to type *[256]uint16
go/src/github.com/klauspost/compress/flate/huffman_bit_writer.go:796:16: cannot convert w.literalFreq[256:] (type []uint16) to type *[32]uint16

When I do go get -v github.com/gen2brain/cam2ip/cmd/cam2ip I get the same without the opencv issue.

When I run one of the binaries offered, I get -bash: ./cam2ip: No such file or directory except for if I use the rpi static version which seems to work. However, when running that version it would seem that the frame rate is very slow.

For some context, this is the system I am working with

pi@crafthub:~/cam2ip-1.6-RPi-nocgo $ cat /etc/os-release 
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
pi@crafthub:~/cam2ip-1.6-RPi-nocgo $ v4l2-ctl --list-formats-ext --device /dev/video0
ioctl: VIDIOC_ENUM_FMT
        Type: Video Capture

        [0]: 'MJPG' (Motion-JPEG, compressed)
                Size: Discrete 1920x1080
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 640x480
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 1024x768
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 1280x720
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 1280x1024
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 2048x1536
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 320x240
                        Interval: Discrete 0.033s (30.000 fps)
        [1]: 'YUYV' (YUYV 4:2:2)
                Size: Discrete 640x480
                        Interval: Discrete 0.040s (25.000 fps)
                Size: Discrete 1024x768
                        Interval: Discrete 0.100s (10.000 fps)
                Size: Discrete 1280x720
                        Interval: Discrete 0.100s (10.000 fps)
                Size: Discrete 1280x1024
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 1920x1080
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 320x240
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 2048x1536
                        Interval: Discrete 0.200s (5.000 fps)
pi@crafthub:~/cam2ip-1.6-RPi-nocgo $ 

Any help you can offer, I would appreciate. Thank you in advance.

Add option to rotate

Hello,

Nice software ! That could be nice to add an option to rotate (90 / 180 / 270) the image.
What do you think ?

New Builds on Releases?

Just as it is stated above. Will there be any new release static builds? There seem to be some commits from the last release binary uptil now. Just curious to know.

Edit: ty for your work on cam2ip tis very helpful :>

Add ability to choose camera by ID

Currently when I run the program I go through a series of indexes until I find the right camera on my mac.
-index 1, 2, 3 etc

It would be nice if we could call the camera by its Unique ID.
Example:
Unique ID: 0x4015000005ac1112

Also, it would be even better if the program would tell us what those Unique Ids are (on our system)

Full Example

  1. Start the program by running it via index
    /Users/bronzemedia/Downloads/cam2ip -index 2 -bind-addr ":4444" -width 1920 -height 1080

  2. The system responds with:

_Listening on. :4444
CameraID.     : 0x4015000005ac1112_  
  1. Then next time we can call it like this:
    /Users/bronzemedia/Downloads/cam2ip -cameraid "0x4015000005ac1112" -bind-addr ":4444" -width 1920 -height 1080

Memory accumulation (need streaming support)

Great project.

However, running on browser without streaming support will exhaust memory pretty soon. Its great if you only want to peek every now and then, but to keep it live for a long time is not an option.

camera: no camera at index 0

Hello

I have a problem with cam2ip.
When I run it gives me the answer camera: no camera at index 0
webcam visible through lsusb and support uvc:
|__usb1 1d6b:0002:0310 09 2.00 480MBit/s 0mA 1IF (xhci_hcd 0000:00:14.0) hub
|__1-2 05e3:0608:8537 09 2.00 480MBit/s 100mA 1IF ( ffffffd6ffffffa3ffffffebffffffcb) hub
|__1-2.3 f400:f400:1100 00 2.00 480MBit/s 500mA 1IF (UFD 2.0 Silicon-Power16G 1202064705001278)
|__1-3 18ec:5555:0100 ef 2.00 480MBit/s 200mA 4IFs (ARKMICRO USB2.0 PC CAMERA fffffff5ffffffa7ffffffe2ffffffaf)
|__usb2 1d6b:0003:0310 09 3.00 5000MBit/s 0mA 1IF (xhci_hcd 0000:00:14.0) hub

I also tried using -index 1(2,3,4,5...) but it gave no result.
I tried to plug the webcam into other USB ports, but it did not help.

Issue with libc6 and the 1.4 version

Hello,

I am facing this issue with last version : /lib/arm-linux-gnueabihf/libc.so.6: version 'GLIBC_2.27' not found
Do you know where it could come from please ?

Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.