You can see it working live here vue-stream-mask demo
Features
- Person & multi-person body segmentation blurring video background
 - Green screen mask, you can use the background you wish with a simple property
 
yarn add vue-stream-maskimport * as VueStreamMask from "vue-stream-mask" Vue.use(VueStreamMask)<vue-stream-mask />By default when the component loads it ask for the camera media and later emits the loaded event wich serves as a parameter the stream that you can add to a RTCPeerConnection, If you want to avoid this behaviour check the on demand way of use.
Example:
<vue-stream-mask @loaded="handleStream" /> <!-- somewhere else on like on your code methods --> <script> function handleStream(stream){ // Do things to the stream // E.g. Send it to another computer using an RTCPeerConnection // pc is an RTCPeerConnection created elsewhere this.pc.addStream(stream); } </script>If you want to ask for the media stream at a certain moment on your app
Example:
<vue-stream-mask await ref="vueStreamRef"/> <!-- somewhere else on like on your code methods --> <script> async function initStream(){ let stream = await this.$refs.vueStreamRef.init() // Do things to the stream // E.g. Send it to another computer using an RTCPeerConnection // pc is an RTCPeerConnection created elsewhere this.pc.addStream(stream); } </script>| function | Description | 
|---|---|
async init()  |  Triggering this function will start video capture and return a media stream object | 
stop()  |  Triggering this function will stop video capture | 
| Property name | Description | 
|---|---|
await |  Component wont ask for media stream until you run the init() func | 
show |  Displays a canvas element with the local stream | 
multiple |  Enables multiple person segmentation | 
background |  If enabled it replaces persons background with given img url | 
backgroundBlurAmount |  if background prop its not defined you can handle with this one how much blur you want in the background |