diff --git a/src/lerobot/datasets/dataset_tools.py b/src/lerobot/datasets/dataset_tools.py index 6af190a89..63fa23f5c 100644 --- a/src/lerobot/datasets/dataset_tools.py +++ b/src/lerobot/datasets/dataset_tools.py @@ -26,7 +26,7 @@ This module provides utilities for: import logging import shutil from collections.abc import Callable -from concurrent.futures import ThreadPoolExecutor, as_completed, ProcessPoolExecutor +from concurrent.futures import ProcessPoolExecutor, ThreadPoolExecutor, as_completed from pathlib import Path import datasets @@ -1933,9 +1933,7 @@ def reencode_dataset( return dataset logging.info(f"Re-encoding {len(video_paths_list)} video file(s) with {camera_encoder}") - worker_args = [ - (vp, camera_encoder, encoder_threads) for vp in video_paths_list - ] + worker_args = [(vp, camera_encoder, encoder_threads) for vp in video_paths_list] if num_workers and num_workers >= 1: with ProcessPoolExecutor(max_workers=num_workers) as pool: futures = [pool.submit(_reencode_video_worker, args) for args in worker_args] @@ -1952,9 +1950,7 @@ def reencode_dataset( # Refresh video info in metadata for every video key. for vid_key in meta.video_keys: video_path = meta.root / meta.get_video_file_path(0, vid_key) - meta.info.features[vid_key]["info"] = get_video_info( - video_path, camera_encoder=camera_encoder - ) + meta.info.features[vid_key]["info"] = get_video_info(video_path, camera_encoder=camera_encoder) write_info(meta.info, meta.root) logging.info("Dataset metadata updated.") diff --git a/src/lerobot/datasets/video_utils.py b/src/lerobot/datasets/video_utils.py index b2404a398..2be13dbac 100644 --- a/src/lerobot/datasets/video_utils.py +++ b/src/lerobot/datasets/video_utils.py @@ -456,7 +456,9 @@ def reencode_video( with av.open( tmp_output_video_path, mode="w", - options={"movflags": "faststart"}, # faststart is to move the metadata to the beginning of the file to speed up loading + options={ + "movflags": "faststart" + }, # faststart is to move the metadata to the beginning of the file to speed up loading ) as dst: out_stream = dst.add_stream(vcodec, fps, options=video_options) out_stream.pix_fmt = pix_fmt diff --git a/src/lerobot/scripts/lerobot_edit_dataset.py b/src/lerobot/scripts/lerobot_edit_dataset.py index 3cfe8bd4f..8b0dd5ebb 100644 --- a/src/lerobot/scripts/lerobot_edit_dataset.py +++ b/src/lerobot/scripts/lerobot_edit_dataset.py @@ -673,8 +673,7 @@ def handle_reencode_videos(cfg: EditDatasetConfig) -> None: current_encoder = VideoEncoderConfig.from_video_info(current_info) if current_encoder == cfg.operation.camera_encoder: logging.info( - f"Videos in {cfg.repo_id} are already encoded with {current_encoder}. " - "Nothing to do." + f"Videos in {cfg.repo_id} are already encoded with {current_encoder}. Nothing to do." ) return else: diff --git a/tests/datasets/test_video_encoding.py b/tests/datasets/test_video_encoding.py index d1d578f8b..081781fc8 100644 --- a/tests/datasets/test_video_encoding.py +++ b/tests/datasets/test_video_encoding.py @@ -17,7 +17,6 @@ """Unit tests for ``lerobot.datasets.video_utils`` encoding functions and ``lerobot.configs.video.VideoEncoderConfig`` config class.""" import json -import shutil from pathlib import Path import numpy as np @@ -499,6 +498,7 @@ class TestReencodeVideo: assert info["video.g"] == 6 assert info["video.crf"] == 23 + class TestConcatenateVideoFiles: def test_two_clips_frame_count(self, tmp_path): """Output frame count equals the sum of the two input frame counts."""