File size: 3,892 Bytes
0d338e8 34947c3 52a6df6 d79183c 52a6df6 d79183c 0d338e8 4196959 0d338e8 52a6df6 0d338e8 52a6df6 0d338e8 52a6df6 34947c3 52a6df6 34947c3 af3ede9 0d338e8 4196959 0d338e8 52a6df6 0d338e8 52a6df6 0d338e8 52a6df6 34947c3 52a6df6 34947c3 af3ede9 34947c3 0d338e8 69afee6 52a6df6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
import streamlit as st
from streamlit_webrtc import webrtc_streamer, get_hf_ice_servers, get_twilio_ice_servers, __version__ as st_webrtc_version
import aiortc
frontend_ice_type = st.selectbox("Frontend ICE type", ["Empty", "Google STUN", "Twilio STUN/TURN", "Twilio STUN/TURN and Google STUN", "HF TURN only", "HF TURN and Google STUN", "None configured"])
backend_ice_type = st.selectbox("Backend ICE type", ["Empty", "Google STUN", "Twilio STUN/TURN", "Twilio STUN/TURN and Google STUN", "HF TURN only", "HF TURN and Google STUN", "None configured"])
# google_stun_ice_servers = [{"urls": ["stun:stun.l.google.com:19302"]}]
google_stun_ice_servers = [{"urls": "stun:stun.l.google.com:19302", "url": "stun:stun.l.google.com:19302"}]
if frontend_ice_type == "Empty":
frontend_rtc_configuration = {
"iceServers": []
}
elif frontend_ice_type == "Google STUN":
frontend_rtc_configuration = {
"iceServers": google_stun_ice_servers
}
elif frontend_ice_type == "Twilio STUN/TURN":
frontend_rtc_configuration = {
"iceServers": get_twilio_ice_servers(
twilio_sid=st.secrets["TWILIO_ACCOUNT_SID"],
twilio_token=st.secrets["TWILIO_AUTH_TOKEN"],
)
}
elif frontend_ice_type == "Twilio STUN/TURN and Google STUN":
frontend_rtc_configuration = {
"iceServers": google_stun_ice_servers + get_twilio_ice_servers(
twilio_sid=st.secrets["TWILIO_ACCOUNT_SID"],
twilio_token=st.secrets["TWILIO_AUTH_TOKEN"],
)
}
elif frontend_ice_type == "HF TURN only":
hf_ice_servers = get_hf_ice_servers(token=st.secrets["HF_TOKEN"])
frontend_rtc_configuration = {
"iceServers": hf_ice_servers
}
elif frontend_ice_type == "HF TURN and Google STUN":
hf_ice_servers = get_hf_ice_servers(token=st.secrets["HF_TOKEN"])
ice_servers = hf_ice_servers + google_stun_ice_servers
frontend_rtc_configuration = {
"iceServers": ice_servers
}
elif frontend_ice_type == "None configured":
frontend_rtc_configuration = None
if backend_ice_type == "Empty":
backend_rtc_configuration = {
"iceServers": []
}
elif backend_ice_type == "Google STUN":
backend_rtc_configuration = {
"iceServers": google_stun_ice_servers
}
elif backend_ice_type == "Twilio STUN/TURN":
backend_rtc_configuration = {
"iceServers": get_twilio_ice_servers(
twilio_sid=st.secrets["TWILIO_ACCOUNT_SID"],
twilio_token=st.secrets["TWILIO_AUTH_TOKEN"],
)
}
elif backend_ice_type == "Twilio STUN/TURN and Google STUN":
backend_rtc_configuration = {
"iceServers": google_stun_ice_servers + get_twilio_ice_servers(
twilio_sid=st.secrets["TWILIO_ACCOUNT_SID"],
twilio_token=st.secrets["TWILIO_AUTH_TOKEN"],
) + google_stun_ice_servers
}
elif backend_ice_type == "HF TURN only":
hf_ice_servers = get_hf_ice_servers(token=st.secrets["HF_TOKEN"])
backend_rtc_configuration = {
"iceServers": hf_ice_servers
}
elif backend_ice_type == "HF TURN and Google STUN":
hf_ice_servers = get_hf_ice_servers(token=st.secrets["HF_TOKEN"])
ice_servers = hf_ice_servers + google_stun_ice_servers
backend_rtc_configuration = {
"iceServers": ice_servers
}
elif backend_ice_type == "None configured":
backend_rtc_configuration = None
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,
)
st.write(f"Streamlit version: {st.__version__}")
st.write(f"Streamlit-WebRTC version: {st_webrtc_version}")
st.write(f"aiortc version: {aiortc.__version__}")
|