pcdoido2 commited on
Commit
4f97bbf
·
verified ·
1 Parent(s): 2cdb771

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -27
app.py CHANGED
@@ -118,6 +118,7 @@ if pagina == "🎬 Gerador de Vídeo":
118
  cortes_prontos = []
119
  cortes_usados = []
120
 
 
121
  if aleatorizar:
122
  duracao_corte_min_n = random.randint(1, 5)
123
  duracao_corte_max_n = random.randint(duracao_corte_min_n + 1, 8)
@@ -139,7 +140,7 @@ if pagina == "🎬 Gerador de Vídeo":
139
  ativar_blur_fundo_n = ativar_blur_fundo
140
  ativar_espelhar_n = ativar_espelhar
141
 
142
- # Etapa 1 - Fundo com ponto aleatório
143
  if usar_fundo:
144
  fundo_origem = random.choice(cortes_names)
145
  fundo_convertido = os.path.join(temp_dir, f"fundo_convertido_{n}.mp4")
@@ -171,8 +172,7 @@ if pagina == "🎬 Gerador de Vídeo":
171
  ], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
172
  etapa_atual += 1
173
  atualizar_barra(n, etapa_atual, num_videos_finais, total_etapas)
174
-
175
- # Etapa 2 - Cortes
176
  tentativas = 0
177
  while tempo_total < duracao_final and tentativas < 100:
178
  tentativas += 1
@@ -217,11 +217,10 @@ if pagina == "🎬 Gerador de Vídeo":
217
  "ffmpeg", "-f", "concat", "-safe", "0", "-i", lista,
218
  "-c:v", "libx264", "-preset", "ultrafast", "-crf", "30", video_raw
219
  ], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
220
-
221
  etapa_atual += 1
222
  atualizar_barra(n, etapa_atual, num_videos_finais, total_etapas)
223
 
224
- # Etapa 3 - Filtros e Efeitos
225
  filtros_main = ["scale=720:1280:force_original_aspect_ratio=decrease"]
226
  if zoom_n != 1.0:
227
  filtros_main.append(f"scale=iw*{zoom_n}:ih*{zoom_n}")
@@ -288,11 +287,19 @@ if pagina == "🎬 Gerador de Vídeo":
288
  "-c:v", "libx264", "-preset", "ultrafast", "-crf", str(crf_value),
289
  video_editado
290
  ], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
291
-
292
  etapa_atual += 1
293
  atualizar_barra(n, etapa_atual, num_videos_finais, total_etapas)
294
 
295
- # Etapa 4 - Tutorial
 
 
 
 
 
 
 
 
 
296
  if usar_tutorial and tutorials_salvos:
297
  tutorial_path = random.choice(tutorials_salvos)
298
  tutorial_mp4 = os.path.join(temp_dir, f"tutorial_conv_{n}.mp4")
@@ -304,7 +311,7 @@ if pagina == "🎬 Gerador de Vídeo":
304
 
305
  dur_proc = subprocess.run([
306
  "ffprobe", "-v", "error", "-show_entries", "format=duration",
307
- "-of", "default=noprint_wrappers=1:nokey=1", video_editado
308
  ], stdout=subprocess.PIPE)
309
  dur_f = float(dur_proc.stdout.decode().strip() or 0)
310
  pt = dur_f / 2 if dur_f < 10 else random.uniform(5, dur_f - 5)
@@ -312,10 +319,10 @@ if pagina == "🎬 Gerador de Vídeo":
312
  part1 = os.path.join(temp_dir, f"part1_{n}.mp4")
313
  part2 = os.path.join(temp_dir, f"part2_{n}.mp4")
314
 
