|
import streamlit as st |
|
from streamlit_webrtc import webrtc_streamer |
|
import av |
|
import os |
|
from twilio.rest import Client |
|
|
|
os.environ["TWILIO_ACCOUNT_SID"] = 223e5388402c66735407ff8d |
|
os.environ["TWILIO_AUTH_TOKEN"] = eb4673a2020af7d412359956fd1a2e2de594 |
|
|
|
|
|
def get_ice_servers() |
|
try: |
|
account_sid = os.environ["TWILIO_ACCOUNT_SID"] |
|
auth_token = os.environ["TWILIO_AUTH_TOKEN"] |
|
except KeyError: |
|
logger.warning("TURN credentials are not set. Fallback to a free STUN server from Google.") |
|
return [{"urls": ["stun:stun.l.google.com:19302"]}] |
|
|
|
client = Client(account_sid, auth_token) |
|
|
|
token = client.tokens.create() |
|
|
|
def video_frame_callback(frame): |
|
img = frame.to_ndarray(format="bgr24") |
|
|
|
flipped = img[::-1,:,:] if flip else img |
|
|
|
return av.VideoFrame.from_ndarray(flipped, format="bgr24") |
|
|
|
|
|
flip = st.checkbox("Flip") |
|
|
|
webrtc_streamer( |
|
key="example", |
|
video_frame_callback=video_frame_callback, |
|
rtc_configuration={ |
|
"iceServers": get_ice_servers() |
|
} |
|
) |
|
|
|
|
|
|