All Projects → blackjack → Webcam

blackjack / Webcam

Licence: mit
Golang webcam library for Linux

Programming Languages

go
31211 projects - #10 most used programming language

Labels

Projects that are alternatives of or similar to Webcam

Home-Monitoring-Raspberry-Pi-Node
Raspberry Pi & Node.js diy Home Monitoring & Intruder Alert system
Stars: ✭ 46 (-84.72%)
Mutual labels:  webcam
jeelizPupillometry
Real-time pupillometry in the web browser using a 4K webcam video feed processed by this WebGL/Javascript library. 2 demo experiments are included.
Stars: ✭ 78 (-74.09%)
Mutual labels:  webcam
ItroublveTSC
Official Source of ItroublveTSC, totally open source. No virus or anything. Feel free to have a look :)
Stars: ✭ 82 (-72.76%)
Mutual labels:  webcam
rt-mrcnn
Real time instance segmentation with Mask R-CNN, live from webcam feed.
Stars: ✭ 47 (-84.39%)
Mutual labels:  webcam
VideoRecognition-realtime-autotrainer-alerts
State of the art object detection in real-time using YOLOV3 algorithm. Augmented with a process that allows easy training of the classifier as a plug & play solution . Provides alert if an item in an alert list is detected.
Stars: ✭ 36 (-88.04%)
Mutual labels:  webcam
getting-started
List of ideas for getting started with TimVideos projects
Stars: ✭ 50 (-83.39%)
Mutual labels:  webcam
Nager.VideoStream
Get images from a network camera stream or webcam
Stars: ✭ 27 (-91.03%)
Mutual labels:  webcam
Amazing Python Scripts
🚀 Curated collection of Amazing Python scripts from Basics to Advance with automation task scripts.
Stars: ✭ 229 (-23.92%)
Mutual labels:  webcam
MTG-Card-Reader-Web
MTG-Card-Reader 2.0, built as a webpage.
Stars: ✭ 21 (-93.02%)
Mutual labels:  webcam
simple-login-qrcode-webcam-php
🐱‍💻 Just simple login mechanism using QR Code Scanner with Webcam in PHP
Stars: ✭ 66 (-78.07%)
Mutual labels:  webcam
qubes-video-companion
Securely stream webcams and share screens across virtual machines *THIS PROJECT IS CURRENTLY STILL IN DEVELOPMENT (Mostly finishing switch to MJPEG for big performance boost; see FAQ)*
Stars: ✭ 38 (-87.38%)
Mutual labels:  webcam
Live-Streaming-using-OpenCV-Flask
A Flask Web-App to stream live from local webcam or CCTV (rtsp link)
Stars: ✭ 144 (-52.16%)
Mutual labels:  webcam
PhpWebcam
This is a PHP library to capture webcam frames
Stars: ✭ 33 (-89.04%)
Mutual labels:  webcam
webcam-to-cctv-using-rpi
In this project, we will use a webcam with Raspberry Pi to live stream wirelessly.
Stars: ✭ 17 (-94.35%)
Mutual labels:  webcam
WebcamFX
Open the camera, take pictures 📷 & save them using Javafx.
Stars: ✭ 39 (-87.04%)
Mutual labels:  webcam
jeelizGlanceTracker
JavaScript/WebGL lib: detect if the user is looking at the screen or not from the webcam video feed. Lightweight and robust to all lighting conditions. Great for play/pause videos if the user is looking or not, or for person detection. Link to live demo.
Stars: ✭ 68 (-77.41%)
Mutual labels:  webcam
asciisciit
ASCII Art, Video, and Plotting Toolbox
Stars: ✭ 71 (-76.41%)
Mutual labels:  webcam
Qbr
A webcam-based 3x3x3 rubik's cube solver written in Python 3 and OpenCV.
Stars: ✭ 122 (-59.47%)
Mutual labels:  webcam
webcam
OpenCV and UDP webcam streaming
Stars: ✭ 43 (-85.71%)
Mutual labels:  webcam
libuvc-rs
Rust wrapper around libuvc
Stars: ✭ 31 (-89.7%)
Mutual labels:  webcam

go-webcam

Build Status GoDoc

This is a go library for working with webcams and other video capturing devices. It depends entirely on V4L2 framework, thus will compile and work only on Linux machine.

Installation

$ go get github.com/blackjack/webcam

Usage

import "github.com/blackjack/webcam"
// ...
cam, err := webcam.Open("/dev/video0") // Open webcam
if err != nil { panic(err.Error()) }
defer cam.Close()
// ...
// Setup webcam image format and frame size here (see examples or documentation)
// ...
err = cam.StartStreaming()
if err != nil { panic(err.Error()) }
for {
  err = cam.WaitForFrame(timeout)

  switch err.(type) {
  case nil:
  case *webcam.Timeout:
    fmt.Fprint(os.Stderr, err.Error())
    continue
  default:
    panic(err.Error())
  }

  frame, err := cam.ReadFrame()
  if len(frame) != 0 {
   // Process frame
  } else if err != nil {
    panic(err.Error())
  }
}

For more detailed example see examples folder The number of frame buffers used may be set as:

// If already streaming, stop streaming.
if streaming_on {
  cam.StopStreaming()
}
err = cam.SetBufferCount(64)

Roadmap

The library is still under development so API changes can happen. Currently library supports streaming using only MMAP method, which should be sufficient for most of devices available on the market. Other streaming methods can be added in future (please create issue if you need this).

Also currently image format is defined by 4-byte code received from V4L2, which is good in terms of compatibility with different versions of Linux kernel, but not very handy if you want to do some image manipulations. Plans are to aligh V4L2 image format codes with Image package from Go library.

License

See LICENSE file

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].