mirror of
https://github.com/huggingface/lerobot.git
synced 2026-05-31 02:41:24 +00:00
* chore(video backend): renaming codec into video_backend in get_safe_default_video_backend() * feat(pyav utils): adding suport for PyAV encoding parameters validation * feat(VideoEncoderConfig): creating a VideoEncoderConfig to encapsulate encoding parameters * feat(VideoEncoderConfig): propagating the VideoEncoderConfig in the codebase * chore(docs): updating the docs * feat(metadata): adding encoding parameters in dataset metadata * fix(concatenation compatibility): adding compatibility check when concatenating video files * feat(VideoEncoderConfig init): making VideoEncoderConfig more robust and adaptable to multiple backends * feat(pyav checks): making pyav parameters checks more robust * chore(duplicate): removing duplicate get_codec_options definition * test(existing): adapting existing tests * test(new): adding new tests for encoding related features * chore(format): fixing formatting issues * chore(PyAV): cleaning up PyAV utils and encoding parameters checks to stick to the minimun required tooling. * chore(format): formatting code * chore(doctrings): updating docstrings * fix(camera_encoder_config): Removing camera_encoder_config from LeRobotDataset, as it's only required in LeRobotDatasetWriter. * feat(default values): applying a consistent naming convention for default RGB cameras video encoder parameters * fix(rollout): propagating VideoEncoderConfig to the latest recording modes * chore(format): formatting code, fixing error messages and variable names * fix(arguments order): reverting changes in arguments order in StreamingVideoEncoder * chore(relative imports): switching to relative local imports within lerobot.datasets * test(artifacts): cleaning up artifacts for the video encoding tests * chore(docs): updating docs * chore(fromat): formatting code * fix(imports): refactoring the file architecture to avoid circular imports. VideoEncoderConfig is now defined in lerobot.configs and lazily imports av at runtime. * fix(typos): fixing typos and small mistakes * test(factories): updating factories * feat(aggregate): updating dataset aggregation procedure. Encoding tuning paramters (crf, g,...) are ignored for validation and changed to None in the aggregated dataset if incompatible. * docs(typos): fixing typos * fix(deletion): reverting unwanted deletion * fix(typos): fixing multiple typos * feat(codec options): passing codec options to lerobot_edit_dataset episode deletion tool * typo(typo): typo * fix(typos): fixing remaining typos * chore(rename): renaming camera_encoder_config to camera_encoder * docs(clean): cleaning and formating docs * docs(dataset): addind details about datasets * chore(format): formatting code * docs(warning): adding warning regarding encoding parameters modification * fix(re-encoding): removing inconsistent re-encoding option in lerobot_edit_dataset * typos(typos): typos * chore(format): resolving prettier issues * fix(h264_nvenc): fixing crf handling for h264_nvenc * docs(clean): removing too technical parts of the docs * fix(imports): fixing imports at the __init__ level * fix(imports): fixing not very pretty imports in video config file
86 lines
2.9 KiB
Python
86 lines
2.9 KiB
Python
#!/usr/bin/env python
|
|
|
|
# Copyright 2026 The HuggingFace Inc. team.
|
|
# All rights reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
from lerobot.utils.import_utils import require_package
|
|
|
|
require_package("datasets", extra="dataset")
|
|
require_package("av", extra="dataset")
|
|
|
|
from .aggregate import aggregate_datasets
|
|
from .compute_stats import DEFAULT_QUANTILES, aggregate_stats, get_feature_stats
|
|
from .dataset_metadata import CODEBASE_VERSION, LeRobotDatasetMetadata
|
|
from .dataset_tools import (
|
|
add_features,
|
|
convert_image_to_video_dataset,
|
|
delete_episodes,
|
|
merge_datasets,
|
|
modify_features,
|
|
modify_tasks,
|
|
recompute_stats,
|
|
remove_feature,
|
|
split_dataset,
|
|
)
|
|
from .factory import make_dataset, resolve_delta_timestamps
|
|
from .image_writer import safe_stop_image_writer
|
|
from .io_utils import load_episodes, write_stats
|
|
from .lerobot_dataset import LeRobotDataset
|
|
from .multi_dataset import MultiLeRobotDataset
|
|
from .pipeline_features import aggregate_pipeline_dataset_features, create_initial_features
|
|
from .pyav_utils import check_video_encoder_parameters_pyav, detect_available_encoders_pyav
|
|
from .sampler import EpisodeAwareSampler
|
|
from .streaming_dataset import StreamingLeRobotDataset
|
|
from .utils import DEFAULT_EPISODES_PATH, create_lerobot_dataset_card
|
|
from .video_utils import VideoEncodingManager
|
|
|
|
# NOTE: Low-level I/O functions (cast_stats_to_numpy, get_parquet_file_size_in_mb, etc.)
|
|
# and legacy migration constants are intentionally NOT re-exported here.
|
|
# Import directly: ``from lerobot.datasets.io_utils import ...``
|
|
|
|
__all__ = [
|
|
"CODEBASE_VERSION",
|
|
"DEFAULT_EPISODES_PATH",
|
|
"DEFAULT_QUANTILES",
|
|
"EpisodeAwareSampler",
|
|
"LeRobotDataset",
|
|
"LeRobotDatasetMetadata",
|
|
"MultiLeRobotDataset",
|
|
"StreamingLeRobotDataset",
|
|
"VideoEncodingManager",
|
|
"check_video_encoder_parameters_pyav",
|
|
"detect_available_encoders_pyav",
|
|
"add_features",
|
|
"aggregate_datasets",
|
|
"aggregate_pipeline_dataset_features",
|
|
"aggregate_stats",
|
|
"convert_image_to_video_dataset",
|
|
"create_initial_features",
|
|
"create_lerobot_dataset_card",
|
|
"delete_episodes",
|
|
"get_feature_stats",
|
|
"load_episodes",
|
|
"make_dataset",
|
|
"merge_datasets",
|
|
"modify_features",
|
|
"modify_tasks",
|
|
"recompute_stats",
|
|
"remove_feature",
|
|
"resolve_delta_timestamps",
|
|
"safe_stop_image_writer",
|
|
"split_dataset",
|
|
"write_stats",
|
|
]
|