import streamlit as st from streamlit_webrtc import webrtc_streamer, get_twilio_ice_servers frontend_ice_type = st.selectbox("Frontend ICE type", ["Empty", "Google STUN", "Twilio TURN"]) backend_ice_type = st.selectbox("Backend ICE type", ["Empty", "Google STUN", "Twilio TURN"]) if frontend_ice_type == "Empty": frontend_rtc_configuration = { "iceServers": [] } elif frontend_ice_type == "Google STUN": frontend_rtc_configuration = { "iceServers": [{"urls": ["stun:stun.l.google.com:19302"]}] } elif frontend_ice_type == "Twilio TURN": frontend_rtc_configuration = { "iceServers": get_twilio_ice_servers( twilio_sid=st.secrets["TWILIO_ACCOUNT_SID"], twilio_token=st.secrets["TWILIO_AUTH_TOKEN"], ) } if backend_ice_type == "Empty": backend_rtc_configuration = { "iceServers": [] } elif backend_ice_type == "Google STUN": backend_rtc_configuration = { "iceServers": [{"urls": ["stun:stun.l.google.com:19302"]}] } elif backend_ice_type == "Twilio TURN": backend_rtc_configuration = { "iceServers": get_twilio_ice_servers( twilio_sid=st.secrets["TWILIO_ACCOUNT_SID"], twilio_token=st.secrets["TWILIO_AUTH_TOKEN"], ) } st.write("Frontend ICE configuration:", frontend_rtc_configuration) st.write("Backend ICE configuration:", backend_rtc_configuration) webrtc_streamer( key="example", media_stream_constraints={"video": True, "audio": False}, frontend_rtc_configuration=frontend_rtc_configuration, server_rtc_configuration=backend_rtc_configuration, )