lubo_toolkit/auto_split_video.py
2021-09-02 13:19:50 +08:00

56 lines
2.0 KiB
Python

import os
import copy
template_current_video = {
"filename": "",
"file_ext": "mp4",
"pack_ext": "mp4",
"out_ext": "mp4",
"start": "",
"end": "",
"suffix": "",
"target_name": "",
}
current_line = ""
with open("../a.txt", "r", encoding="GB2312") as f:
skip_current = False
current_video_params = copy.deepcopy(template_current_video)
for current_line in f.readlines():
current_line = current_line.strip()
if current_line == "":
if skip_current:
skip_current = False
else:
os.system(" ".join([
"ffmpeg", "-y", "-i", "{filename}.{file_ext}".format_map(current_video_params),
"-c copy", "-f {pack_ext}".format_map(current_video_params),
"-ss","{start}".format_map(current_video_params),
"-to","{end}".format_map(current_video_params),
"{target_name}{suffix}.{out_ext}".format_map(current_video_params),
]))
current_video_params = copy.deepcopy(template_current_video)
continue
if current_line.startswith("=" * 5):
break
if "~" in current_line:
skip_current = True
continue
if "+" in current_line and "-" in current_line:
filename, time_series = current_line.split("+", 1)
if "." in filename:
filename, file_ext = filename.split(".", 1)
current_video_params['file_ext'] = file_ext
current_video_params['filename'] = filename
suffix, _ = filename.split("_")
current_video_params['suffix'] = "_"+suffix[4:]
start, end = time_series.split("-", 1)
current_video_params['start'] = start
current_video_params['end'] = end
else:
if current_video_params['filename'] == "":
skip_current = True
continue
current_video_params['target_name'] = current_line
continue