Skip to content

Preload and buffer http live streams (aka do not lag on crappy networks)

Notifications You must be signed in to change notification settings

asaptf/hls-buffer

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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

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

About

Preload and buffer http live streams (aka do not lag on crappy networks)

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%