还是使用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] # [danmaku]
# exec # exec
DANMU_ASS_EXEC = "danmu2ass" DANMAKU_FACTORY_EXEC = "DanmakuFactory"
# speed # speed
DANMAKU_SPEED = 12 DANMAKU_SPEED = 12
# font # font
@ -47,8 +47,8 @@ def load_config():
config.read("config.ini", encoding="utf-8") config.read("config.ini", encoding="utf-8")
if config.has_section("danmaku"): if config.has_section("danmaku"):
section = config['danmaku'] section = config['danmaku']
global DANMU_ASS_EXEC, DANMAKU_SPEED, DEFAULT_FONT_NAME, VIDEO_RESOLUTION global DANMAKU_FACTORY_EXEC, DANMAKU_SPEED, DEFAULT_FONT_NAME, VIDEO_RESOLUTION
DANMU_ASS_EXEC = section.get('exec', DANMU_ASS_EXEC) DANMAKU_FACTORY_EXEC = section.get('exec', DANMAKU_FACTORY_EXEC)
DANMAKU_SPEED = section.getfloat('speed', DANMAKU_SPEED) DANMAKU_SPEED = section.getfloat('speed', DANMAKU_SPEED)
DEFAULT_FONT_NAME = section.get('font', DEFAULT_FONT_NAME) DEFAULT_FONT_NAME = section.get('font', DEFAULT_FONT_NAME)
VIDEO_RESOLUTION = section.get('resolution', VIDEO_RESOLUTION) VIDEO_RESOLUTION = section.get('resolution', VIDEO_RESOLUTION)
@ -81,7 +81,7 @@ def load_config():
def get_config(): def get_config():
config = { config = {
'danmaku': { 'danmaku': {
'exec': DANMU_ASS_EXEC, 'exec': DANMAKU_FACTORY_EXEC,
'speed': DANMAKU_SPEED, 'speed': DANMAKU_SPEED,
'font': DEFAULT_FONT_NAME, 'font': DEFAULT_FONT_NAME,
'resolution': VIDEO_RESOLUTION, 'resolution': VIDEO_RESOLUTION,

View File

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

View File

@ -7,7 +7,7 @@ from typing import Union
from bs4 import BeautifulSoup 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 exception.danmaku import NoDanmakuException, DanmakuFormatErrorException
from util.file import check_file_exist 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): def danmaku_to_subtitle(file: Union[os.PathLike[str], str], time_shift: float):
new_subtitle_name = md5(file.encode("utf-8")).hexdigest() + ".ass" new_subtitle_name = md5(file.encode("utf-8")).hexdigest() + ".ass"
(_w, _h) = VIDEO_RESOLUTION.split("x")
process = subprocess.Popen(( process = subprocess.Popen((
DANMU_ASS_EXEC, "--force", "-a", "0.9", "-d", str(DANMAKU_SPEED), "--font", str(DEFAULT_FONT_NAME), DANMAKU_FACTORY_EXEC, "--ignore-warnings",
"--font-size", "40", "--lane-size", "40", "--width", _w, "--height", _h, "-o", new_subtitle_name, "-r", str(VIDEO_RESOLUTION), "-s", str(DANMAKU_SPEED), "-f", "5",
"-p", "1", "--time-offset", str(time_shift), "--width-ratio", "1", file "-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() process.wait()
return new_subtitle_name return new_subtitle_name