diff --git a/.env b/.env index 3cba4e0..e4ee4d6 100644 --- a/.env +++ b/.env @@ -5,4 +5,4 @@ TEMP_DIR=tmp/ # QSV ENCODER_ARGS="-c:v h264_qsv -global_quality 28 -look_ahead 1" # NVENC -#ENCODER_ARGS="-c:v h264_nvenc -rc cbr_ld_hq -b:v 3000k -preset p7 -profile high -bf 0 -bf-strategy 0 -rc-lookahead 0 -qp 28 -spatial-aq 1 -temporal-aq 1 -aq-strength 8 -cq 28" \ No newline at end of file +#ENCODER_ARGS="-c:v h264_nvenc -cq:v 24 -preset:v p7 -tune:v hq -profile:v high -bf 0 -bf-strategy 0 -rc-lookahead 0 -qp 28 -spatial-aq 1 -temporal-aq 1 -aq-strength 8 -cq 28" \ No newline at end of file diff --git a/app.py b/app.py new file mode 100644 index 0000000..2f1c3f0 --- /dev/null +++ b/app.py @@ -0,0 +1,23 @@ +import flask + +import config +import biz.task +from telemetry import init_opentelemetry +from template import load_local_template +from util import api + +load_local_template() +import logging + +LOGGER = logging.getLogger(__name__) +init_opentelemetry() +app = flask.Flask(__name__) + +@app.post('/:id') +def do_task(id): + task_info = api.get_task_info(id) + biz.task.start_task(task_info) + + +if __name__ == '__main__': + app.run(host="0.0.0.0", port=9998) \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 9077762..c5d85df 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,4 +3,5 @@ psutil~=6.1.0 python-dotenv~=1.0.1 opentelemetry-api~=1.30.0 opentelemetry-sdk~=1.30.0 -opentelemetry-exporter-otlp~=1.30.0 \ No newline at end of file +opentelemetry-exporter-otlp~=1.30.0 +flask~=3.1.0 \ No newline at end of file diff --git a/util/api.py b/util/api.py index 835035b..1bae3af 100644 --- a/util/api.py +++ b/util/api.py @@ -231,3 +231,18 @@ def upload_task_file(task_info, ffmpeg_task): url = data.get('data', "") logger.info("开始上传文件: %s 至 %s", task_info.get("id"), url) return oss.upload_to_oss(url, ffmpeg_task.get_output_file()) + + +def get_task_info(id): + try: + response = session.get(os.getenv('API_ENDPOINT') + "/" + id + "/info", params={ + 'accessKey': os.getenv('ACCESS_KEY'), + }, timeout=10) + response.raise_for_status() + except requests.RequestException as e: + logger.error("请求失败!", e) + return [] + data = response.json() + logger.debug("获取任务结果:【%s】", data) + if data.get('code', 0) == 200: + return data.get('data', {}) \ No newline at end of file