Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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)

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