diff --git a/src/lerobot/datasets/dataset_metadata.py b/src/lerobot/datasets/dataset_metadata.py index 7a863b53f..03fea8509 100644 --- a/src/lerobot/datasets/dataset_metadata.py +++ b/src/lerobot/datasets/dataset_metadata.py @@ -619,9 +619,13 @@ class LeRobotDatasetMetadata: video_keys = [video_key] if video_key is not None else self.video_keys for key in video_keys: - if not self.features[key].get("info", None): - video_path = self.root / self.video_path.format(video_key=key, chunk_index=0, file_index=0) - self.info.features[key]["info"] = get_video_info(video_path, video_encoder=video_encoder) + existing = self.features[key].get("info") or {} + # Skip only if real video info has already been written. The ``is_depth_map`` entry (created at feature creation) is not blocking. + if set(existing.keys()) - {"is_depth_map"}: + continue + video_path = self.root / self.video_path.format(video_key=key, chunk_index=0, file_index=0) + new_info = get_video_info(video_path, video_encoder=video_encoder) + self.info.features[key]["info"] = {**existing, **new_info} def update_chunk_settings( self, diff --git a/src/lerobot/datasets/video_utils.py b/src/lerobot/datasets/video_utils.py index 437cad76b..9f34bf529 100644 --- a/src/lerobot/datasets/video_utils.py +++ b/src/lerobot/datasets/video_utils.py @@ -1126,7 +1126,6 @@ def get_video_info( # Calculate fps from r_frame_rate video_info["video.fps"] = int(video_stream.base_rate) - video_info["video.channels"] = get_pix_fmt_channels(video_stream.pix_fmt) # Reset logging level