unMcFucking
This commit is contained in:
69
getnative_aio.py
Normal file
69
getnative_aio.py
Normal file
@@ -0,0 +1,69 @@
|
||||
from ast import arguments
|
||||
import re, subprocess, sys, os, shutil
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
output_folder_name = "/temp/"
|
||||
droppedFile = sys.argv[1]
|
||||
droppedName = Path(droppedFile).name
|
||||
|
||||
#droppedFile = ['test_source.mkv']
|
||||
|
||||
#get path of script location and remove the tail
|
||||
head_tail = os.path.split(sys.argv[0])
|
||||
output_path = head_tail[0]
|
||||
arguments = sys.argv[1:]
|
||||
|
||||
#check if output folder exists, otherwise create it
|
||||
isExist = os.path.exists(output_path+output_folder_name)
|
||||
if not isExist:
|
||||
os.makedirs(output_path+output_folder_name)
|
||||
|
||||
number_of_ss=int(input("Number of ss: "))
|
||||
print(number_of_ss)
|
||||
|
||||
#run ffprobe to get duration of input file, then get appropriate timestamps out of it
|
||||
for i, file in enumerate(arguments):
|
||||
|
||||
arg_list = 'ffprobe.exe -show_entries format=duration -i "{file}"'.format(file=file)
|
||||
print(arg_list)
|
||||
cmd = subprocess.Popen(arg_list, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding='UTF-8')
|
||||
subprocess_std = cmd.communicate()[0]
|
||||
|
||||
#use search instead of findall, no need to add it in a list
|
||||
#int(re.search(r"[0-9]+", subprocces_std)[0])
|
||||
#convert result to int
|
||||
video_duration = [int(s) for s in re.findall(r"[0-9]+", subprocess_std)][0]
|
||||
duration_percent = video_duration / 100
|
||||
time = duration_percent * 15
|
||||
skip = ((duration_percent * 90) - (duration_percent* 15)) / (number_of_ss -1)
|
||||
|
||||
#run ffmpeg to get screenshots and previously determined timestamps
|
||||
|
||||
for i in range(0, number_of_ss):
|
||||
|
||||
basename = os.path.basename(file)
|
||||
args = 'ffmpeg.exe -ss {time} -i "{file}" -frames:v 1 -q:v 1 "{output_path}{output_folder_name}{basename}{i}.jpg"'.format(time=skip*i+time, file=file, output_path=output_path, output_folder_name=output_folder_name, basename=basename, i=i)
|
||||
print(args)
|
||||
subprocess.call(args)
|
||||
|
||||
|
||||
#Find all new images in the output folder
|
||||
img = os.listdir(output_path+output_folder_name)
|
||||
|
||||
#run getnative on all images created
|
||||
for each in img:
|
||||
args = 'py -3 -m getnative --show-plot-gui "{output_path}{output_folder_name}{each}" '.format(output_path=output_path,output_folder_name=output_folder_name, each=each)
|
||||
print(args)
|
||||
|
||||
subprocess.call(args)
|
||||
|
||||
#clean the trash files generated
|
||||
lwi = os.listdir(output_path)
|
||||
for item in lwi:
|
||||
if item.endswith(".lwi"):
|
||||
os.remove(os.path.join(output_path, item))
|
||||
shutil.rmtree(output_path+"/temp")
|
||||
shutil.rmtree(output_path+"/results")
|
||||
|
||||
input("press enter to exit")
|
||||
Reference in New Issue
Block a user