Spaces:
Runtime error
Runtime error
| from streamlit_webrtc import webrtc_streamer | |
| import numpy as np | |
| import streamlit as st | |
| import numpy as np | |
| import av | |
| import threading | |
| from utils.frame_rate import FrameRate | |
| lock = threading.Lock() | |
| rtc_configuration = { | |
| "iceServers": [ | |
| { | |
| "urls": "turn:relay1.expressturn.com:3478", | |
| "username": "efBRTY571ATWBRMP36", | |
| "credential": "pGcX1BPH5fMmZJc5", | |
| }, | |
| # { | |
| # "urls": [ | |
| # "stun:stun1.l.google.com:19302", | |
| # "stun:stun2.l.google.com:19302", | |
| # "stun:stun3.l.google.com:19302", | |
| # "stun:stun4.l.google.com:19302", | |
| # ] | |
| # }, | |
| ], | |
| } | |
| class ImgContainer: | |
| img: np.ndarray = None # raw image | |
| frame_rate: FrameRate = FrameRate() | |
| def video_frame_callback(frame: av.VideoFrame) -> av.VideoFrame: | |
| img = frame.to_ndarray(format="bgr24") | |
| with lock: | |
| img_container.img = img | |
| img_container.frame_rate.count() | |
| img = img_container.frame_rate.show_fps(img) | |
| return av.VideoFrame.from_ndarray(img, format="bgr24") | |
| img_container = ImgContainer() | |
| img_container.frame_rate.reset() | |
| ctx = st.session_state.ctx = webrtc_streamer( | |
| key="snapshot", | |
| video_frame_callback=video_frame_callback, | |
| rtc_configuration=rtc_configuration, | |
| ) | |