UNPKG

tenna

Version:

A node js application that lets you easily stream most videos from any PC/laptop in your home network, to other devices in the network with a browser.

76 lines (64 loc) 1.72 kB
#!/usr/bin/env node "use strict"; var progress = require('progress'), util = require('util'), Encoder = require('./lib/encoder'), encoder = new Encoder(), fs = require('fs'), path = require('path'), argv = require('minimist')(process.argv.slice(2)), rimraf = require('rimraf'); var barConfStr = 'encoding :title [:bar] :percent Elapsed: :elapseds ETA: :estimate', bar = new progress(barConfStr, {total:25}), videoDir = __dirname +"/build/videos/"; var startServer = function() { var server = require('./server.js'); } var encodeVideo = function(file, outFile) { var handle = encoder.encode(file, path.dirname(outFile)); handle .on("progress", function(progress){ updateBar(progress, file); }) .on("complete", function(){ var vid = handle.vid; encodeComplete(vid, outFile); }); } var updateBar = function(progress, filename) { var eta = progress.eta<=0?"calculating...":progress.eta, percentRatio = progress.percentComplete/100; bar.update(percentRatio,{"estimate":eta,"title":filename}); } var encodeComplete = function(params, outFile) { bar.terminate(); console.log("Encode complete"); fs.rename(params.output, videoDir + outFile,function(err){ if(err) console.log(err); startServer(); }); } // init if(argv.clean) { rimraf(videoDir, function(err){ if(err) { console.log(err); process.exit(1); } process.exit(0); }) } if(argv._.length <= 0) { startServer(); } else { var filename = path.normalize(argv._[0]), ext = path.extname(filename), base = path.basename(filename, ext); }