hlsmon 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #!/usr/bin/env node
  2. var hlsmon = require('commander');
  3. hlsmon.version('0.0.0')
  4. .usage('[options] <url>')
  5. .option('-a', '--user-agent <string>', 'User-Agent')
  6. .parse(process.argv);
  7. var util = require('util'),
  8. url = require('url');
  9. var reader = require('../lib/reader');
  10. var src = process.argv[2];
  11. var sep = ';';
  12. function monitor(srcUrl) {
  13. var r = reader(srcUrl, {noData:true, keepConnection:true});
  14. var time = 0;
  15. r.on('segment', function(seqNo, duration, file) {
  16. console.log(file.modified.toJSON() + sep + file.size + sep + duration.toFixed(3) + sep + (file.size / (duration * 1024/8)).toFixed(3));
  17. // console.error('new segment at '+time.toFixed(0)+' seconds, avg bitrate (kbps):', (file.size / (duration * 1024/8)).toFixed(1));
  18. time += duration;
  19. });
  20. r.on('end', function() {
  21. if (r.index.variant) {
  22. var newUrl = url.resolve(r.baseUrl, r.index.programs['1'][0].uri);
  23. console.error('found variant index, using: ', newUrl)
  24. return monitor(newUrl);
  25. }
  26. console.error('done');
  27. });
  28. r.resume();
  29. }
  30. monitor(src);