Former-commit-id: 675e932431ea8000277a664896ba8f4c9fb80a94 Former-commit-id: 99dacc5ebe0dfe1c2ab4c0d5e9c7fc47aa586aab
84 lines
2.8 KiB
Python
84 lines
2.8 KiB
Python
from subprocess import Popen,PIPE
|
|
from os import listdir
|
|
from os.path import isdir
|
|
|
|
pool:dict[str,Popen] = dict()
|
|
names_code:list[str] = []
|
|
names_alt:list[str] = []
|
|
vid:list[str] = []
|
|
paths = listdir()
|
|
while len(paths)!=0:
|
|
for path in paths:
|
|
paths.pop(paths.index(path))
|
|
if isdir(path):
|
|
paths.extend([path+"/"+i for i in listdir(path)])
|
|
if "tmp" in path:
|
|
continue
|
|
if path[-3:] in ["mp4", "flv"]:
|
|
vid.append(path)
|
|
|
|
print(vid)
|
|
for path in vid:
|
|
names_code.append(path)
|
|
cmd = ['ffmpeg',
|
|
# '-hwaccel',
|
|
# 'cuda',
|
|
# '-hwaccel_output_format',
|
|
# 'cuda',
|
|
'-i',
|
|
path,
|
|
# '-c:v',
|
|
# 'h264_nvenc',
|
|
'-y',
|
|
'tmp_'+path
|
|
]
|
|
pool.update({path:Popen(cmd,stderr=open(path+"_ffmpeg.log","w",encoding="utf-8"))})
|
|
while len(names_code)>3:
|
|
for name in names_code.copy(): # To avoid the infulence of names_code modification
|
|
if pool[name].poll() is not None:
|
|
ret = pool[name].poll()
|
|
print(ret)
|
|
if ret != 0:
|
|
print(f"'{name}' error")
|
|
elif pool[name].args[0] == "ffmpeg":
|
|
tmp = 'tmp_'+name
|
|
names_alt.append(tmp)
|
|
cmd = [
|
|
"auto-editor",
|
|
"-mcut",
|
|
"1",
|
|
"-o",
|
|
"opt/"+name,
|
|
tmp
|
|
]
|
|
pool.update({tmp:Popen(cmd,stderr=open(name+"_auto.log","w",encoding="utf-8"))})
|
|
names_code.append(tmp)
|
|
elif pool[name].args[0] == "auto-editor":
|
|
print(f"'{name}' success")
|
|
pool.pop(name)
|
|
names_code.pop(names_code.index(name))
|
|
|
|
print(names_code,len(names_code),len(names_code)>0)
|
|
while len(names_code)>0:
|
|
for name in names_code.copy(): # To avoid the infulence of names_code modification
|
|
if pool[name].poll() is not None:
|
|
ret = pool[name].poll()
|
|
if ret != 0:
|
|
print(f"'{name}' error")
|
|
elif pool[name].args[0] == "ffmpeg":
|
|
tmp = 'tmp_'+name
|
|
names_alt.append(tmp)
|
|
cmd = [
|
|
"auto-editor",
|
|
"-mcut",
|
|
"1",
|
|
"-o",
|
|
"opt/"+name,
|
|
tmp
|
|
]
|
|
pool.update({tmp:Popen(cmd,stdout=open(name+"_auto.log","w",encoding="utf-8"))})
|
|
names_code.append(tmp)
|
|
elif pool[name].args[0] == "auto-editor":
|
|
print(f"'{name}' success")
|
|
pool.pop(name)
|
|
names_code.pop(names_code.index(name)) |