just updates
This commit is contained in:
98
bulk_threading_test_2_1_audio.py
Normal file
98
bulk_threading_test_2_1_audio.py
Normal file
@@ -0,0 +1,98 @@
|
||||
import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
import os
|
||||
from time import sleep
|
||||
from threading import Thread
|
||||
import threading
|
||||
import re
|
||||
|
||||
|
||||
|
||||
max_threads=4
|
||||
i=0
|
||||
output_folder_name ="/bulk_convert_out/"
|
||||
|
||||
droppedFile = sys.argv[1]
|
||||
droppedName = Path(droppedFile).name
|
||||
originalfiles = sys.orig_argv[2:]
|
||||
|
||||
#long path shenanigans
|
||||
joined = (' '.join(originalfiles))
|
||||
re.sub (' +', ' ', joined)
|
||||
listed = re.split(r'(.+?mkv)', joined)
|
||||
listed = list(filter(None, listed))
|
||||
listed = [i.lstrip() for i in listed]
|
||||
|
||||
#droppedFile= ['test.mkv0out.mkv', "test.mkv1out.mkv","test.mkv2out.mkv","test.mkv3out.mkv","test.mkv4out.mkv","test.mkv5out.mkv"]
|
||||
#get path of script location and remove the tail
|
||||
head_tail = os.path.split(sys.argv[0])
|
||||
output_path = head_tail[0]
|
||||
|
||||
|
||||
#skip first part of sys.argv since it points to script location
|
||||
#arguments = sys.argv[1:]
|
||||
#arguments = droppedFile
|
||||
|
||||
#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)
|
||||
|
||||
org_count = len(listed)
|
||||
finished_count = int()
|
||||
|
||||
|
||||
class CustomThread(Thread):
|
||||
# constructor
|
||||
def __init__(self):
|
||||
|
||||
# execute the base constructor
|
||||
Thread.__init__(self)
|
||||
# set a default value
|
||||
|
||||
|
||||
def run(self):
|
||||
|
||||
#sleep(1)
|
||||
global i
|
||||
global finished_count
|
||||
file=listed.pop(0)
|
||||
basename = os.path.basename(file)
|
||||
print(file)
|
||||
args = 'ffmpeg.exe -analyzeduration 20000000 -probesize 20000000 -i "{file}" -fps_mode passthrough -map 0:t? -map 0:v:0 -c:v libx265 -preset slow -crf 15.4 -x265-params "no-sao=1:bframes=8:psy-rd=2:psy-rdoq=1.5:aq-mode=3:ref=6:deblock=-1,-1" -pix_fmt yuv420p10le -map 0:a? -c:a aac -ac 3 -b:a 256k -map 0:s? -c:s copy -f matroska "{output_path}{output_folder_name}{basename}"'.format(file=file, output_path=output_path, output_folder_name=output_folder_name, basename=basename)
|
||||
print(args)
|
||||
results = subprocess.Popen(args, creationflags=0x00004000, stdout=subprocess.PIPE)
|
||||
#streeamdata = results.communicate()[0]
|
||||
data = results.wait()
|
||||
|
||||
|
||||
if data == 0:
|
||||
i=i-1
|
||||
finished_count=finished_count+1
|
||||
|
||||
|
||||
|
||||
while listed != False:
|
||||
if i < max_threads:
|
||||
global self
|
||||
|
||||
if bool(listed) != False:
|
||||
t1 = CustomThread()
|
||||
t1.start()
|
||||
if bool(listed) == False:
|
||||
while bool(threading.active_count() > 1):
|
||||
print("Finished",finished_count,"out of", org_count," ")
|
||||
sleep(1)
|
||||
t1.join()
|
||||
print("Completed",finished_count,"out of",org_count, "inputs Successfully")
|
||||
input("waiting")
|
||||
exit()
|
||||
|
||||
print("incrementing i in loop")
|
||||
i=i+1
|
||||
|
||||
else:
|
||||
print("Finished ",finished_count,"out of ", org_count)
|
||||
sleep(1)
|
||||
print("continuing ")
|
||||
Reference in New Issue
Block a user