bin neu hier, blutiger Anfänger und stelle mal meine Erste Frage:
Ich habe einen PI abgestellt, an dem eine USB-Soundkarte angeschlossen ist.
Per VLC-PLayer schicke ich den Input der Karte als Stream an meinen Squeeze-Server:
Code: Alles auswählen
cvlc pulse://alsa_input.usb-Burr-Brown_from_TI_USB_Audio_CODEC-00.analog-stereo :sout='#transcode{vcodec=none,acodec=mp3,ab=320,channels=2,samplerate=44100}:http{dst=:8081/stream.mp3}' :no-sout-rtp-sap :no-sout-standard-sap
Ich mache das mit zwei Instanzen von soundmeter (https://pypi.org/project/soundmeter/):
Code: Alles auswählen
soundmeter --trigger +200 3 --action exec --exec streamstart.sh
schaltet den Stream an, wenn Signalamplitude größer als 200 und
Code: Alles auswählen
soundmeter --trigger -200 70 --action exec --exec killvlc.sh
ABER: die Abfrage der Amplitude bringt mein Netzwerk zum glühen, mein Switch beginnt heftigst zu blinken sobald soundmeter läuft und auch das HMLAN-Gateway meiner FHEM-Hausautomation signalisert "overload" mit roter Lampe.
Selbst wenn ich anstelle von Soundmeter dieses kleine Diagnosescript laufen lasse, gibt es massiven Traffic:
Code: Alles auswählen
#!/usr/bin/python
import alsaaudio, time, audioop
inp = alsaaudio.PCM(alsaaudio.PCM_CAPTURE,alsaaudio.PCM_NONBLOCK)
inp.setchannels(1)
inp.setrate(8000)
inp.setformat(alsaaudio.PCM_FORMAT_S8)
inp.setperiodsize(500)
while True:
# Read data from device
l,data = inp.read()
if l:
# Return the maximum of the absolute value of all samples in a fragment.
print (audioop.max(data, 2))
time.sleep(10)
Ich habe vermutlich die Alsa und Pulsaudio-Funktion nicht verstanden.
Frage: warum ist das mit dem Traffic so und wie kann ich
die Amplitude des Eingangs messen, ohne diesen für meinen Stream zu blockieren und
ohne meinen Switch in den Wahnsinn zu treiben?
Gruß, Jochen