In a divided world, streaming formats are a matter of inclusion. GIF was introduced by CompuServe in 1987, they didn't know how powerful it was going to be. 26 years later, using NodeJS together with Redis, WebRTC, websockets, webworkers and HTML5, MacGifer introduces GIF-based streaming, making it possible for Internet Explorer 6.0 to be part of society once again.
# Redis
sudo add-apt-repository ppa:chris-lea/redis-server
sudo apt-get update
sudo apt-get install redis-server
# using the included script
./deploy nko
Browser Node.js Browser/phone
(broadcaster) server mplayer/microwave
. . (watcher)
| | .
|--. | |
| | Get webcam frame |<--------------------------|
| | (WebRTC) |--. HTTP Request |
|<-` | | |
|--. | | Encode GIF header |
| | Draw on | | (GIFEncoder) |
| | HTML5 canvas | | |
|<-` |<-` |
|--. |-------------------------->|
| | Apply | Write header |
| | extensions | to response |
|<-` | |
|--. | |
| | Encode frame | |
| | (GIFEncoder) | |
|<-` | |
|--------------------------->|--. |
| Send frame | | Publish to |
| (websockets) | | Redis channel |
| |<-` |
| |--. |
| | | Read from |
| | | Redis channel |
| |<-` |
| |-------------------------->|
| | Write frame |
| | to response |
| | |
` ` `
- The authors of GIFEncoder.js, LZWEncoder.js and NeuQuant.js
- This project was created for the Node.js Knockout
MacGifer is Copyright (c) 2017 sophilabs, inc. It is free software, and may be redistributed under the terms specified in the license file.
MacGifer is maintained and funded by sophilabs, inc. The names and logos for sophilabs are trademarks of sophilabs, inc.