ng-opencam
v0.0.7
Published
Angular library component developped to manipulate camera and perform various actions
Downloads
11
Maintainers
Readme
Opencam
Opencam is an Angular library component developped to manipulate camera and perform various actions.
Demo
Try it out here: DEMO or clone this repo and run ng serve
for a full demo of opencam.
Features
- Stream video (audio support)
- Record video / capture picture
- Countdown
- Framerate
- CSS Filter
How to use
First install the package with the command npm i ng-opencam
Then, in your module.ts, import the library module
import { OpencamModule } from 'ng-opencam';
And add it to your imports modules.
You can now use <ng-opencam></ng-opencam>
it in any component.html
<ng-opencam
[capture]='this.capture$'
[height]='this.height'
[width]='this.width'
[captureType]='this.captureType'
[streamState]='this.streamState'
[mediaConstraints]='this.mediaConstraints'
[videoSource]='this.videoSource'
[audioSource]='this.audioSource'
[filters]='this.filter'
[framerate]='this.framerate'
(videoSourceEvent)='this.getVideoSources($event)'
(audioSourceEvent)='this.getAudioSources($event)'
(captureEvent)='this.getCapture($event)'
(errorEvent)='this.getErrors($event)'>
</ng-opencam>
Check out the repo for a full demo code here
Inputs
| Property | Type | Note | | -------- | ---- | ---- | | [capture]| observable(number) | triggers the capture after specific timeout | | [height] | string | height size of the capture container, if null given capture container is not displayed | | [width] | string | width size of the capture container, if null given capture container is not displayed | | [captureType] | enum(ECaptureType) | switch between various capture mode (video, picture) | | [streamState] | enum(EStreamState) | switch between various stream states (play, pause, stop)| [mediaConstraints] | enum(EMediaConstraints) | switch between various media constraints (hd, vga, fhd, default) | [videoSource] | ISourceDevice | Specify the video source for the capture, sources are emitted by (videoSourceEvent) select the one you want to use | [audioSource] | ISourceDevice | Specify the audio source for the capture, sources are emitted by (audioSourceEvent) select the one you want to use | [filters] | string | Apply css filters on the feed and capture | [framerate] | number | Specify the framerate of the recording & canvas rendering |
Outputs
| Event | Type | Note | | -------- | ---- | ---- | | (videoSourceEvent) | array(interface(ISourceDevice)) | Emits the available video source devices for the capture, triggered every time a new video input is detected | (audioSourceEvent) | array(ISourceDevice(ISourceDevice)) | Emits the available audio source devices for the capture, triggered every time a new audio input is detected | (captureEvent) | string | Emits the data URL for the media (video, picture) when the capture is triggered (and ended for the video) | (errorEvent) | Error | Emits all errors |
To-do
- Improve filter system (add models to manipulate filters instead of css string)
- Move media camera manipulation in a service
NPM
This package is on npm
https://www.npmjs.com/package/ng-opencam
License
This package is under the MIT license