对于科学实验,我们尝试使用创建大型(7天)录音 arecord
来自alsa的RasPi使用USB麦克风。录音管道如下:
arecord -f S16_LE -r16000 -d 259200 -D sysdefault:CARD=1 | gzip > test.wav.gz
当这样录制时,录制可以在18小时38分28秒之后重现。这可能与2 GB的最大wav文件大小有关 --max-file-time
参数在手册页中进行了讨论 ,因为未压缩的wav文件的文件在那时几乎正好是2 GB。
由于我们需要将音频数据传输到gzip(以及稍后的GPG)而不先将其保存到磁盘,我们不能使用ALSA提供的自动文件拆分来解决这个问题(至少我们不知道任何问题)将此与管道相结合的方法)。有没有办法以满足以下条件的方式解决此问题:
- 录音没有间隙(停止和重新开始录音对我们来说不起作用,因为我们需要连续7天录音而没有任何间隙)。
- 理想情况下,生成的格式应该仍然是.wav(或者至少是类似无损的东西)。
- 文件大小不应该增加太多(我们需要~16k采样率,单声道声音,我们有大约20 GB的可用空间)。
- 整个事情应该在RasPi3上运行,RasPi3也在做其他事情(即不应该占用太多的系统资源)。
目前,我们正在考虑录制成原始数据格式,然后在另一台机器上重新编码为wav,或者即时重新编码到FLAC,但任何更简单的解决方案都将受到赞赏。
raw-to-wav不是重新编码,而是添加标题。在任何情况下,无论您如何创建大小超过2 GB的大小,都不会指定.wav文件。
—
CL.