All Projects → asafrob → WebRtcShitBlt

asafrob / WebRtcShitBlt

Licence: MIT license
client side WebRTC lib to add an image / watermark on the MediaSource

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to WebRtcShitBlt

react-watermark-module
React水印组件,支持图片水印,文字水印。
Stars: ✭ 31 (+63.16%)
Mutual labels:  logo, watermark
pdfconduit
Prepare documents for distribution
Stars: ✭ 22 (+15.79%)
Mutual labels:  watermark
json-as-xlsx
Create excel from json npm package
Stars: ✭ 103 (+442.11%)
Mutual labels:  client-side
MinifyAllCli
📦 A lightweight, simple and easy npm tool to 𝗺𝗶𝗻𝗶𝗳𝘆 JSON/C, HTML and CSS! Also known as MinifyAll core! ⭐ Usable as 𝑪𝑳𝑰 tool or 𝒊𝒎𝒑𝒐𝒓𝒕𝒂𝒃𝒍𝒆 in TS/JS as a 𝑴𝑶𝑫𝑼𝑳𝑬 🥰
Stars: ✭ 21 (+10.53%)
Mutual labels:  client-side
Discord-Console-hacks
A collection of JavaScript Codes I've made to enhance the User Experience of Discord and some other Discord related stuff
Stars: ✭ 353 (+1757.89%)
Mutual labels:  client-side
RideShare-Trip-Stats
Chrome Extension to visualize your uber trip statistics
Stars: ✭ 61 (+221.05%)
Mutual labels:  logo
jquery-smarty
jQuery Smarty Plugin (jQSmarty) is a port of the Smarty Templating Engine to Javascript/jQuery, offering a familiar client-side templating solution
Stars: ✭ 18 (-5.26%)
Mutual labels:  client-side
ChannelFiles
Miscellaneous TFL/LL YouTube channel files.
Stars: ✭ 12 (-36.84%)
Mutual labels:  logo
ImageResize
Image resizing tool for .Net applications with ability to add text/image watermark, Supports animated images as well.
Stars: ✭ 45 (+136.84%)
Mutual labels:  watermark
server-media
This repository collects icons, logos & information about game servers.
Stars: ✭ 29 (+52.63%)
Mutual labels:  logo
typechecker
Utilities to get and check variable types (isString, isPlainObject, isRegExp, etc)
Stars: ✭ 44 (+131.58%)
Mutual labels:  client-side
clappr-plugins
Main plugins for the Clappr project
Stars: ✭ 22 (+15.79%)
Mutual labels:  watermark
Dj-Engine
A Dj Hero 2 Clone for PC :)
Stars: ✭ 41 (+115.79%)
Mutual labels:  logo
hack-cs-tools
client side (C-S) penetration toolkit
Stars: ✭ 111 (+484.21%)
Mutual labels:  client-side
agollo
🚀Go client for ctrip/apollo (https://github.com/apolloconfig/apollo)
Stars: ✭ 563 (+2863.16%)
Mutual labels:  client-side
Hangons
Web app to parse and save your Hangouts.json file into a more friendly format.
Stars: ✭ 45 (+136.84%)
Mutual labels:  client-side
designs
Blockstack designs
Stars: ✭ 26 (+36.84%)
Mutual labels:  logo
Okuma-Reader
Online book/manga/image set/webtoon reader and library with some key features like Japanese page order, double-page view, touch gestures, multiple languages, and pre-caching of next pages.
Stars: ✭ 31 (+63.16%)
Mutual labels:  client-side
Get-Discord-Token
Automatically get discord token from browser.
Stars: ✭ 46 (+142.11%)
Mutual labels:  client-side
kafka-cli
A command line client of kafka
Stars: ✭ 15 (-21.05%)
Mutual labels:  client-side

WebRtcShitBlt

npm

Live demo at https://asafrob.github.io/WebRtcShitBlt/

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].