Pratyush101 commited on
Commit
5f71f30
·
verified ·
1 Parent(s): e6cc43c

Update pages/7_record.py

Browse files
Files changed (1) hide show
  1. pages/7_record.py +14 -6
pages/7_record.py CHANGED
@@ -11,11 +11,11 @@ from sample_utils.turn import get_ice_servers
11
 
12
 
13
  def video_frame_callback(frame: av.VideoFrame) -> av.VideoFrame:
 
 
 
14
  img = frame.to_ndarray(format="bgr24")
15
-
16
- # perform edge detection
17
  img = cv2.cvtColor(cv2.Canny(img, 100, 200), cv2.COLOR_GRAY2BGR)
18
-
19
  return av.VideoFrame.from_ndarray(img, format="bgr24")
20
 
21
 
@@ -23,21 +23,28 @@ RECORD_DIR = Path("./records")
23
  RECORD_DIR.mkdir(exist_ok=True)
24
 
25
 
26
- def app():
 
 
 
27
  if "prefix" not in st.session_state:
28
  st.session_state["prefix"] = str(uuid.uuid4())
29
  prefix = st.session_state["prefix"]
 
 
30
  in_file = RECORD_DIR / f"{prefix}_input.flv"
31
  out_file = RECORD_DIR / f"{prefix}_output.flv"
32
 
 
33
  def in_recorder_factory() -> MediaRecorder:
34
  return MediaRecorder(
35
  str(in_file), format="flv"
36
- ) # HLS does not work. See https://github.com/aiortc/aiortc/issues/331
37
 
38
  def out_recorder_factory() -> MediaRecorder:
39
  return MediaRecorder(str(out_file), format="flv")
40
 
 
41
  webrtc_streamer(
42
  key="record",
43
  mode=WebRtcMode.SENDRECV,
@@ -51,6 +58,7 @@ def app():
51
  out_recorder_factory=out_recorder_factory,
52
  )
53
 
 
54
  if in_file.exists():
55
  with in_file.open("rb") as f:
56
  st.download_button(
@@ -64,4 +72,4 @@ def app():
64
 
65
 
66
  if __name__ == "__main__":
67
- app()
 
11
 
12
 
13
  def video_frame_callback(frame: av.VideoFrame) -> av.VideoFrame:
14
+ """
15
+ Process video frames: Perform edge detection on the incoming frames.
16
+ """
17
  img = frame.to_ndarray(format="bgr24")
 
 
18
  img = cv2.cvtColor(cv2.Canny(img, 100, 200), cv2.COLOR_GRAY2BGR)
 
19
  return av.VideoFrame.from_ndarray(img, format="bgr24")
20
 
21
 
 
23
  RECORD_DIR.mkdir(exist_ok=True)
24
 
25
 
26
+ def virtual_keyboard_app():
27
+ """
28
+ Streamlit application for recording video streams with a filter applied.
29
+ """
30
  if "prefix" not in st.session_state:
31
  st.session_state["prefix"] = str(uuid.uuid4())
32
  prefix = st.session_state["prefix"]
33
+
34
+ # Define input and output file paths
35
  in_file = RECORD_DIR / f"{prefix}_input.flv"
36
  out_file = RECORD_DIR / f"{prefix}_output.flv"
37
 
38
+ # Factory for creating MediaRecorder objects
39
  def in_recorder_factory() -> MediaRecorder:
40
  return MediaRecorder(
41
  str(in_file), format="flv"
42
+ )
43
 
44
  def out_recorder_factory() -> MediaRecorder:
45
  return MediaRecorder(str(out_file), format="flv")
46
 
47
+ # Initialize WebRTC streamer
48
  webrtc_streamer(
49
  key="record",
50
  mode=WebRtcMode.SENDRECV,
 
58
  out_recorder_factory=out_recorder_factory,
59
  )
60
 
61
+ # Display download buttons for recorded files
62
  if in_file.exists():
63
  with in_file.open("rb") as f:
64
  st.download_button(
 
72
 
73
 
74
  if __name__ == "__main__":
75
+ virtual_keyboard_app()