willwade commited on
Commit
88a03bc
·
1 Parent(s): f0a5581

fix frames

Browse files
Files changed (1) hide show
  1. app.py +45 -9
app.py CHANGED
@@ -68,15 +68,51 @@ class ChaplinGradio:
68
  if frame is None:
69
  return "No video input detected"
70
 
71
- # Compress frame
72
- encode_param = [int(cv2.IMWRITE_JPEG_QUALITY), self.frame_compression]
73
- _, buffer = cv2.imencode('.jpg', frame, encode_param)
74
- compressed_frame = cv2.imdecode(buffer, cv2.IMREAD_GRAYSCALE)
75
-
76
- # Run inference using the VSR model
77
- predicted_text = self.vsr_model.process_frame(compressed_frame)
78
-
79
- return predicted_text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
80
 
81
 
82
  # Create Gradio interface
 
68
  if frame is None:
69
  return "No video input detected"
70
 
71
+ try:
72
+ # Create temp directory if it doesn't exist
73
+ os.makedirs("temp", exist_ok=True)
74
+
75
+ # Generate temporary video file path
76
+ temp_video = f"temp/frame_{time.time_ns()}.mp4"
77
+
78
+ # Compress and save frame as video
79
+ frame_height, frame_width = frame.shape[:2]
80
+ out = cv2.VideoWriter(
81
+ temp_video,
82
+ cv2.VideoWriter_fourcc(*'mp4v'),
83
+ self.fps,
84
+ (frame_width, frame_height),
85
+ False # isColor
86
+ )
87
+
88
+ # Convert frame to grayscale if it's not already
89
+ if len(frame.shape) == 3:
90
+ frame = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY)
91
+
92
+ # Write frame to video
93
+ out.write(frame)
94
+ out.release()
95
+
96
+ # Process the video file using the pipeline
97
+ try:
98
+ predicted_text = self.vsr_model(temp_video)
99
+
100
+ # Clean up temp file
101
+ os.remove(temp_video)
102
+
103
+ return predicted_text
104
+
105
+ except Exception as e:
106
+ print(f"Error during inference: {str(e)}")
107
+ return f"Error processing frame: {str(e)}"
108
+
109
+ except Exception as e:
110
+ print(f"Error saving frame: {str(e)}")
111
+ return f"Error saving frame: {str(e)}"
112
+ finally:
113
+ # Make sure we always try to clean up
114
+ if 'temp_video' in locals() and os.path.exists(temp_video):
115
+ os.remove(temp_video)
116
 
117
 
118
  # Create Gradio interface