diff --git a/app/main.py b/app/main.py index 255e47f..b21091e 100644 --- a/app/main.py +++ b/app/main.py @@ -104,6 +104,47 @@ def stream(): ) +# --------------------------------------------------------------------------- +# Audio-Stream (Ogg/Opus via ffmpeg) +# --------------------------------------------------------------------------- + +AUDIO_DEVICE = "plughw:2,0" +AUDIO_SAMPLERATE = 16000 + + +def generate_audio(): + cmd = [ + "ffmpeg", + "-f", "alsa", + "-i", AUDIO_DEVICE, + "-ar", str(AUDIO_SAMPLERATE), + "-ac", "1", + "-c:a", "libopus", + "-b:a", "24k", + "-f", "ogg", + "-", + ] + process = subprocess.Popen( + cmd, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL + ) + try: + while True: + chunk = process.stdout.read(4096) + if not chunk: + break + yield chunk + finally: + process.kill() + + +@app.route("/audio") +def audio(): + return Response( + generate_audio(), + mimetype="audio/ogg; codecs=opus", + ) + + # --------------------------------------------------------------------------- # WLAN-Verwaltung # --------------------------------------------------------------------------- diff --git a/app/templates/live.html b/app/templates/live.html index afa56d5..8155cd1 100644 --- a/app/templates/live.html +++ b/app/templates/live.html @@ -163,9 +163,12 @@
+ +