315
- subprocess.run(["ffmpeg", "-i", video_editado, "-ss", "0", "-t", str(pt),
316
  "-c:v", "libx264", "-preset", "ultrafast", part1],
317
  stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
318
- subprocess.run(["ffmpeg", "-i", video_editado, "-ss", str(pt),
319
  "-c:v", "libx264", "-preset", "ultrafast", part2],
320
  stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
321
 
@@ -328,22 +335,12 @@ if pagina == "🎬 Gerador de Vídeo":
328
  "-c:v", "libx264", "-preset", "ultrafast", "-crf", str(crf_value),
329
  video_final_raw], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
330
  else:
331
- video_final_raw = video_editado
332
- etapa_atual += 1
333
- atualizar_barra(n, etapa_atual, num_videos_finais, total_etapas)
334
-
335
- # Etapa 5 - Velocidade final
336
- video_com_velocidade = os.path.join(temp_dir, f"video_com_velocidade_{n}.mp4")
337
- subprocess.run([
338
- "ffmpeg", "-y", "-i", video_final_raw, "-an",
339
- "-filter:v", f"setpts=PTS/{velocidade_final_n}",
340
- "-c:v", "libx264", "-preset", "ultrafast", "-crf", str(crf_value),
341
- video_com_velocidade
342
- ], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
343
 
 
344
  dur_final_str = subprocess.run([
345
  "ffprobe", "-v", "error", "-show_entries", "format=duration",
346
- "-of", "default=noprint_wrappers=1:nokey=1", video_com_velocidade
347
  ], stdout=subprocess.PIPE).stdout.decode().strip()
348
  if not dur_final_str:
349
  continue
@@ -357,12 +354,12 @@ if pagina == "🎬 Gerador de Vídeo":
357
  "-vn", "-acodec", "aac", "-y", musica_cortada],
358
  stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
359
 
360
- subprocess.run(["ffmpeg", "-i", video_com_velocidade, "-i", musica_cortada,
361
  "-map", "0:v:0", "-map", "1:a:0",
362
  "-c:v", "copy", "-c:a", "aac", "-shortest", final_name],
363
  stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
364
  else:
365
- shutil.copy(video_com_velocidade, final_name)
366
 
367
  if salvar_no_gerenciador:
368
  destino = os.path.join(BASE_SALVOS, categoria_selecionada, final_name)
@@ -414,7 +411,6 @@ elif pagina == "📂 Gerenciador de Arquivos":
414
  st.success(f"✅ Arquivo '{file}' baixado e excluído.")
415
  st.rerun()
416
 
417
- # Botão extra de exclusão
418
  if st.button("🗑 Excluir", key=f"delete_{categoria}_{file}"):
419
  os.remove(file_path)
420
  st.success(f"❌ Arquivo '{file}' excluído.")
@@ -487,4 +483,4 @@ elif pagina == "🔐 Admin":
487
  with col2:
488
  if st.button("🗑", key=f"{tipo}_{cat}_{arq}"):
489
  os.remove(os.path.join(path, arq))
490
- st.rerun()
 
118
  cortes_prontos = []
119
  cortes_usados = []
120
 
121
+ # === Config aleatória ou fixa ===
122
  if aleatorizar:
123
  duracao_corte_min_n = random.randint(1, 5)
124
  duracao_corte_max_n = random.randint(duracao_corte_min_n + 1, 8)
 
140
  ativar_blur_fundo_n = ativar_blur_fundo
141
  ativar_espelhar_n = ativar_espelhar
142
 
143
+ # === Etapa 1 - Fundo ===
144
  if usar_fundo:
145
  fundo_origem = random.choice(cortes_names)
146
  fundo_convertido = os.path.join(temp_dir, f"fundo_convertido_{n}.mp4")
 
172
  ], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
173
  etapa_atual += 1
174
  atualizar_barra(n, etapa_atual, num_videos_finais, total_etapas)
175
+ # === Etapa 2 - Cortes ===
 
176
  tentativas = 0
177
  while tempo_total < duracao_final and tentativas < 100:
178
  tentativas += 1
 
217
  "ffmpeg", "-f", "concat", "-safe", "0", "-i", lista,
218
  "-c:v", "libx264", "-preset", "ultrafast", "-crf", "30", video_raw
219
  ], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
 
220
  etapa_atual += 1
221
  atualizar_barra(n, etapa_atual, num_videos_finais, total_etapas)
222
 
223
+ # === Etapa 3 - Filtros ===
224
  filtros_main = ["scale=720:1280:force_original_aspect_ratio=decrease"]
