ManishThota commited on
Commit
2914f1a
·
verified ·
1 Parent(s): b40509f

Update multi_video_app.py

Browse files
Files changed (1) hide show
  1. multi_video_app.py +7 -8
multi_video_app.py CHANGED
@@ -9,7 +9,7 @@ import torch
9
  from src.video_model import describe_video
10
  from src.utils import parse_string, parse_annotations
11
 
12
- # Utility functions (from your provided utilities)
13
 
14
  # Function to save data to a CSV file
15
  def save_to_csv(observations: List[Dict], output_dir: str = "outputs") -> str:
@@ -77,9 +77,8 @@ def process_single_video(video_path: str, sitting, hands, location, screen) -> D
77
  return {"error": f"An error occurred with {video_name}: {e}"}
78
 
79
  # Function to process all videos in a folder
80
- def process_folder_of_videos(videos_folder: str, sitting, hands, location, screen):
81
  all_observations = []
82
- video_files = [os.path.join(videos_folder, f) for f in os.listdir(videos_folder) if f.endswith(('.mp4', '.avi', '.mkv'))]
83
 
84
  for video_path in video_files:
85
  observation = process_single_video(video_path, sitting, hands, location, screen)
@@ -96,11 +95,11 @@ def process_folder_of_videos(videos_folder: str, sitting, hands, location, scree
96
  return "Processing completed. Download the CSV file.", csv_file
97
 
98
  # Gradio interface
99
- def gradio_interface(videos_folder, sitting, hands, location, screen):
100
- return process_folder_of_videos(videos_folder, sitting, hands, location, screen)
101
 
102
  # Inputs
103
- videos_folder = gr.Directory(label="Upload a folder of videos")
104
  sitting = gr.Checkbox(label="Sitting/Standing")
105
  hands = gr.Checkbox(label="Hands Free/Not Free")
106
  location = gr.Checkbox(label="Indoors/Outdoors")
@@ -113,10 +112,10 @@ download_link = gr.File(label="Download CSV")
113
  # Gradio interface setup
114
  interface = gr.Interface(
115
  fn=gradio_interface,
116
- inputs=[videos_folder, sitting, hands, location, screen],
117
  outputs=[response, download_link],
118
  title="Batch Video Annotation",
119
- description="Upload a folder of videos and process them sequentially, saving the results to a downloadable CSV file.",
120
  theme=gr.themes.Soft(primary_hue="red", secondary_hue="red"),
121
  allow_flagging="never"
122
  )
 
9
  from src.video_model import describe_video
10
  from src.utils import parse_string, parse_annotations
11
 
12
+
13
 
14
  # Function to save data to a CSV file
15
  def save_to_csv(observations: List[Dict], output_dir: str = "outputs") -> str:
 
77
  return {"error": f"An error occurred with {video_name}: {e}"}
78
 
79
  # Function to process all videos in a folder
80
+ def process_multiple_videos(video_files: List[str], sitting, hands, location, screen):
81
  all_observations = []
 
82
 
83
  for video_path in video_files:
84
  observation = process_single_video(video_path, sitting, hands, location, screen)
 
95
  return "Processing completed. Download the CSV file.", csv_file
96
 
97
  # Gradio interface
98
+ def gradio_interface(video_files, sitting, hands, location, screen):
99
+ return process_multiple_videos(video_files, sitting, hands, location, screen)
100
 
101
  # Inputs
102
+ video_files = gr.File(file_count="multiple", file_types=["video"], label="Upload multiple videos")
103
  sitting = gr.Checkbox(label="Sitting/Standing")
104
  hands = gr.Checkbox(label="Hands Free/Not Free")
105
  location = gr.Checkbox(label="Indoors/Outdoors")
 
112
  # Gradio interface setup
113
  interface = gr.Interface(
114
  fn=gradio_interface,
115
+ inputs=[video_files, sitting, hands, location, screen],
116
  outputs=[response, download_link],
117
  title="Batch Video Annotation",
118
+ description="Upload multiple videos and process them sequentially, saving the results to a downloadable CSV file.",
119
  theme=gr.themes.Soft(primary_hue="red", secondary_hue="red"),
120
  allow_flagging="never"
121
  )