youssef commited on
Commit
e927231
·
1 Parent(s): 9a80e6e
Files changed (1) hide show
  1. src/app.py +25 -4
src/app.py CHANGED
@@ -3,6 +3,7 @@ from video_processor.processor import VideoAnalyzer, get_video_duration_seconds
3
  import logging
4
  import torch
5
  import spaces
 
6
 
7
  # Configure logging
8
  logging.basicConfig(level=logging.INFO)
@@ -17,6 +18,8 @@ if torch.cuda.is_available():
17
 
18
  @spaces.GPU
19
  def on_process(video):
 
 
20
  # Clear all components when starting new processing
21
  yield [
22
  "", # Clear status
@@ -34,6 +37,7 @@ def on_process(video):
34
 
35
  try:
36
  # Initialize analyzer
 
37
  yield [
38
  "Initializing video analyzer...",
39
  "",
@@ -41,10 +45,12 @@ def on_process(video):
41
  ]
42
 
43
  analyzer = VideoAnalyzer()
 
 
44
 
45
  # Process video
46
  yield [
47
- "Analyzing video content...",
48
  "",
49
  gr.update(visible=True)
50
  ]
@@ -57,16 +63,25 @@ def on_process(video):
57
 
58
  # Process video segments
59
  yield [
60
- f"Processing video... (This will process {total_segments} segments)",
61
  "",
62
  gr.update(visible=True)
63
  ]
64
 
65
  # Process segments and show progress
66
  segments = []
 
 
67
  for i, segment in enumerate(analyzer.process_video(video)):
 
68
  segments.append(segment)
 
 
 
69
  progress = int((i + 1) / total_segments * 100)
 
 
 
70
 
71
  # Format current segments
72
  formatted_desc = "### Video Analysis by Segments:\n\n"
@@ -74,13 +89,19 @@ def on_process(video):
74
  formatted_desc += f"**[{seg['timestamp']}]** {seg['description']}\n\n"
75
 
76
  yield [
77
- f"Processing segments... {progress}% complete",
 
 
 
78
  formatted_desc,
79
  gr.update(visible=True)
80
  ]
81
 
 
82
  yield [
83
- "Processing complete!",
 
 
84
  formatted_desc,
85
  gr.update(visible=True)
86
  ]
 
3
  import logging
4
  import torch
5
  import spaces
6
+ import time
7
 
8
  # Configure logging
9
  logging.basicConfig(level=logging.INFO)
 
18
 
19
  @spaces.GPU
20
  def on_process(video):
21
+ start_time = time.time()
22
+
23
  # Clear all components when starting new processing
24
  yield [
25
  "", # Clear status
 
37
 
38
  try:
39
  # Initialize analyzer
40
+ init_start = time.time()
41
  yield [
42
  "Initializing video analyzer...",
43
  "",
 
45
  ]
46
 
47
  analyzer = VideoAnalyzer()
48
+ init_time = time.time() - init_start
49
+ logger.info(f"Initialization took {init_time:.2f} seconds")
50
 
51
  # Process video
52
  yield [
53
+ f"Model initialized in {init_time:.2f}s. Starting analysis...",
54
  "",
55
  gr.update(visible=True)
56
  ]
 
63
 
64
  # Process video segments
65
  yield [
66
+ f"Processing video... (Will analyze {total_segments} segments)",
67
  "",
68
  gr.update(visible=True)
69
  ]
70
 
71
  # Process segments and show progress
72
  segments = []
73
+ total_processing_time = 0
74
+
75
  for i, segment in enumerate(analyzer.process_video(video)):
76
+ segment_start = time.time()
77
  segments.append(segment)
78
+ segment_time = time.time() - segment_start
79
+ total_processing_time += segment_time
80
+
81
  progress = int((i + 1) / total_segments * 100)
82
+ avg_time_per_segment = total_processing_time / (i + 1)
83
+ remaining_segments = total_segments - (i + 1)
84
+ estimated_remaining = remaining_segments * avg_time_per_segment
85
 
86
  # Format current segments
87
  formatted_desc = "### Video Analysis by Segments:\n\n"
 
89
  formatted_desc += f"**[{seg['timestamp']}]** {seg['description']}\n\n"
90
 
91
  yield [
92
+ f"Processing segments... {progress}% complete\n" +
93
+ f"Segment {i+1}/{total_segments} processed in {segment_time:.2f}s\n" +
94
+ f"Average time per segment: {avg_time_per_segment:.2f}s\n" +
95
+ f"Estimated time remaining: {estimated_remaining:.2f}s",
96
  formatted_desc,
97
  gr.update(visible=True)
98
  ]
99
 
100
+ total_time = time.time() - start_time
101
  yield [
102
+ f"Processing complete!\n" +
103
+ f"Total processing time: {total_time:.2f}s\n" +
104
+ f"Average time per segment: {total_processing_time/total_segments:.2f}s",
105
  formatted_desc,
106
  gr.update(visible=True)
107
  ]