whitphx/streamlit-webrtc
Real-time video and audio processing on Streamlit
它解決了什麼問題
Streamlit 應用程式通常因為框架的執行模型而難以支援即時音訊與視訊串流。streamlit-webrtc 提供了一種方式,讓開發者能在網路上處理與傳輸即時媒體串流,無需自行編寫複雜的 WebRTC 訊號與傳輸邏輯,即可打造互動式媒體應用。
工作原理
它透過提供 webrtc_streamer 元件將 WebRTC 整合進 Streamlit。此元件允許開發者定義回呼函式(用於視訊與音訊框架),即時處理媒體。這些回呼在獨立執行緒中執行,以確保串流流暢,並使用 PyAV 套件將框架處理為 av.VideoFrame 或 av.AudioFrame 物件。
適用對象
使用 Streamlit 的 Python 開發者,想要建立具備即時視訊或音訊處理功能的應用程式,例如物件偵測、語音轉文字或視訊聊天等。
重點特色
- 即時處理:支援視訊與音訊框架的回呼函式,可即時進行操作。
- 彈性整合:可與 OpenCV 及其他影像處理函式庫配合,將框架轉換為 NumPy 陣列。
- 會話管理:提供
on_video_ended、on_audio_ended等鉤子,於會話結束時清理資源。 - 可部署:提供 STUN/TURN 伺服器的設定說明與選項,確保在不同網路環境與 HTTPS 要求下的連線。