Adjusts in project
This commit is contained in:
@@ -9,10 +9,6 @@ from moviepy import TextClip
|
|||||||
|
|
||||||
font = "./Montserrat.ttf"
|
font = "./Montserrat.ttf"
|
||||||
|
|
||||||
def normalize_filename(filename):
|
|
||||||
name = unicodedata.normalize('NFKD', filename).encode('ASCII', 'ignore').decode('ASCII')
|
|
||||||
return name.lower()
|
|
||||||
|
|
||||||
def cut_video_new_clip(input_path: str, start: float, end: float, output_path: str):
|
def cut_video_new_clip(input_path: str, start: float, end: float, output_path: str):
|
||||||
video_codec = "libx264"
|
video_codec = "libx264"
|
||||||
|
|
||||||
@@ -108,11 +104,11 @@ def timestamp_to_seconds(ts):
|
|||||||
else:
|
else:
|
||||||
raise ValueError(f"Timestamp inválido: {ts}")
|
raise ValueError(f"Timestamp inválido: {ts}")
|
||||||
|
|
||||||
def process_full_video(filename: str, title: str, times: list = None) -> list:
|
def process_full_video(filename: str, times: list = None) -> list:
|
||||||
os.makedirs("temp", exist_ok=True)
|
os.makedirs("temp", exist_ok=True)
|
||||||
|
|
||||||
times = times or []
|
times = times or []
|
||||||
video_path = f"videos/{title}"
|
video_path = f"videos/{filename}"
|
||||||
processed = []
|
processed = []
|
||||||
|
|
||||||
video_codec = "libx264"
|
video_codec = "libx264"
|
||||||
|
|||||||
@@ -6,10 +6,9 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "5000:5000"
|
- "5000:5000"
|
||||||
volumes:
|
volumes:
|
||||||
# - /home/well/outputs:/app/outputs
|
- "/root/videos:/app/videos"
|
||||||
# - /home/well/videosDownload:/app/videos
|
- "/root/temp:/app/temp"
|
||||||
# - /home/well/tempVideos:/app/temp
|
- "/root/outputs:/app/outputs"
|
||||||
- ".:/app" # descomentar somente se for rodar no windows/linux local
|
|
||||||
# gpus: all
|
# gpus: all
|
||||||
# environment:
|
# environment:
|
||||||
# - NVIDIA_VISIBLE_DEVICES=all
|
# - NVIDIA_VISIBLE_DEVICES=all
|
||||||
|
|||||||
15
main.py
15
main.py
@@ -1,8 +1,6 @@
|
|||||||
import os
|
import os
|
||||||
import requests
|
import requests
|
||||||
import threading
|
import threading
|
||||||
import glob
|
|
||||||
import shutil
|
|
||||||
|
|
||||||
os.environ["IMAGEIO_FFMPEG_EXE"] = "/usr/bin/ffmpeg"
|
os.environ["IMAGEIO_FFMPEG_EXE"] = "/usr/bin/ffmpeg"
|
||||||
|
|
||||||
@@ -12,19 +10,18 @@ from components.video import process_full_video
|
|||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
|
||||||
def process_and_call_webhook(url, video_id, times, webhook_url, row_number, filename, title):
|
def process_and_call_webhook(url, video_id, times, webhook_url, filename):
|
||||||
try:
|
try:
|
||||||
os.makedirs("videos", exist_ok=True)
|
os.makedirs("videos", exist_ok=True)
|
||||||
os.makedirs("temp", exist_ok=True)
|
os.makedirs("temp", exist_ok=True)
|
||||||
|
|
||||||
print(f"Working on video {filename}")
|
print(f"Working on video {filename}")
|
||||||
processed_files = process_full_video(filename, title, times)
|
processed_files = process_full_video(filename, times)
|
||||||
|
|
||||||
payload = {
|
payload = {
|
||||||
"videosProcessedQuantity": len(processed_files),
|
"videosProcessedQuantity": len(processed_files),
|
||||||
"filename": filename,
|
"filename": filename,
|
||||||
"processedFiles": processed_files,
|
"processedFiles": processed_files,
|
||||||
"rowNumber": row_number,
|
|
||||||
"url": url,
|
"url": url,
|
||||||
"videoId": video_id,
|
"videoId": video_id,
|
||||||
"error": False,
|
"error": False,
|
||||||
@@ -43,7 +40,6 @@ def process_and_call_webhook(url, video_id, times, webhook_url, row_number, file
|
|||||||
"videosProcessedQuantity": 0,
|
"videosProcessedQuantity": 0,
|
||||||
"filename": filename,
|
"filename": filename,
|
||||||
"processedFiles": processed_files,
|
"processedFiles": processed_files,
|
||||||
"rowNumber": row_number,
|
|
||||||
"url": url,
|
"url": url,
|
||||||
"videoId": video_id,
|
"videoId": video_id,
|
||||||
"error": str(e),
|
"error": str(e),
|
||||||
@@ -70,24 +66,19 @@ def process_video():
|
|||||||
|
|
||||||
url = data.get("url")
|
url = data.get("url")
|
||||||
video_id = data.get("videoId")
|
video_id = data.get("videoId")
|
||||||
title = data.get("title", "")
|
|
||||||
times = data.get("times", [])
|
times = data.get("times", [])
|
||||||
webhook_url = data.get("webhookUrl")
|
webhook_url = data.get("webhookUrl")
|
||||||
row_number = data.get("rowNumber")
|
|
||||||
|
|
||||||
if not webhook_url:
|
if not webhook_url:
|
||||||
return jsonify({"error": "Informe 'webhookUrl'"}), 400
|
return jsonify({"error": "Informe 'webhookUrl'"}), 400
|
||||||
|
|
||||||
if not row_number:
|
|
||||||
return jsonify({"error": "Informe a linha da planilha"}), 400
|
|
||||||
|
|
||||||
filename = data.get("filename")
|
filename = data.get("filename")
|
||||||
if not filename:
|
if not filename:
|
||||||
return jsonify({"error": "Informe 'filename'"}), 400
|
return jsonify({"error": "Informe 'filename'"}), 400
|
||||||
|
|
||||||
threading.Thread(
|
threading.Thread(
|
||||||
target=process_and_call_webhook,
|
target=process_and_call_webhook,
|
||||||
args=(url, video_id, times, webhook_url, row_number, filename, title),
|
args=(url, video_id, times, webhook_url, filename),
|
||||||
daemon=True
|
daemon=True
|
||||||
).start()
|
).start()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user