def METHOD_NAME(self, threshold=30):
    seg_num = math.ceil((self.end - self.start) / threshold)
    if seg_num == 1:
        return [self.segs]
    avg = (self.end - self.start) / seg_num
    return_seg = []
    start_time = self.start
    cache_seg = []
    for seg in self.segs:
        cache_time = seg[1] - start_time
        if cache_time > avg:
            return_seg.append(cache_seg)
            start_time = seg[0]
            cache_seg = [seg]
        else:
            cache_seg.append(seg)
    return_seg.append(cache_seg)
    return return_seg