Vilken helfestlig ide! Lyssna inte på de andra tramspellarna. Det är klart du ska snabbspola förbi tråkiga scener. Jag hafsade ihop något snabbt och fult som verkar lyckas med det du vill, dock för MPC-HC och inte VLC. Kräver Python med Requests-biblioteket installerat och att man har aktiverat webbinterfacet i MPC-HC. Kör så här där script.py innehåller koden nedanför och subs.srt är undertextfilen.
Jag höftade ihop ett filter med två hårdkodade parametrar så att den inte snabbspolar så fort det är någon sekund utan undertexter. filter_hysteresis
styr hur långt hål i undertexterna det ska vara för att snabbspola över huvud taget och padding
bestämmer hur långt innan och efter undertexterna snabbspolningen börjar och slutar. Båda är i millisekunder (eftersom MPC-HC räknade i den enheten). Om jag chansade dåligt får du ändra värdena.
import requests
import time
from sys import argv
s = requests.Session()
filter_hysteresis = 10e3
padding = 2e3
def parsetime(timestr):
split = timestr.split(":")
s = int(split[0])*3600e3 + int(split[1])*60e3 + float(split[2].replace(",", ""))
return s
# parse srt
raw = []
with open(argv[1]) as f:
for line in f.read().split("\n\n"):
split = line.split("\n")
if len(split) > 1:
raw.append([parsetime(x) for x in split[1].split(" --> ")])
# do some filtering
timestamps = []
i = 0
start = None
while i < len(raw) - 1:
if start is None:
start = raw[i][0]
if raw[i+1][0] - raw[i][1] > filter_hysteresis:
timestamps.append([start - padding, raw[i][1] + padding])
start = None
i += 1
timestamps.append([start - padding, raw[i][1] + padding])
# sync
ff = False
s.post("http://127.0.0.1:13579/command.html", data={"wm_command": 896})
# main loop
while True:
millis = int(s.get("http://127.0.0.1:13579/status.html").text.split(", ")[2])
print(millis)
for timestamp in timestamps:
if timestamp[0] < millis < timestamp[1]:
if ff:
print("normal speed")
s.post("http://127.0.0.1:13579/command.html", data={"wm_command": 896})
ff = False
break
else:
if not ff:
print("ff")
s.post("http://127.0.0.1:13579/command.html", data={"wm_command": 895})
s.post("http://127.0.0.1:13579/command.html", data={"wm_command": 895})
ff = True
time.sleep(0.05)
kåååd