49 lines
1.3 KiB
Python
49 lines
1.3 KiB
Python
import re
|
|
import subprocess
|
|
import sys
|
|
from pathlib import Path
|
|
import os
|
|
regex = re.compile("Stream #0:\d(\(\w*\))?: Audio:.*")
|
|
|
|
|
|
droppedFile = sys.argv[1]
|
|
droppedName = Path(droppedFile).name
|
|
|
|
#droppedFile = ['sam_overlord_bluraysource.mkv']
|
|
|
|
del sys.argv[0]
|
|
number_of_ss=int(input("Number of ss: "))
|
|
print(number_of_ss)
|
|
|
|
for i, file in enumerate(sys.argv):
|
|
|
|
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]
|
|
|
|
print("stdout printing: " , subprocess_std)
|
|
video_duration = [int(s) for s in re.findall(r"[0-9]+", subprocess_std)][0]
|
|
print("video_duration: ", video_duration, "s")
|
|
duration_percent = video_duration / 100
|
|
print(duration_percent)
|
|
|
|
time = duration_percent * 15
|
|
|
|
skip = ((duration_percent * 90) - (duration_percent* 15)) / (number_of_ss -1)
|
|
for i in range(0, number_of_ss):
|
|
|
|
args = 'ffmpeg.exe -ss {time} -i "{file}" -frames:v 1 -q:v 1 "{file}{i}.jpg"'.format(time=skip*i+time, file=file, i=i)
|
|
print(args)
|
|
run = subprocess.Popen(args)
|
|
|
|
|
|
|
|
|
|
|
|
print('\n')
|
|
|
|
|
|
input("press enter to exit")
|