ubuntuusers.de

Audiostream per Shellskript

Status: Gelöst | Ubuntu-Version: Ubuntu 11.04 (Natty Narwhal)
Antworten |

gunwald

Anmeldungsdatum:
12. Juli 2010

Beiträge: 218

Wohnort: /home/gunwald

Kann mir jemand sagen, wie ich die gesamte aktuelle Ausgabe von PulseAudio per Skript in einen Datei-Stream speichern kann. Ich will die Tonausgabe nämlich mittels eins Skriptes auf bestimmte Töne, genauer DTMTF, überwachen. Das geht mit dem Programm »multimon«, welchem man aber eine Datei übergeben muß. Ich hatte mir vorgestellt, bei einem bestimmten Ereignis, den Stream zu starten und ihn dann sekündlich mittels »multimon« neu auszuwerten. Allerdings habe ich irgendwie keine für mich verständliche Anleitung gefunden, wie ich einen solchen Stream aus einem Skript heraus erzeugen kann und wäre darum für Hilfe dankbar.

gunwald

(Themenstarter)

Anmeldungsdatum:
12. Juli 2010

Beiträge: 218

Wohnort: /home/gunwald

Ok, hat sich erledigt, so geht's:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#!/bin/bash
WAV="$1"
if [ -z "$WAV" ]; then
    echo "Usage: $0 OUTPUT.WAV" >&2
    exit 1
fi
rm -f "$WAV"
 
# Get sink monitor:
MONITOR=$(pactl list | egrep -A2 '^(\*\*\* )?Source #' | \
    grep 'Name: .*\.monitor$' | awk '{print $NF}' | tail -n1)
echo "set-source-mute ${MONITOR} false" | pacmd >/dev/null
 
# Record it raw, and convert to a wav
echo "Recording to $WAV ..."
echo "Close this window to stop"
parec -d "$MONITOR" | sox -t raw -r 44k -sLb 16 -c 2 - "$WAV"

Vgl.http://www.outflux.net/blog/archives/2009/04/19/recording-from-pulseaudio/

Antworten |