还是使用DanmakuFactory

Revert "换用danmu2ass"

This reverts commit 4c3d74fed8d1518866cda345a75879fb23e4cd2a.
This commit is contained in:
Jerry Yan 2022-07-02 13:12:14 +08:00
parent 4c3d74fed8
commit 6d339a0fe3
3 changed files with 12 additions and 11 deletions

View File

@ -4,7 +4,7 @@ import os.path
# [danmaku]
# exec
DANMU_ASS_EXEC = "danmu2ass"
DANMAKU_FACTORY_EXEC = "DanmakuFactory"
# speed
DANMAKU_SPEED = 12
# font
@ -47,8 +47,8 @@ def load_config():
config.read("config.ini", encoding="utf-8")
if config.has_section("danmaku"):
section = config['danmaku']
global DANMU_ASS_EXEC, DANMAKU_SPEED, DEFAULT_FONT_NAME, VIDEO_RESOLUTION
DANMU_ASS_EXEC = section.get('exec', DANMU_ASS_EXEC)
global DANMAKU_FACTORY_EXEC, DANMAKU_SPEED, DEFAULT_FONT_NAME, VIDEO_RESOLUTION
DANMAKU_FACTORY_EXEC = section.get('exec', DANMAKU_FACTORY_EXEC)
DANMAKU_SPEED = section.getfloat('speed', DANMAKU_SPEED)
DEFAULT_FONT_NAME = section.get('font', DEFAULT_FONT_NAME)
VIDEO_RESOLUTION = section.get('resolution', VIDEO_RESOLUTION)
@ -81,7 +81,7 @@ def load_config():
def get_config():
config = {
'danmaku': {
'exec': DANMU_ASS_EXEC,
'exec': DANMAKU_FACTORY_EXEC,
'speed': DANMAKU_SPEED,
'font': DEFAULT_FONT_NAME,
'resolution': VIDEO_RESOLUTION,

View File

@ -4,7 +4,7 @@ import platform
import psutil
from flask import Blueprint, jsonify
from config import DANMU_ASS_EXEC, FFMPEG_EXEC, BILILIVE_RECORDER_DIRECTORY, XIGUALIVE_RECORDER_DIRECTORY, VIDEO_OUTPUT_DIR
from config import DANMAKU_FACTORY_EXEC, FFMPEG_EXEC, BILILIVE_RECORDER_DIRECTORY, XIGUALIVE_RECORDER_DIRECTORY, VIDEO_OUTPUT_DIR
from util.system import check_exec
blueprint = Blueprint("api_collector", __name__, url_prefix="/api/collector")
@ -59,7 +59,7 @@ def collect_basic_status():
},
'exec': {
'ffmpeg': check_exec(FFMPEG_EXEC),
'danmaku': check_exec(DANMU_ASS_EXEC),
'danmaku': check_exec(DANMAKU_FACTORY_EXEC),
},
'system': {
'os': platform.system(),

View File

@ -7,7 +7,7 @@ from typing import Union
from bs4 import BeautifulSoup
from config import DANMU_ASS_EXEC, VIDEO_RESOLUTION, DANMAKU_SPEED, DEFAULT_FONT_NAME
from config import DANMAKU_FACTORY_EXEC, VIDEO_RESOLUTION, DANMAKU_SPEED, DEFAULT_FONT_NAME
from exception.danmaku import NoDanmakuException, DanmakuFormatErrorException
from util.file import check_file_exist
@ -34,11 +34,12 @@ def diff_danmaku_files(base_file: Union[os.PathLike[str], str], file: Union[os.P
def danmaku_to_subtitle(file: Union[os.PathLike[str], str], time_shift: float):
new_subtitle_name = md5(file.encode("utf-8")).hexdigest() + ".ass"
(_w, _h) = VIDEO_RESOLUTION.split("x")
process = subprocess.Popen((
DANMU_ASS_EXEC, "--force", "-a", "0.9", "-d", str(DANMAKU_SPEED), "--font", str(DEFAULT_FONT_NAME),
"--font-size", "40", "--lane-size", "40", "--width", _w, "--height", _h, "-o", new_subtitle_name,
"-p", "1", "--time-offset", str(time_shift), "--width-ratio", "1", file
DANMAKU_FACTORY_EXEC, "--ignore-warnings",
"-r", str(VIDEO_RESOLUTION), "-s", str(DANMAKU_SPEED), "-f", "5",
"-S", "40", "-N", str(DEFAULT_FONT_NAME), "--showmsgbox", "FALSE",
"-O", "255", "-L", "1", "-D", "0",
"-o", "ass", new_subtitle_name, "-i", file, "-t", str(time_shift)
))
process.wait()
return new_subtitle_name