All Projects → vignetteapp → SeeShark

vignetteapp / SeeShark

Licence: BSD-3-Clause license
Simple C# camera library.

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to SeeShark

three-render-objects
Easy way to render ThreeJS objects with built-in interaction defaults
Stars: ✭ 33 (-34%)
Mutual labels:  camera
Nager.VideoStream
Get images from a network camera stream or webcam
Stars: ✭ 27 (-46%)
Mutual labels:  camera
ScoutAR
Augmented reality app displays nearby restaurant information in a live camera and map view.
Stars: ✭ 28 (-44%)
Mutual labels:  camera
CameraXDemo
CameraXDemo - Demonstrate CameraX APIs like Preview, Capture and Analysis.
Stars: ✭ 17 (-66%)
Mutual labels:  camera
xiaomi gdrive
Google drive loader for xiaomi smart ip camera
Stars: ✭ 70 (+40%)
Mutual labels:  camera
ffclj
Clojure ffmpeg wrapper
Stars: ✭ 42 (-16%)
Mutual labels:  ffmpeg-wrapper
godot-trackball-camera
A short Godot addon that adds a TrackballCamera node without gimbal lock.
Stars: ✭ 22 (-56%)
Mutual labels:  camera
TransparentCameraBar
Set the opacity, hide or shrink the camera bars.
Stars: ✭ 15 (-70%)
Mutual labels:  camera
Matthew-Lancaster
A Collect of Script For AutohotKey, DOS Command, VBScript, VB6, VB2008, Grub4Dos, Reg Keys, Win Powershell, SMTP, ARDUNIO, GITHUB Begin OCT 2018
Stars: ✭ 21 (-58%)
Mutual labels:  camera
TuSDK-for-Android-demo
TuSDK Android 图像 SDK Demo
Stars: ✭ 93 (+86%)
Mutual labels:  camera
Cat-Face-Detector-with-OpenCV-and-JavaFX
📹 A Small OpenCV (Open Source Computer Vision) Example, who has the ability to detect multiple cat faces at the same time 🐱
Stars: ✭ 24 (-52%)
Mutual labels:  camera
ionic-pwa-example-moment
A sample camera app implemented with PWA and Ionic 5.
Stars: ✭ 21 (-58%)
Mutual labels:  camera
content-transcoder
Transcodes HTTP-stream to HLS
Stars: ✭ 19 (-62%)
Mutual labels:  ffmpeg-wrapper
Comora
A simple 2D camera for Monogame.
Stars: ✭ 71 (+42%)
Mutual labels:  camera
RTSP-Client-iOS
A basic RTSP Client in SWIFT using FFMpeg wrapper for iOS.
Stars: ✭ 33 (-34%)
Mutual labels:  ffmpeg-wrapper
camera.zero
Combining Camera Zero with an Arducam 12MP camera, a Raspberry Pi Zero WH, a PiMoRoNi trackball breakout, and an Adafruit 16-LED NeoPixel ring will result in a neat little screenless camera that can be controlled with your thumb.
Stars: ✭ 26 (-48%)
Mutual labels:  camera
rpi-mpeg-ts
Stream MPEG-TS from Raspberry Pi Camera.
Stars: ✭ 43 (-14%)
Mutual labels:  camera
xiongmai-cam-api
Xiongmai IP Camera Simple API in Python
Stars: ✭ 20 (-60%)
Mutual labels:  camera
watsor
Object detection for video surveillance
Stars: ✭ 203 (+306%)
Mutual labels:  camera
jitternator
Lessons learnt from hunting jitter issues
Stars: ✭ 59 (+18%)
Mutual labels:  camera

SeeShark

Simple C# camera and display library.

Discord NuGet

When you SeeShark, you C#!

SeeShark is a simple cross-platform .NET library for handling camera and screen display inputs on Linux, Windows and MacOS.

Using FFmpeg, it allows you to enumerate camera and display devices and decode raw frames in 206 different pixel formats (because that's how powerful FFmpeg is!).

Features include:

  • Zero-copy.
  • Memory-safe.
  • Cross platform (Tested on Windows and Linux, might work on more platforms like MacOS).
  • Managing camera and display devices.
  • Control framerate, resolution and input format.
  • Notifies the application if devices get connected/disconnected.
  • Provides synchronous (method-driven) and asynchronous (event-driven) code flow.
  • Supports 206 different pixel formats.
  • Conversion of a frame from a pixel format to another.
  • Scaling frames.
  • Access to raw pixel data.

Features don't include:

  • Saving a frame as an image (here's a wiki page on how to do it using ImageSharp).
  • Recording a video stream to a video file.
  • Managing audio devices.

Example code

using System;
using System.Threading;
using SeeShark;
using SeeShark.FFmpeg;

namespace YourProgram
{
    // This program will display camera frames info for 10 seconds.
    class Program
    {
        static void Main(string[] args)
        {
            // Create a CameraManager to manage camera devices
            using var manager = new CameraManager();

            // Get the first camera available
            using var camera = manager.GetCamera(0);

            // Attach your callback to the camera's frame event handler
            camera.OnFrame += FrameEventHandler;

            // Start decoding frames asynchronously
            camera.StartCapture();

            // Just wait a bit
            Thread.Sleep(TimeSpan.FromSeconds(10));

            // Stop decoding frames
            camera.StopCapture();
        }

        // Create a callback for decoded camera frames
        public static void FrameEventHandler(object? _sender, FrameEventArgs e)
        {
            // Only care about new frames
            if (e.Status != DecodeStatus.NewFrame)
                return;

            Frame frame = e.Frame;

            // Get information and raw data from a frame
            Console.WriteLine($"New frame ({frame.Width}x{frame.Height} | {frame.PixelFormat})");
            Console.WriteLine($"Length of raw data: {frame.RawData.Length} bytes");
        }
    }
}

You can also look at our overcommented SeeShark.Example.Ascii program which displays your camera input with ASCII characters.

See demo of the example below.

ASCII output of OBS virtual camera, feat. Bad Apple!!


Contribute

You can request a feature or fix a bug by reporting an issue.

If you feel like fixing a bug or implementing a feature, you can fork this repository and make a pull request at any time!

You can also join our discord server where we talk about our different projects. We have a dedicated #seeshark channel for this one.

License

This library is licensed under the BSD 3-Clause License. See LICENSE for details.

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].