音频流转mp3格式
- function convertToMp3(wavDataView) {
-   // 获取wav头信息
-   const wav = lamejs.WavHeader.readHeader(wavDataView);
-   const { channels, sampleRate } = wav;
-   const mp3enc = new lamejs.Mp3Encoder(channels, sampleRate, 128);
-   // 获取左右通道数据
-   const result = recorder.getChannelData();
-   const buffer = [];
-   const leftData = result.left && new Int16Array(result.left.buffer, 0, result.left.byteLength / 2);
-   const rightData = result.right && new Int16Array(result.right.buffer, 0, result.right.byteLength / 2);
-   const remaining = leftData.length + (rightData ? rightData.length : 0);
-   const maxSamples = 1152;
-   for (let i = 0; i < remaining; i += maxSamples) {
-     const left = leftData.subarray(i, i + maxSamples);
-     let right = null;
-     let mp3buf = null;
-     if (channels === 2) {
-       right = rightData.subarray(i, i + maxSamples);
-       mp3buf = mp3enc.encodeBuffer(left, right);
-     } else {
-       mp3buf = mp3enc.encodeBuffer(left);
-     }
-     if (mp3buf.length > 0) {
-       buffer.push(mp3buf);
-     }
-   }
-   const enc = mp3enc.flush();
-   if (enc.length > 0) {
-     buffer.push(enc);
-   }
-   let blob = new Blob(buffer, {
-     type: "audio/mp3",
-   });
-   return blob;
- }
获取 Gop 大小(关键帧间隔)
- <script src="https://j.weizan.cn/zhibo/js/jquery-2.1.4.min.js"></script>
- $.ajax({
-   url: video_src, // 视频播放地址
-   dataType: "TEXT",
-   success: (res) => {
-     // 解析 m3u8 
-     var m3u8list = res.replace(/\n/g, '<br>').split('<br>');
-     // 获取 Gop 大小
-     var gopSize = parseInt(m3u8list[3].split(':').pop());
-     console.log('gop size:' + gopSize);
-   }
- })