code: function(options) {
  	if (options.input) {
  		this.input = options.input;
  	} else {
  		throw new Error('no `input` parameter');
  	}
  	this.rate = options.rate || 10;
  	this.resolution = options.resolution;
  	this.quality = (options.quality === undefined || options.quality === "") ? 3 : options.quality;
  	this.arguments = options.arguments || [];
  	this.buff = Buffer.from(''); // Store the entire data image into this variable. This attribute is replaced each time a full image is received from the stream.
  
  	this.on('newListener', newListener.bind(this));
  	this.on('removeListener', removeListener.bind(this));
  	if (Object.observe && (typeof Proxy !== 'function')) {
  		Object.observe(this, observer.bind(this));
  	}
  }
docs: Stream constructor
  @param {object} options
  @param {string} options.input Stream uri, for example rtsp://r3---sn-5hn7su76.c.youtube.com/CiILENy73wIaGQnup-1SztVOYBMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp
  @param {number|string} [options.rate] Framerate
  @param {string} [options.resolution] Resolution in WxH format
  @param {string|number} [options.quality] JPEG quality
  @param {Array<string>} [options.arguments] Custom arguments for ffmpeg
  @constructor