my-video-workflow/config.py
2022-08-31 15:01:43 +08:00

152 lines
5.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import configparser
import os.path
# [danmaku]
# exec
DANMAKU_FACTORY_EXEC = "DanmakuFactory"
# speed
DANMAKU_SPEED = 12
# font
DEFAULT_FONT_NAME = "Sarasa Term SC"
# font_size
DANMAKU_FONT_SIZE = 40
# resolution
VIDEO_RESOLUTION = "1280x720"
# [ffmpeg]
# exec
FFMPEG_EXEC = "ffmpeg"
# hevc
FFMPEG_USE_HEVC = False
# nvidia_gpu
FFMPEG_USE_NVIDIA_GPU = False
# intel_gpu
FFMPEG_USE_INTEL_GPU = False
# bitrate
VIDEO_BITRATE = "2.5M"
# crf
VIDEO_CRF = 28
# [video]
# enabled
VIDEO_ENABLED = False
# title
VIDEO_TITLE = "【永恒de草薙直播录播】直播于 {}"
# desc
VIDEO_DESC = "弹幕来源B站直播\r\n\r\n" + \
"原主播永恒de草薙\r\n往期节目单查询https://comment.sc.jerryyan.top\r\n\r\n" + \
"好多人这时候就开始问了,在哪直播呀,哎。对吧…咱来啦啊。在哔哩哔哩啊," \
"无论你是用网页百度搜索哔哩哔哩官网或者是用手机的APP下载一个哔哩哔哩" \
"都能找到原主播。大概每天晚七点半左右吧…一般都是往左。然后的话呢搜索永恒de草薙就能找到他。" \
"那么今天的话呢今天的录播也就发完了…他是本期的主播永恒。咱明天同一时间不见不散…拜拜!!"
# tid
VIDEO_TID = 17
# tags
VIDEO_TAGS = "永恒de草薙,三国,三国战记,直播录像,录播,怀旧,街机"
# [clip]
# each_sec
VIDEO_CLIP_EACH_SEC = 6000
# overflow_sec
VIDEO_CLIP_OVERFLOW_SEC = 5
# [recorder]
# bili_dir
BILILIVE_RECORDER_DIRECTORY = "./"
# xigua_dir
XIGUALIVE_RECORDER_DIRECTORY = "./"
# output_dir
VIDEO_OUTPUT_DIR = "./"
def load_config():
if not os.path.exists("config.ini"):
write_config()
return False
config = configparser.ConfigParser()
config.read("config.ini", encoding="utf-8")
if config.has_section("danmaku"):
section = config['danmaku']
global DANMAKU_FACTORY_EXEC, DANMAKU_SPEED, DEFAULT_FONT_NAME, VIDEO_RESOLUTION, DANMAKU_FONT_SIZE
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)
DANMAKU_FONT_SIZE = section.getint('font_size', DANMAKU_FONT_SIZE)
VIDEO_RESOLUTION = section.get('resolution', VIDEO_RESOLUTION)
if config.has_section("video"):
section = config['video']
global VIDEO_ENABLED, VIDEO_TITLE, VIDEO_DESC, VIDEO_TID, VIDEO_TAGS
VIDEO_ENABLED = section.getboolean('enabled', VIDEO_ENABLED)
VIDEO_TITLE = section.get('title', VIDEO_TITLE)
VIDEO_DESC = section.get('desc', VIDEO_DESC)
VIDEO_TID = section.getint('tid', VIDEO_TID)
VIDEO_TAGS = section.get('tags', VIDEO_TAGS)
if config.has_section("clip"):
section = config['clip']
global VIDEO_CLIP_EACH_SEC, VIDEO_CLIP_OVERFLOW_SEC
VIDEO_CLIP_EACH_SEC = section.getfloat('each_sec', VIDEO_CLIP_EACH_SEC)
VIDEO_CLIP_OVERFLOW_SEC = section.getfloat('overflow_sec', VIDEO_CLIP_OVERFLOW_SEC)
if config.has_section("ffmpeg"):
section = config['ffmpeg']
global FFMPEG_EXEC, FFMPEG_USE_HEVC, FFMPEG_USE_NVIDIA_GPU, FFMPEG_USE_INTEL_GPU, VIDEO_BITRATE, VIDEO_CRF
FFMPEG_EXEC = section.get('exec', FFMPEG_EXEC)
FFMPEG_USE_HEVC = section.getboolean('hevc', FFMPEG_USE_HEVC)
FFMPEG_USE_NVIDIA_GPU = section.getboolean('nvidia_gpu', FFMPEG_USE_NVIDIA_GPU)
FFMPEG_USE_INTEL_GPU = section.getboolean('intel_gpu', FFMPEG_USE_INTEL_GPU)
VIDEO_BITRATE = section.get('bitrate', VIDEO_BITRATE)
VIDEO_CRF = section.getfloat('crf', VIDEO_CRF)
if config.has_section("recorder"):
global BILILIVE_RECORDER_DIRECTORY, XIGUALIVE_RECORDER_DIRECTORY, VIDEO_OUTPUT_DIR
section = config['recorder']
BILILIVE_RECORDER_DIRECTORY = section.get('bili_dir', BILILIVE_RECORDER_DIRECTORY)
XIGUALIVE_RECORDER_DIRECTORY = section.get('xigua_dir', XIGUALIVE_RECORDER_DIRECTORY)
VIDEO_OUTPUT_DIR = section.get('output_dir', VIDEO_OUTPUT_DIR)
return True
def get_config():
config = {
'danmaku': {
'exec': DANMAKU_FACTORY_EXEC,
'speed': DANMAKU_SPEED,
'font': DEFAULT_FONT_NAME,
'font_size': DANMAKU_FONT_SIZE,
'resolution': VIDEO_RESOLUTION,
},
'video': {
'enabled': VIDEO_ENABLED,
'title': VIDEO_TITLE,
'desc': VIDEO_DESC,
'tid': VIDEO_TID,
'tags': VIDEO_TAGS,
},
'clip': {
'each_sec': VIDEO_CLIP_EACH_SEC,
'overflow_sec': VIDEO_CLIP_OVERFLOW_SEC,
},
'ffmpeg': {
'exec': FFMPEG_EXEC,
'hevc': FFMPEG_USE_HEVC,
'nvidia_gpu': FFMPEG_USE_NVIDIA_GPU,
'intel_gpu': FFMPEG_USE_INTEL_GPU,
'bitrate': VIDEO_BITRATE,
'crf': VIDEO_CRF,
},
'recorder': {
'bili_dir': BILILIVE_RECORDER_DIRECTORY,
'xigua_dir': XIGUALIVE_RECORDER_DIRECTORY,
'output_dir': VIDEO_OUTPUT_DIR,
},
}
return config
def write_config():
config = configparser.ConfigParser()
_config = get_config()
for _i in _config:
config[_i] = _config[_i]
with open("config.ini", "w", encoding="utf-8") as f:
config.write(f)
return True
load_config()