diff --git a/src/biomechanical_hcl_smart_simulation_platform/beatsvr_bimanual_eval_env_camera.py b/src/biomechanical_hcl_smart_simulation_platform/uitb_bimanual_eval_multiview.py similarity index 66% rename from src/biomechanical_hcl_smart_simulation_platform/beatsvr_bimanual_eval_env_camera.py rename to src/biomechanical_hcl_smart_simulation_platform/uitb_bimanual_eval_multiview.py index d9f8b83302..ec9179f7bc 100644 --- a/src/biomechanical_hcl_smart_simulation_platform/beatsvr_bimanual_eval_env_camera.py +++ b/src/biomechanical_hcl_smart_simulation_platform/uitb_bimanual_eval_multiview.py @@ -1,3 +1,16 @@ +# utils/export_gifs.py +""" +Convert evaluation MP4 recordings to GIFs. + +Default naming rules (for BeatSVR bimanual): +- envCamera.mp4 -> beatsvr_bimanual_eval_env_camera.gif +- mainCamera.mp4 -> beatsvr_bimanual_eval_gui_camera.gif +- other.mp4 -> other.gif + +Usage: + python utils/export_gifs.py --inputs envCamera.mp4 mainCamera.mp4 --out_dir . --fps 15 --width 640 +""" + from __future__ import annotations import argparse from pathlib import Path @@ -36,6 +49,16 @@ def mp4_to_gif(mp4_path: Path, gif_path: Path, target_width: int = 640, fps: int reader.close() +def default_output_name(mp4_name: str) -> str: + """BeatSVR bimanual-friendly output naming.""" + name = mp4_name.lower() + if name == "envcamera.mp4": + return "beatsvr_bimanual_eval_env_camera.gif" + if name == "maincamera.mp4": + return "beatsvr_bimanual_eval_gui_camera.gif" + return Path(mp4_name).with_suffix(".gif").name + + def main() -> None: p = argparse.ArgumentParser() p.add_argument("--inputs", nargs="+", required=True, help="Input mp4 files (paths).") @@ -45,15 +68,15 @@ def main() -> None: args = p.parse_args() out_dir = Path(args.out_dir) + for in_path_str in args.inputs: in_path = Path(in_path_str) if not in_path.exists(): raise FileNotFoundError(f"Input not found: {in_path}") - gif_name = in_path.with_suffix(".gif").name - out_path = out_dir / gif_name - mp4_to_gif(in_path, out_path, target_width=args.width, fps=args.fps) - print(f"[OK] {in_path} -> {out_path}") + out_gif = out_dir / default_output_name(in_path.name) + mp4_to_gif(in_path, out_gif, target_width=args.width, fps=args.fps) + print(f"[OK] {in_path} -> {out_gif}") if __name__ == "__main__":