Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -141,9 +141,7 @@ with gr.Blocks(title="Extracci贸n de Fotogramas Forenses") as demo:
|
|
| 141 |
|
| 142 |
with gr.Row():
|
| 143 |
with gr.Column():
|
| 144 |
-
# Se elimina el par谩metro 'source' para que solo se permita la carga de archivos.
|
| 145 |
video_input = gr.Video(label="Subir Video (solo archivos de video)", interactive=True)
|
| 146 |
-
# Ambos botones inician desactivados
|
| 147 |
procesar_btn = gr.Button("Procesar Fotogramas", interactive=False)
|
| 148 |
with gr.Column():
|
| 149 |
gallery_output = gr.Image(label="Collage de Muestra")
|
|
@@ -154,9 +152,7 @@ with gr.Blocks(title="Extracci贸n de Fotogramas Forenses") as demo:
|
|
| 154 |
temp_dir_state = gr.State(None)
|
| 155 |
zip_path_state = gr.State(None)
|
| 156 |
|
| 157 |
-
# Al cargar un video: si es v谩lido, se activa el bot贸n "Procesar Fotogramas" y se desactiva "DESCARGAR FOTOGRAMAS"
|
| 158 |
def on_video_change(video):
|
| 159 |
-
# Verificar que se haya cargado algo y que contenga informaci贸n
|
| 160 |
if not video:
|
| 161 |
return gr.update(interactive=False), gr.update(interactive=False)
|
| 162 |
if isinstance(video, dict) and video.get("name"):
|
|
@@ -168,7 +164,6 @@ with gr.Blocks(title="Extracci贸n de Fotogramas Forenses") as demo:
|
|
| 168 |
allowed_extensions = ('.mp4', '.avi', '.mov', '.mkv')
|
| 169 |
if not original_name.lower().endswith(allowed_extensions):
|
| 170 |
raise gr.Error("Solo se permiten archivos de video (mp4, avi, mov, mkv)")
|
| 171 |
-
# Al tener un video v谩lido, activa "Procesar Fotogramas" y desactiva "DESCARGAR FOTOGRAMAS"
|
| 172 |
return gr.update(interactive=True), gr.update(interactive=False)
|
| 173 |
|
| 174 |
video_input.change(
|
|
@@ -178,8 +173,6 @@ with gr.Blocks(title="Extracci贸n de Fotogramas Forenses") as demo:
|
|
| 178 |
queue=False
|
| 179 |
)
|
| 180 |
|
| 181 |
-
# Al pulsar "Procesar Fotogramas": se procesa el video, se genera el collage y el ZIP, se desactiva el bot贸n de procesar
|
| 182 |
-
# y se activa el bot贸n de descarga.
|
| 183 |
def procesar_y_mostrar(video):
|
| 184 |
btn_proc_update = gr.update(interactive=False)
|
| 185 |
if temp_dir_state.value:
|
|
@@ -194,9 +187,9 @@ with gr.Blocks(title="Extracci贸n de Fotogramas Forenses") as demo:
|
|
| 194 |
outputs=[gallery_output, download_file, temp_dir_state, zip_path_state, download_btn, procesar_btn],
|
| 195 |
)
|
| 196 |
|
| 197 |
-
#
|
| 198 |
def trigger_download(zip_path):
|
| 199 |
-
return
|
| 200 |
|
| 201 |
download_btn.click(
|
| 202 |
fn=trigger_download,
|
|
|
|
| 141 |
|
| 142 |
with gr.Row():
|
| 143 |
with gr.Column():
|
|
|
|
| 144 |
video_input = gr.Video(label="Subir Video (solo archivos de video)", interactive=True)
|
|
|
|
| 145 |
procesar_btn = gr.Button("Procesar Fotogramas", interactive=False)
|
| 146 |
with gr.Column():
|
| 147 |
gallery_output = gr.Image(label="Collage de Muestra")
|
|
|
|
| 152 |
temp_dir_state = gr.State(None)
|
| 153 |
zip_path_state = gr.State(None)
|
| 154 |
|
|
|
|
| 155 |
def on_video_change(video):
|
|
|
|
| 156 |
if not video:
|
| 157 |
return gr.update(interactive=False), gr.update(interactive=False)
|
| 158 |
if isinstance(video, dict) and video.get("name"):
|
|
|
|
| 164 |
allowed_extensions = ('.mp4', '.avi', '.mov', '.mkv')
|
| 165 |
if not original_name.lower().endswith(allowed_extensions):
|
| 166 |
raise gr.Error("Solo se permiten archivos de video (mp4, avi, mov, mkv)")
|
|
|
|
| 167 |
return gr.update(interactive=True), gr.update(interactive=False)
|
| 168 |
|
| 169 |
video_input.change(
|
|
|
|
| 173 |
queue=False
|
| 174 |
)
|
| 175 |
|
|
|
|
|
|
|
| 176 |
def procesar_y_mostrar(video):
|
| 177 |
btn_proc_update = gr.update(interactive=False)
|
| 178 |
if temp_dir_state.value:
|
|
|
|
| 187 |
outputs=[gallery_output, download_file, temp_dir_state, zip_path_state, download_btn, procesar_btn],
|
| 188 |
)
|
| 189 |
|
| 190 |
+
# Soluci贸n para que el bot贸n de descarga retorne la ruta del ZIP
|
| 191 |
def trigger_download(zip_path):
|
| 192 |
+
return zip_path
|
| 193 |
|
| 194 |
download_btn.click(
|
| 195 |
fn=trigger_download,
|