YaoFANGUK / video-subtitle-remover

基于AI的图片/视频硬字幕去除、文本水印去除,无损分辨率生成去字幕、去水印后的图片/视频文件。无需申请第三方API,本地实现。AI-based tool for removing hard-coded subtitles and text-like watermarks from videos or Pictures.
Apache License 2.0
4.07k stars 527 forks source link

基于flask或fastapi来启动一个服务,通过接口调用SubtitleRemover,服务会无法启动 #58

Closed fevolq closed 5 months ago

fevolq commented 5 months ago
from flask import Flask, request, jsonify, abort, send_file
import os
from werkzeug.utils import secure_filename
import sys

sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from backend import main

app = Flask(__name__)

@app.route('/submit', methods=['POST'])
def submit():
    file = request.files.get('file')
    area = request.args.get('area')
    if area:
        try:
            area = [float(item.strip()) for item in area.split(',')]
            if len(area) != 4:
                raise ValueError
        except ValueError:
            abort(400, description="Error area")
    else:
        area = None

    filename = secure_filename(file.filename)

    import shutil
    with open(filename, "wb") as buffer:
        shutil.copyfileobj(file.stream, buffer)

    main.SubtitleRemover(filename, sub_area=area).run()

    return jsonify(code=200), 200

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8090)

如果自己构造一个Remover类进行测试,且不导入main.py,则服务可以正常启动

fevolq commented 5 months ago

image