js 数据等比例采样

1.问题描述

压缩音频采样率,如原1s有10000帧,压缩成1s有4800帧
若果按 10000/4800 约每2.08帧采集一次
若按每2s取 则得到5000帧 每3s得3333帧 均未达到4800帧目标

2.解决思路

按每3s一帧 获取3333帧,再等比例获取(4800-3333=1467)1467帧

3.代码

/**
 * @param  o 旧采样率  10000
 * @param  n 新采样率  4200
 */

var doo = function (o, n) {

  y = o / n
  //2.380952380952381

  var d = parseInt(y)
  //2

  var e = Math.ceil(y)
  //3

  var g = parseInt(o / e)
  //3333

  var f = n - g
  //867

  var q = parseInt(o / f)
  //11
  var out = new Array();


  for (var i = 1; i <= g; i++) {
    out.push(e * i)
  }
  //3333
  for (var i = 1; i <= f; i++) {
    out.push(q * i)
  }

  return out.sort(function (x, y) {
    return x - y
  })


}

console.log(doo(10000,4200))

你可能感兴趣的:(js 数据等比例采样)