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, | |
) | |