constructor({ size = 1024, parallel }) {
    super();

    this.size = siz(size);
    this.highWaterMark = this.size; // default is 64k
    this.parallel = parallel;
    this.data = null;
    this.pullFunc = null;
    this.cursor = 0;
    this.index = 0;
  }
FFStream - A stream class that implements the pond-well-bucket mechanism

####Pond Well Bucket:
 1. The water in the well was scooped out bucket by bucket.
 2. In the end, the rest may be less than a bucket.
 3. If there is no water in the well, fill a well from the pond.
 4. Continue 1, 2, 3 until there is no water in the pond.

####Note:
 - If the bucket is too small, it will double the number of times to scoop water and waste manpower.
 - If the bucket is too large, there is a risk of load.

####Reference:

 - https://github.com/fluent-ffmpeg/node-fluent-ffmpeg/issues/546
 - https://nodejs.org/es/docs/guides/backpressuring-in-streams/

@class