EVREAL / utils.py
ercanburak's picture
first version of ffmpeg command
95312c3
raw
history blame
2.41 kB
import os
import glob
import json
from pathlib import Path
from collections import OrderedDict
def read_json(fname):
fname = Path(fname)
with fname.open('rt') as handle:
return json.load(handle, object_hook=OrderedDict)
def get_configs(base_path, filename_pattern="*.json"):
configs = []
glob_pattern = os.path.join(base_path, filename_pattern)
file_paths = sorted(glob.glob(glob_pattern))
for file_path in file_paths:
file_name = Path(file_path).stem
config = read_json(file_path)
config['name'] = file_name
configs.append(config)
return configs
def get_display_names(configs):
display_names = []
for config in configs:
display_names.append(config['display_name'])
return display_names
def get_path_for_viz(base_path, dataset, sequence, model, viz):
dat_seq = "_".join([dataset["name"], sequence])
video_path = os.path.join(base_path, model['model_id'], dat_seq, "videos", viz["name"] + ".mp4")
return video_path
def get_text_video(video_h, video_w, text, font, fontsize, fontcolor="black"):
pass
class Layout:
def __init__(self, num_rows, num_cols):
self.num_rows = num_rows
self.num_cols = num_cols
def get_layout_str(self):
layout_parts = []
layout_y_parts = []
for row_idx in range(self.num_rows):
layout_x_parts = []
if row_idx == 0:
layout_y_parts.append("0")
else:
upper_vid_no = (row_idx - 1) * self.num_cols
if row_idx > 1:
layout_y_parts.append(layout_y_parts[-1] + "+h" + str(upper_vid_no))
else:
layout_y_parts.append("h" + str(upper_vid_no))
for col_idx in range(self.num_cols):
if col_idx == 0:
layout_x_parts.append("0")
else:
left_vid_no = row_idx * self.num_cols + col_idx - 1
if col_idx > 1:
layout_x_parts.append(layout_x_parts[-1] + "+w" + str(left_vid_no))
else:
layout_x_parts.append("w" + str(left_vid_no))
layout_part = "_".join([layout_x_parts[-1], layout_y_parts[-1]])
layout_parts.append(layout_part)
layout_string = "|".join(layout_parts)
return layout_string