fanurs's picture
Changed entry point for Hugging Face
5d4d872
raw
history blame
No virus
1.16 kB
#!/usr/bin/env python3
import av
import streamlit as st
from streamlit_webrtc import WebRtcMode, webrtc_streamer
import numpy as np
st.set_page_config(page_title='Surveillance')
with st.sidebar:
st.write('# Settings')
display_settings = {
'mirror': st.checkbox('mirror'),
'echo': st.checkbox('echo'),
}
def audio_frame_callback(frame: av.AudioFrame) -> av.AudioFrame:
sound = frame.to_ndarray()
# sound logic
result_sound = sound if display_settings['echo'] else np.zeros_like(sound)
result_frame = av.AudioFrame.from_ndarray(result_sound, layout=frame.layout.name)
result_frame.sample_rate = frame.sample_rate
return result_frame
def video_frame_callback(frame: av.VideoFrame) -> av.VideoFrame:
image = frame.to_ndarray(format='bgr24')
mirrored = image[:,::-1,:] if display_settings['mirror'] else image
# image logic
return av.VideoFrame.from_ndarray(mirrored, format='bgr24')
streamer = webrtc_streamer(
key='surveillance',
mode=WebRtcMode.SENDRECV,
audio_frame_callback=audio_frame_callback,
video_frame_callback=video_frame_callback,
async_processing=True,
)