opex792 commited on
Commit
33c7a92
·
verified ·
1 Parent(s): aa19145

Update app/main.py

Browse files
Files changed (1) hide show
  1. app/main.py +13 -4
app/main.py CHANGED
@@ -1,3 +1,4 @@
 
1
  import os
2
  import uuid
3
  import hashlib
@@ -21,6 +22,13 @@ from apscheduler.schedulers.asyncio import AsyncIOScheduler
21
  # Ключ API для доступа
22
  API_KEY = os.getenv("API_KEY")
23
 
 
 
 
 
 
 
 
24
  # Директории для хранения данных
25
  BASE_DATA_DIR = Path("data")
26
  UPLOADS_DIR = BASE_DATA_DIR / "uploads"
@@ -221,7 +229,7 @@ async def cleanup_files():
221
  app = FastAPI(
222
  title="ab-av1 API Server",
223
  description="REST API для асинхронного кодирования видео. **Интерактивная документация: `/docs`**.",
224
- version="2.7.0", # Версия обновлена
225
  )
226
 
227
  @app.on_event("startup")
@@ -363,10 +371,12 @@ def run_auto_encode_workflow(task_id: str, request: AutoEncodeRequest):
363
 
364
  temp_cfr_path = OUTPUTS_DIR / f"{task_id}_temp_cfr.mp4"
365
 
366
- # --- ИЗМЕНЕНИЕ 1: Пресет изменен с 5 на 4 ---
367
  cfr_cmd = [
368
  "ffmpeg", "-i", str(original_input_path), "-vf", f"fps={target_fps}",
369
- "-c:v", "libsvtav1", "-crf", "17", "-preset", "4",
 
 
370
  "-c:a", "copy", "-c:s", "copy", str(temp_cfr_path)
371
  ]
372
  _run_sub_task(cfr_cmd, "VFR в CFR конвертация")
@@ -402,7 +412,6 @@ def run_auto_encode_workflow(task_id: str, request: AutoEncodeRequest):
402
  raise RuntimeError("Не удалось найти рекомендованный CRF в выводе crf-search.")
403
  _log_message(f"Найден оптимальный CRF: {found_crf}")
404
 
405
- # --- ИЗМЕНЕНИЕ 2: Финальное кодирование использует правильный исходник (crf_search_input) ---
406
  _log_message("Шаг 3/4: Финальное кодирование")
407
  final_output_path = Path(task["output_path"])
408
  encode_cmd = [
 
1
+
2
  import os
3
  import uuid
4
  import hashlib
 
22
  # Ключ API для доступа
23
  API_KEY = os.getenv("API_KEY")
24
 
25
+ # --- ИЗМЕНЕНИЕ: Параметры для VFR -> CFR вынесены сюда ---
26
+ # Настройки для конвертации видео с переменной частотой кадров (VFR)
27
+ # в видео с постоянной частотой кадров (CFR).
28
+ # Этот шаг выполняется для стабилизации видео перед основным кодированием.
29
+ VFR_TO_CFR_CRF = 17 # Качество (чем ниже, тем лучше). 17 - очень высокое.
30
+ VFR_TO_CFR_PRESET = 4 # Скорость (чем ниже, тем качественнее, но медленнее).
31
+
32
  # Директории для хранения данных
33
  BASE_DATA_DIR = Path("data")
34
  UPLOADS_DIR = BASE_DATA_DIR / "uploads"
 
229
  app = FastAPI(
230
  title="ab-av1 API Server",
231
  description="REST API для асинхронного кодирования видео. **Интерактивная документация: `/docs`**.",
232
+ version="2.8.0", # Версия обновлена
233
  )
234
 
235
  @app.on_event("startup")
 
371
 
372
  temp_cfr_path = OUTPUTS_DIR / f"{task_id}_temp_cfr.mp4"
373
 
374
+ # --- ИЗМЕНЕНИЕ: Используются переменные из конфигурации ---
375
  cfr_cmd = [
376
  "ffmpeg", "-i", str(original_input_path), "-vf", f"fps={target_fps}",
377
+ "-c:v", "libsvtav1",
378
+ "-crf", str(VFR_TO_CFR_CRF),
379
+ "-preset", str(VFR_TO_CFR_PRESET),
380
  "-c:a", "copy", "-c:s", "copy", str(temp_cfr_path)
381
  ]
382
  _run_sub_task(cfr_cmd, "VFR в CFR конвертация")
 
412
  raise RuntimeError("Не удалось найти рекомендованный CRF в выводе crf-search.")
413
  _log_message(f"Найден оптимальный CRF: {found_crf}")
414
 
 
415
  _log_message("Шаг 3/4: Финальное кодирование")
416
  final_output_path = Path(task["output_path"])
417
  encode_cmd = [