patocolher commited on
Commit
ff3152b
Β·
verified Β·
1 Parent(s): 7b81782

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +4 -6
app.py CHANGED
@@ -34,7 +34,6 @@ def reencode_video(video_file, modo, resolucao, fps, crf_valor, normalizar_audio
34
  vid_h = int(stream.get("height", 1080))
35
  is_vertical = vid_h > vid_w
36
 
37
- # Pegar a duraΓ§Γ£o total para calcular a porcentagem
38
  probe_dur = subprocess.run([
39
  "ffprobe", "-v", "error",
40
  "-show_entries", "format=duration",
@@ -78,9 +77,10 @@ def reencode_video(video_file, modo, resolucao, fps, crf_valor, normalizar_audio
78
  vf = ",".join(vf_parts) if vf_parts else "null"
79
 
80
  # ── Monta comando base ──────────────────────────────────────
 
 
 
81
  cmd = ["ffmpeg", "-hide_banner", "-loglevel", "error", "-progress", "pipe:1", "-y"]
82
- if use_gpu:
83
- cmd += ["-hwaccel", "cuda"]
84
  cmd += ["-i", input_path, "-vf", vf]
85
 
86
  if remover_duplicados:
@@ -165,7 +165,6 @@ def reencode_video(video_file, modo, resolucao, fps, crf_valor, normalizar_audio
165
  current_sec = 0.0
166
  pct = 0
167
 
168
- # LΓͺ a saΓ­da do -progress pipe:1
169
  while True:
170
  line = process.stdout.readline()
171
  if not line and process.poll() is not None:
@@ -182,7 +181,6 @@ def reencode_video(video_file, modo, resolucao, fps, crf_valor, normalizar_audio
182
  else:
183
  yield None, f"⏳ Codificando... {current_sec:.1f}s processados"
184
 
185
- # Verifica se deu erro no final
186
  if process.returncode != 0:
187
  err = process.stderr.read()
188
  yield None, f"❌ Erro no FFmpeg:\n{err[-1500:]}"
@@ -199,7 +197,7 @@ def reencode_video(video_file, modo, resolucao, fps, crf_valor, normalizar_audio
199
  elif not has_audio:
200
  extras.append("⚠️ sem faixa de Γ‘udio")
201
  if remover_duplicados:
202
- extras.append("frames duplicados removidos")
203
  if gpu_fallback:
204
  extras.append("⚠️ GPU indisponΓ­vel β†’ usou CPU")
205
 
 
34
  vid_h = int(stream.get("height", 1080))
35
  is_vertical = vid_h > vid_w
36
 
 
37
  probe_dur = subprocess.run([
38
  "ffprobe", "-v", "error",
39
  "-show_entries", "format=duration",
 
77
  vf = ",".join(vf_parts) if vf_parts else "null"
78
 
79
  # ── Monta comando base ──────────────────────────────────────
80
+ # NOTA: Removido o -hwaccel cuda. Como usamos filtros de software (-vf),
81
+ # deixar o FFmpeg decodificar na CPU e enviar direto pro NVENC Γ© muito
82
+ # mais rΓ‘pido do que ficar transferindo frames da GPU pra CPU e vice-versa.
83
  cmd = ["ffmpeg", "-hide_banner", "-loglevel", "error", "-progress", "pipe:1", "-y"]
 
 
84
  cmd += ["-i", input_path, "-vf", vf]
85
 
86
  if remover_duplicados:
 
165
  current_sec = 0.0
166
  pct = 0
167
 
 
168
  while True:
169
  line = process.stdout.readline()
170
  if not line and process.poll() is not None:
 
181
  else:
182
  yield None, f"⏳ Codificando... {current_sec:.1f}s processados"
183
 
 
184
  if process.returncode != 0:
185
  err = process.stderr.read()
186
  yield None, f"❌ Erro no FFmpeg:\n{err[-1500:]}"
 
197
  elif not has_audio:
198
  extras.append("⚠️ sem faixa de Γ‘udio")
199
  if remover_duplicados:
200
+ extras.append("frames duplicados removidos (forΓ§a uso de CPU)")
201
  if gpu_fallback:
202
  extras.append("⚠️ GPU indisponΓ­vel β†’ usou CPU")
203