Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mafintosh/hls-buffer
Preload and buffer http live streams (aka do not lag on crappy networks)
https://github.com/mafintosh/hls-buffer
Last synced: 22 days ago
JSON representation
Preload and buffer http live streams (aka do not lag on crappy networks)
- Host: GitHub
- URL: https://github.com/mafintosh/hls-buffer
- Owner: mafintosh
- Created: 2013-10-05T14:40:02.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2013-10-05T19:14:37.000Z (about 11 years ago)
- Last Synced: 2024-10-16T23:45:34.325Z (28 days ago)
- Language: JavaScript
- Size: 145 KB
- Stars: 36
- Watchers: 7
- Forks: 11
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# hls-buffer
Preload and buffer http live streams (aka do not lag on crappy networks)
npm install hls-buffer
## Usage
hls-buffer takes a m3u8 url from a remote server and preloads and buffers the linked .ts files in memory
``` js
var hls = require('hls-buffer');
var buffer = hls('http://my-favorite-stream.com/some/path/index.m3u8');
var http = require('http');var server = http.createServer(function(request, response) {
if (request.url === '/index.m3u8') {
// first return a playlist
buffer.playlist(function(err, pl) {
response.setHeader('Content-Type', 'application/vnd.apple.mpegurl');
response.end(pl);
});
} else {
// else return the linked segment
var stream = buffer.segment(request.url);
response.setHeader('Content-Type', 'video/mp2s');
stream.pipe(response);
}
});server.listen(8080);
```If you run the above example with your favorite http live streaming service a local preloading proxy
will be started on `http://localhost:8080/index.m3u8`.Per default up to 10 segments will be buffered in ram. To change this pass `{max:number}` as the second parameter
to the constructor## License
MIT