whitphx/streamlit-webrtc

Real-time video and audio processing on Streamlit

它解決了什麼問題

Streamlit 應用程式通常因為框架的執行模型而難以支援即時音訊與視訊串流。streamlit-webrtc 提供了一種方式,讓開發者能在網路上處理與傳輸即時媒體串流,無需自行編寫複雜的 WebRTC 訊號與傳輸邏輯,即可打造互動式媒體應用。

工作原理

它透過提供 webrtc_streamer 元件將 WebRTC 整合進 Streamlit。此元件允許開發者定義回呼函式(用於視訊與音訊框架),即時處理媒體。這些回呼在獨立執行緒中執行,以確保串流流暢,並使用 PyAV 套件將框架處理為 av.VideoFrameav.AudioFrame 物件。

適用對象

使用 Streamlit 的 Python 開發者,想要建立具備即時視訊或音訊處理功能的應用程式,例如物件偵測、語音轉文字或視訊聊天等。

重點特色

  • 即時處理:支援視訊與音訊框架的回呼函式,可即時進行操作。
  • 彈性整合:可與 OpenCV 及其他影像處理函式庫配合,將框架轉換為 NumPy 陣列。
  • 會話管理:提供 on_video_endedon_audio_ended 等鉤子,於會話結束時清理資源。
  • 可部署:提供 STUN/TURN 伺服器的設定說明與選項,確保在不同網路環境與 HTTPS 要求下的連線。