EVREAL / utils.py
ercanburak's picture
do not specify font
3ff595d
raw
history blame
1.46 kB
import os
import glob
import json
from pathlib import Path
from collections import OrderedDict
import ffmpeg
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(basedir, dataset, sequence, model, viz):
dat_seq = "_".join([dataset["name"], sequence])
video_path = os.path.join(basedir, model['model_id'], dat_seq, "videos", viz["name"] + ".mp4")
return video_path
def get_text_str(height, width, text, fontsize, fontcolor="black"):
return "drawtext=text='{}':" \
"fontsize={}:fontcolor={}:" \
"x=({}-text_w)/2:y=({}-text_h)/2".format(text, fontsize, fontcolor, width, height)
def get_video_height(video_path):
probe = ffmpeg.probe(video_path)
video_streams = ffmpeg.probe(video_path, select_streams="v")
return video_streams['streams'][0]['height']