diff --git a/whisper_live/client.py b/whisper_live/client.py index a4bd0f67..8e42e2db 100644 --- a/whisper_live/client.py +++ b/whisper_live/client.py @@ -2,6 +2,7 @@ import shutil import wave +import logging import numpy as np import pyaudio import threading @@ -431,6 +432,8 @@ def process_hls_stream(self, hls_url, save_file): def handle_ffmpeg_process(self, process, stream_type): print(f"[INFO]: Connecting to {stream_type} stream...") + stderr_thread = threading.Thread(target=self.consume_stderr, args=(process,)) + stderr_thread.start() try: # Process the stream while True: @@ -477,6 +480,16 @@ def get_hls_ffmpeg_process(self, hls_url, save_file): return process + def consume_stderr(self, process): + """ + Consume and log the stderr output of a process in a separate thread. + + Args: + process (subprocess.Popen): The process whose stderr output will be logged. + """ + for line in iter(process.stderr.readline, b""): + logging.debug(f'[STDERR]: {line.decode()}') + def save_chunk(self, n_audio_file): """ Saves the current audio frames to a WAV file in a separate thread.