GithubHelp home page GithubHelp logo

asafrob / webrtcshitblt Goto Github PK

View Code? Open in Web Editor NEW
22.0 5.0 3.0 506 KB

client side WebRTC lib to add an image / watermark on the MediaSource

License: MIT License

JavaScript 81.96% HTML 18.04%
webrtc video watermark logo image client-side javascript es6

webrtcshitblt's Introduction

WebRtcShitBlt

npm

image show a smaple use of a video captured by WebRTC with an embeded image (brown/yellow) on the top left corner
alt text

what does it do ?

This library wraps a WebRTC source and returns a MediaStream that can be used as a normal MediaStream u get from navigator.mediaDevices.getUserMedia.
The returned MediaStream will have your selected image embeded in the video stream.

common usecases

  • logo
  • watermark
  • image extracted from a presentation

how does it work

The code creates an hidden video element and an hidden canvas element
The original MediaStream is played on the hidden video element.
The video element is sampled for images, which are drawn to the hidden canvas.
The logo image is also being drawn to the canvas.
Canvas MediaStream is returned to the calling app.

Sample code

        // the constanint object defaults to {video: true, audio: true} but to save u the echo...
        var sb = new WebRtcSB({video:{width:640, height:480}, audio: false});
        // create manipulation objects. they will be processed in the order you supply them.
        // in current live demo u will get 4 images
        var imgCopy = new ImageCopy();
        var imgAdd = new ImageAdd('sb.png', 10, 10, 50, 50);
        sb.setManipulators([imgCopy, imgAdd]);

        sb.sbStartCapture()
            .then((stream)=>{
            document.getElementById('myVideo').srcObject = stream;
        })

Note

  • this library is based on ES6

Tested on

  • chrome 63 (OS X)
  • FireFox 57 (OS X)
  • Safari 11.0.3 (OS X)

Roadmap

  • test & support other browsers/OSs
  • implement more plugins

Versions history

####1.0.0 initial release ####1.0.1 workaround for safari - instead of an hidden video element use a 1px*1px video element ####1.0.2 support iOS 11

webrtcshitblt's People

Contributors

asafrob avatar

Stargazers

Krisztián Pillis avatar  avatar Chucongqing avatar HyoSung avatar Marco Colombo avatar 박지수 Jisu Park avatar cfcodefans avatar Ali Doğu avatar Yoga Lin avatar Alexandre Verri avatar Milson Júnior avatar Tal Bone avatar  avatar  avatar Eran Sakal avatar Moshe Maor avatar  avatar  avatar NaDaViZ avatar leeoxiang avatar Johnathan Amit Kanarek (Tan-Tan) avatar  avatar

Watchers

leeoxiang avatar James Cloos avatar Tal Bone avatar  avatar Moshe Maor avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.