通过 NodeJS 流式传输音频的最快方法
Posted
技术标签:
【中文标题】通过 NodeJS 流式传输音频的最快方法【英文标题】:Fastest way to stream audio via NodeJS 【发布时间】:2018-01-20 14:59:24 【问题描述】:我所有的音频文件都来自外部来源,即 Google Cloud Storage。并且所有文件都有一个公共 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
音频,所以无论用户从哪里开始播放音乐,它都会很快响应,就像有自己的流媒体方式@ 987654325@.
所以我的任务是,做那种基础设施,用小块字节分割音频和响应是否可行?
对于流式传输音频是否有任何提示或最佳做法?
【问题讨论】:
【参考方案1】:最好/最快的做法是简单地重定向到资源。使用 301、302、307 或 308 状态代码和 Location
标头。
【讨论】:
以上是关于通过 NodeJS 流式传输音频的最快方法的主要内容,如果未能解决你的问题,请参考以下文章
我可以使用 nodejs 将麦克风音频从客户端流式传输到客户端吗?
如何将音频数据从 Android 流式传输到 WebSocket 服务器?