"use strict"; //maximum filesize in bytes var MAX_SIZE=3000000; //Percentage of bitrate to subtract (use at least 2) var SPACE=2; //Factor of bitrate (125 converts bytes to kbits (x*8/1000) var FACTOR=125; //Unit of bitrate (for display purposes only) var UNIT="k"; //Upper [0] and lower [1] bitrate cap. var CAP=[1000,100]; //You can set this to true or false. The default is to check for "-v" argument var VERBOSE=process.argv.slice(2).map(function(v){return v.toLowerCase();}).indexOf("-v")>=0; ////////////////////// // // // no changes below // // // ////////////////////// var FILENAME=process.argv.slice(2).filter(function(v){return v.toLowerCase()!="-v";})[0]; if(!FILENAME) { console.log("node",nameOnly(__filename)," [-v]"); process.exit(2); } function nameOnly(x) { return x=x.split('/').slice(-1)[0].split('\\').slice(-1)[0]; } function r(x,d) { var factor=Math.pow(10, d); var tempNumber=x*factor; var roundedTempNumber=Math.round(tempNumber); return roundedTempNumber/factor; } function niceSize(o,f) { var units=["Bytes","KB","MB","GB","TB"]; if(!f) { f=1000; } var current=o; var index=0; while(current>=f && index++1.0 || SPACE<=0.0) { console.log("Invalid percentage (must be in the range 0-99)"); process.exit(1); } proc.stdout.on("data",function(data) { var Duration=+data.toString(); if(Duration) { var Bitrate=MAX_SIZE/Duration/FACTOR*SPACE|0; if(VERBOSE) { console.log("Duration :",Duration,"seconds"); console.log("Raw bitrate :",Bitrate+"k"); } if(Bitrate>CAP[0]) { Bitrate=CAP[0]; if(VERBOSE) { console.log("Bitrate too big. Capped to",CAP[0]); console.log( "File size will be",niceSize(Bitrate*Duration*FACTOR), "instead of",niceSize(MAX_SIZE), "("+r(Bitrate*Duration*FACTOR/MAX_SIZE*100,1)+"% of original)"); } } else if(Bitrate