MMALSharp is an unofficial C# API for the Raspberry Pi camera. Under the hood, MMALSharp makes use of the native MMAL interface designed by Broadcom.
MMALSharp supports the following runtimes:
- Mono 4.x
- .NET Standard 2.0
PM> Install-Package MMALSharp
Take a JPEG image using YUV420 encoding:
public void TakePicture()
{
// Singleton initialized lazily. Reference once in your application.
MMALCamera cam = MMALCamera.Instance;
using (var imgCaptureHandler = new ImageStreamCaptureHandler("/home/pi/images/", "jpg"))
{
await cam.TakePicture(imgCaptureHandler, MMALEncoding.JPEG, MMALEncoding.I420);
}
// Cleanup disposes all unmanaged resources and unloads Broadcom library. To be called when no more processing is to be done
// on the camera.
cam.Cleanup();
}
Take a H.264 video using YUV420 encoding at 30 fps:
public void TakeVideo()
{
// Singleton initialized lazily. Reference once in your application.
MMALCamera cam = MMALCamera.Instance;
using (var vidCaptureHandler = new VideoStreamCaptureHandler("/home/pi/videos/", "avi"))
{
var cts = new CancellationTokenSource(TimeSpan.FromMinutes(3));
await cam.TakeVideo(vidCaptureHandler, cts.Token);
}
// Cleanup disposes all unmanaged resources and unloads Broadcom library. To be called when no more processing is to be done
// on the camera.
cam.Cleanup();
}
For full installation instructions for Mono 4.x and .NET Core, including configuration and examples - please visit the Wiki site.
MIT license
Copyright (c) 2016-2019 Ian Auty
Raspberry Pi is a trademark of the Raspberry Pi Foundation
Dave Jones @waveform80 - your Python header conversions have saved me numerous hours so far. Thank you very much.
Daniel Lerch @daniel-lerch