yeliudev's picture
Upload folder using huggingface_hub
6073e55 verified
raw
history blame contribute delete
735 Bytes
# Copyright (c) 2025 Ye Liu. Licensed under the BSD-3-Clause License.
import pysrt
from decord import VideoReader
def time_to_seconds(t):
return (t.hour * 60 + t.minute) * 60 + t.second + t.microsecond / 1000000
def load_subtitle(path):
subs = pysrt.open(path)
parsed = []
for sub in subs:
s = time_to_seconds(sub.start.to_time())
e = time_to_seconds(sub.end.to_time())
parsed.append((s, e, sub.text))
return parsed
def get_duration(path, num_threads=1):
# sometimes the video is loaded as a list of frames
if isinstance(path, list):
return len(path)
vr = VideoReader(path, num_threads=num_threads)
duration = len(vr) / vr.get_avg_fps()
return duration