Last active
November 8, 2018 20:21
-
-
Save techyian/49e32e029d51c0174d03b1a0fa80c4b4 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public async Task PicAndVid() | |
{ | |
using (var imgCaptureHandler = new ImageStreamCaptureHandler("/home/pi/images/", "jpg")) | |
using (var vidCaptureHandler = new VideoStreamCaptureHandler("/home/pi/videos/", "avi")) | |
using (var splitter = new MMALSplitterComponent(null)) | |
using (var imgEncoder = new MMALImageEncoder(imgCaptureHandler, continuousCapture: true)) | |
using (var vidEncoder = new MMALVideoEncoder(vidCaptureHandler)) | |
using (var nullSink = new MMALNullSinkComponent()) | |
{ | |
cam.ConfigureCameraSettings(); | |
// Create our component pipeline. | |
imgEncoder.ConfigureOutputPort(0, MMALEncoding.JPEG, MMALEncoding.I420, 90); | |
vidEncoder.ConfigureOutputPort(0, MMALEncoding.H264, MMALEncoding.I420, 0, 25000000); | |
cam.Camera.VideoPort.ConnectTo(splitter); | |
splitter.Outputs[0].ConnectTo(imgEncoder); | |
splitter.Outputs[1].ConnectTo(vidEncoder); | |
cam.Camera.PreviewPort.ConnectTo(nullSink); | |
// Camera warm up time | |
await Task.Delay(2000); | |
CancellationTokenSource cts = new CancellationTokenSource(TimeSpan.FromSeconds(15)); | |
// Process for 15 seconds. | |
await cam.ProcessAsync(cam.Camera.VideoPort, cts.Token); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment