小编Seb*_*Seb的帖子

将Web Audio API麦克风数据流式传输到nodewebkit上的磁盘

我正在开发一个nodewebkit应用程序,该应用程序使用Web Audio API记录麦克风数据并将其保存到磁盘.

我已经使用了RecordRTC框架,但是随着录制的进行,它没有提供将数据流式传输到磁盘的方法(考虑到录制时间可能超过一小时,这是必要的).

我似乎无法找到使用其他方法将数据流式传输到磁盘的好方法.如果有一个正确的方法来做到这一点,我会很感激有关正确的工具是什么的提示.

但是,我现在的非工作解决方案是:

  1. 使用WebAudio API创建ScriptProcessorNode以访问PCM数据
  2. 创建一个可读的流缓冲区(使用流缓冲区模块)并将其传递给fileWriter(使用wav模块创建)
  3. 在onaudioprocess事件中将该数据转换为16位整数,并将它们添加到可读流中,以便可以编写它们

这没有用,因为ReadableStreamBuffer一次只向fileWriter传输20个字节,而不是因为某些原因而排队来自麦克风的所有字节.

var wav = require('wav');
var streamBuffers = require("stream-buffers");

function convertFloat32ToInt16(buffer) {
  var l = buffer.length;
  var buf = new Int16Array(l);
  while (l--) {
    buf[l] = Math.min(1, buffer[l])*0x7FFF;
  }
  return buf.buffer;
}

var filePath = utils.getCwd() + '/recordings/demo.wav';
var fileWriter = new wav.FileWriter( filePath, {
  channels: 1,
  sampleRate: 48000,
  bitDepth: 16
});

var myReadableStreamBuffer = new streamBuffers.ReadableStreamBuffer({
    frequency:  0,        // in milliseconds.
    chunkSize: 2048        // in bytes.
});

myReadableStreamBuffer.pipe(fileWriter);

source.connect(scriptNode); …
Run Code Online (Sandbox Code Playgroud)

stream wav node.js node-webkit web-audio-api

5
推荐指数
0
解决办法
531
查看次数

并行限制为cp的文件数

我在一个带有25个4gb json文件的目录上并行运行gsutil cp命令(使用-m选项)(我也使用-z选项进行压缩).

gsutil -m cp -z json -R dir_with_4g_chunks gs://my_bucket/
Run Code Online (Sandbox Code Playgroud)

当我运行它时,它将打印到终端,它正在复制除了其中一个文件之外的所有文件.我的意思是它每个文件打印其中一行:

Copying file://dir_with_4g_chunks/a_4g_chunk [Content-Type=application/octet-stream]...
Run Code Online (Sandbox Code Playgroud)

一旦完成其中一个的传输,它就会说它将复制最后一个文件.

结果是有一个文件只在其中一个文件完成复制时才开始复制,从而大大减慢了进程

我可以使用-m选项上传的文件数量是否有限制?这可以在boto配置文件中配置吗?

google-cloud-storage gsutil

1
推荐指数
2
解决办法
3072
查看次数

将数据从S3迁移到Google云存储

我需要将大量的文件(大约几十TB)从Amazon S3移动到Google云端存储中.S3中的文件都在500mb以下.

到目前为止我使用gsutil CP与平行选项(-m)使用S3作为源和GS作为目的地直接尝试.即使调整多处理和多线程参数,我也无法实现超过30mb/s的性能.

我现在正在考虑的事情:

  • 负载从S3批量数据导入使用DistCp使用HDFS,然后找到DistCp使用-ING所有的数据到谷歌存储的一种方式(据我可以告诉不支持),或:

  • 设置,其中每个节点运行与S3和GS一个CP的gsutil并行作业作为src和dst的Hadoop集群

如果支持第一个选项,我会非常感谢有关如何执行此操作的详细信息.然而,似乎我必须找出如何做第二个.我不确定如何追求这个途径,因为我需要跟踪许多节点上的gsutil可恢复传输功能,而且我通常没有经验来运行这种hadoop工作.

任何有关如何追求这些途径(或者我没有想到的更简单的东西)的帮助都将不胜感激.

amazon-s3 google-cloud-storage gsutil

1
推荐指数
1
解决办法
1943
查看次数