通过 NodeJS 流式传输音频的最快方法

Fastest way to stream audio via NodeJS

我所有的音频文件都来自外部来源,Google 云存储。并且所有文件都有一个 public URL,无需授权令牌即可访问。

示例 URL:https://storage.googleapis.com/bucket/randomId.mp3

我目前将音频流式传输到客户端的方式是获取二进制文件并使用 sendSeekable 响应

示例代码

const url = 'https://storage.googleapis.com/bucket/randomId.mp3';

request({
  url: track.file.location,
  encoding: null,
}, (error, response, body) => {
  res.setHeader('Cache-Control', 'no-cache');
  res.sendSeekable(body);
});

但我看到 SoundCloud 所做的是他们会请求一小块新的 base64 音频,所以无论用户从哪里开始播放音乐,它都会非常快速地响应,就像有自己的方式一样做流媒体 seekable.

所以我的任务是,做那种基础设施,用小块字节分割音频和响应是否可以通过?

流式音频有什么技巧或最佳做法吗?

best/fastest 要做的只是重定向到资源。使用 301、302、307 或 308 状态代码和 Location header.