From d7be868dfa7b3bc7030013be34287225aff82438 Mon Sep 17 00:00:00 2001 From: CarolinePascal Date: Tue, 30 Jun 2026 17:57:17 +0200 Subject: [PATCH] feat(libaom-av1): adding support for libaom-av1 codec --- src/lerobot/configs/video.py | 10 +++++++++- tests/datasets/test_datasets.py | 3 ++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/lerobot/configs/video.py b/src/lerobot/configs/video.py index 3ea834508..e253526f6 100644 --- a/src/lerobot/configs/video.py +++ b/src/lerobot/configs/video.py @@ -36,7 +36,9 @@ HW_VIDEO_CODECS = [ "h264_vaapi", # Linux Intel/AMD "h264_qsv", # Intel Quick Sync ] -VALID_VIDEO_CODECS: frozenset[str] = frozenset({"h264", "hevc", "libsvtav1", "auto", *HW_VIDEO_CODECS}) +VALID_VIDEO_CODECS: frozenset[str] = frozenset( + {"h264", "hevc", "libsvtav1", "libaom-av1", "auto", *HW_VIDEO_CODECS} +) # Aliases for legacy video codec names. VIDEO_CODECS_ALIASES: dict[str, str] = {"av1": "libsvtav1"} @@ -220,6 +222,12 @@ class VideoEncoderConfig: if self.fast_decode: opts["tune"] = "fastdecode" set_if("threads", encoder_threads) + elif self.vcodec == "libaom-av1": + set_if("crf", self.crf) + set_if("preset", self.preset) + if encoder_threads is not None: + opts["threads"] = encoder_threads + opts["row-mt"] = 1 elif self.vcodec in ("h264_videotoolbox", "hevc_videotoolbox"): if self.crf is not None: opts["q:v"] = max(1, min(100, 100 - self.crf * 2)) diff --git a/tests/datasets/test_datasets.py b/tests/datasets/test_datasets.py index 225479814..97f799d9f 100644 --- a/tests/datasets/test_datasets.py +++ b/tests/datasets/test_datasets.py @@ -1531,6 +1531,7 @@ def test_valid_video_codecs_constant(): assert "h264" in VALID_VIDEO_CODECS assert "hevc" in VALID_VIDEO_CODECS assert "libsvtav1" in VALID_VIDEO_CODECS + assert "libaom-av1" in VALID_VIDEO_CODECS assert "auto" in VALID_VIDEO_CODECS assert "h264_videotoolbox" in VALID_VIDEO_CODECS assert "h264_nvenc" in VALID_VIDEO_CODECS @@ -1538,7 +1539,7 @@ def test_valid_video_codecs_constant(): assert "h264_qsv" in VALID_VIDEO_CODECS assert "hevc_videotoolbox" in VALID_VIDEO_CODECS assert "hevc_nvenc" in VALID_VIDEO_CODECS - assert len(VALID_VIDEO_CODECS) == 10 + assert len(VALID_VIDEO_CODECS) == 11 def test_delta_timestamps_with_episodes_filter(tmp_path, empty_lerobot_dataset_factory):