225
  if zoom_n != 1.0:
226
  filtros_main.append(f"scale=iw*{zoom_n}:ih*{zoom_n}")
 
287
  "-c:v", "libx264", "-preset", "ultrafast", "-crf", str(crf_value),
288
  video_editado
289
  ], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
 
290
  etapa_atual += 1
291
  atualizar_barra(n, etapa_atual, num_videos_finais, total_etapas)
292
 
293
+ # === Etapa 4 - VELOCIDADE (antes do tutorial) ===
294
+ video_com_velocidade = os.path.join(temp_dir, f"video_com_velocidade_{n}.mp4")
295
+ subprocess.run([
296
+ "ffmpeg", "-y", "-i", video_editado, "-an",
297
+ "-filter:v", f"setpts=PTS/{velocidade_final_n}",
298
+ "-c:v", "libx264", "-preset", "ultrafast", "-crf", str(crf_value),
299
+ video_com_velocidade
300
+ ], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
301
+
302
+ # === Etapa 5 - Tutorial (sem ser acelerado) ===
303
  if usar_tutorial and tutorials_salvos:
304
  tutorial_path = random.choice(tutorials_salvos)
305
  tutorial_mp4 = os.path.join(temp_dir, f"tutorial_conv_{n}.mp4")
 
311
 
312
  dur_proc = subprocess.run([
313
  "ffprobe", "-v", "error", "-show_entries", "format=duration",
314
+ "-of", "default=noprint_wrappers=1:nokey=1", video_com_velocidade
315
  ], stdout=subprocess.PIPE)
316
  dur_f = float(dur_proc.stdout.decode().strip() or 0)
317
  pt = dur_f / 2 if dur_f < 10 else random.uniform(5, dur_f - 5)
 
319
  part1 = os.path.join(temp_dir, f"part1_{n}.mp4")
320
  part2 = os.path.join(temp_dir, f"part2_{n}.mp4")
321
 
322
+ subprocess.run(["ffmpeg", "-i", video_com_velocidade, "-ss", "0", "-t", str(pt),
323
  "-c:v", "libx264", "-preset", "ultrafast", part1],
324
  stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
325
+ subprocess.run(["ffmpeg", "-i", video_com_velocidade, "-ss", str(pt),
326
  "-c:v", "libx264", "-preset", "ultrafast", part2],
327
  stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
328
 
 
335
  "-c:v", "libx264", "-preset", "ultrafast", "-crf", str(crf_value),
336
  video_final_raw], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
337
  else:
338
+ video_final_raw = video_com_velocidade
 
 
 
 
 
 
 
 
 
 
 
339
 
340
+ # === Etapa 6 - Música e saída final ===
341
  dur_final_str = subprocess.run([
342
  "ffprobe", "-v", "error", "-show_entries", "format=duration",
343
+ "-of", "default=noprint_wrappers=1:nokey=1", video_final_raw
344
  ], stdout=subprocess.PIPE).stdout.decode().strip()
345
  if not dur_final_str:
346
  continue
 
354
  "-vn", "-acodec", "aac", "-y", musica_cortada],
355
  stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
356
 
357
+ subprocess.run(["ffmpeg", "-i", video_final_raw, "-i", musica_cortada,
358
  "-map", "0:v:0", "-map", "1:a:0",
359
  "-c:v", "copy", "-c:a", "aac", "-shortest", final_name],
360
  stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
361
  else:
362
+ shutil.copy(video_final_raw, final_name)
363
 
364
  if salvar_no_gerenciador:
365
  destino = os.path.join(BASE_SALVOS, categoria_selecionada, final_name)
 
411
  st.success(f"✅ Arquivo '{file}' baixado e excluído.")
412
  st.rerun()
413
 
 
414
  if st.button("🗑 Excluir", key=f"delete_{categoria}_{file}"):
415
  os.remove(file_path)
416
  st.success(f"❌ Arquivo '{file}' excluído.")
 
483
  with col2:
484
  if st.button("🗑", key=f"{tipo}_{cat}_{arq}"):
485
  os.remove(os.path.join(path, arq))
486
+ st.rerun()