【问题标题】:how to stream microphone audio from browser to S3如何将麦克风音频从浏览器流式传输到 S3
【发布时间】:2022-02-08 04:50:27
【问题描述】:

我想将麦克风音频从 Web 浏览器流式传输到 AWS S3。 搞定了

this.recorder = new window.MediaRecorder(...);
this.recorder.addEventListener('dataavailable', (e) => {
  this.chunks.push(e.data);
});

然后当用户单击停止时,将块 new Blob(this.chunks, { type: 'audio/wav' }) 作为多部分上传到 AWS S3。

但问题是,如果录制时间长 2-3 小时,则可能需要更长的时间,并且用户可能会在等待录制完成上传之前关闭浏览器。

有没有一种方法可以在 S3 进行时将网络音频直接流式传输到 S3?

我尝试过但无法获得有效示例的方法:

  1. Kineses 视频流,看起来它只是用于多个客户端之间的实时流,我必须编写自己的客户端,然后将其保存到 S3。
  2. 考虑使用 kinesis data firehose,但无法从浏览器中找到任何客户端数据生成器。
  3. 甚至尝试使用 aws lex 或 aws ivs 查找任何资源,但我认为它们对于我的用例来说只是过度设计。

我们将不胜感激。

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-kinesis amazon-kinesis-firehose amazon-kinesis-video-streams


    【解决方案1】:

    MediaRecorder上调用start()时可以设置timeslice参数。然后MediaRecorder 将发出与timeslice 参数长度大致匹配的块。

    您可以使用 S3 的 multipart upload 功能上传这些块,正如您已经提到的。

    请注意,如果您想录制 WAV 文件,则需要像 extendable-media-recorder 这样的库,因为没有浏览器支持开箱即用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-20
      • 2018-07-29
      • 2014-10-23
      • 1970-01-01
      • 2020-09-28
      • 1970-01-01
      • 2010-09-14
      相关资源
      最近更新 更多