Für ein wissenschaftliches Experiment versuchen wir, mit arecord
alsa auf einem RasPi unter Verwendung eines USB-Mikrofons eine große (7-tägige) Audioaufnahme zu erstellen . Die Pipeline für die Aufzeichnung lautet wie folgt:
arecord -f S16_LE -r16000 -d 259200 -D sysdefault:CARD=1 | gzip > test.wav.gz
Bei einer solchen Aufnahme endet die Aufnahme reproduzierbar nach genau 18h 38m 28s. Dies hängt wahrscheinlich mit der maximalen WAV-Dateigröße von 2 GB zusammen, über die der --max-file-time
Parameter in der Manpage spricht , da die Datei der unkomprimierten WAV-Datei zu diesem Zeitpunkt fast genau 2 GB groß ist.
Da wir die Audiodaten in gzip (und zu einem späteren Zeitpunkt in GPG) umleiten müssen, ohne sie zuerst auf der Festplatte zu speichern, können wir die von ALSA angebotene automatisierte Dateiaufteilung nicht verwenden, um dies zu umgehen (zumindest sind uns keine bekannt Methode, dies mit Rohren zu kombinieren). Gibt es eine Möglichkeit, dieses Problem so zu umgehen, dass die folgenden Bedingungen erfüllt sind:
- Es gibt keine Lücke in der Aufzeichnung (das Stoppen und Neustarten der Aufzeichnung würde für uns nicht funktionieren, da wir eine kontinuierliche 7-Tage-Aufzeichnung ohne Lücken benötigen).
- Idealerweise sollte das resultierende Format immer noch .wav sein (oder zumindest etwas ähnlich verlustfreies).
- Die Dateigröße sollte nicht zu stark ansteigen (wir benötigen ~ 16k Abtastrate, Mono-Sound und haben ungefähr 20 GB freien Speicherplatz).
- Das Ganze sollte auf einem RasPi3 laufen, der auch einige andere Dinge tut (dh nicht zu viele Systemressourcen beanspruchen sollte).
Momentan erwägen wir, in ein Rohdatenformat aufzunehmen und später auf einer anderen Maschine in wav umzucodieren oder im laufenden Betrieb in FLAC umzucodieren. Eine einfachere Lösung wäre jedoch wünschenswert.