Skip to main content

A GPU-accelerated library that enables random frame access and efficient video decoding for data loading.

Project description

VideoDataset

A GPU-accelerated library that enables random frame access and efficient video decoding for data loading.

Documentation License SS Badge

CI CD CommitLint Renovate Semantic Release Coverage

Release PyPI PyPI - Python Version GitHub

pre-commit Checked with mypy Ruff Conventional Commits Copier Serious Scaffold Python

[!WARNING] VideoDataset is in the Alpha phase. Frequent changes and instability should be anticipated. Any feedback, comments, suggestions and contributions are welcome!

Overview

VideoDataset is a high-performance video decoding multi-framework supporting library. It aims to provide framework-integrated solutions for working with video decoding tasks.

Key Features:

  • GPU-accelerated video decoding using NvCodec library
  • Support for common video formats (H.264, H.265, etc.)
  • Easy integration with multi-frameworks and multi-formats.

Installation

Prerequisites

  • NVIDIA GPU with CUDA support and CUDA Toolkit 12.0+ installed
  • FFmpeg installed
  • Python 3.10 or later

Install from PyPI

pip install agibot-videodataset

Building from Source

pip install git+https://github.com/AgiBot-World/VideoDataset.git

Quick Start

The complete example can be found in the quickstart documentation.

Documentation

Please refer to full documentation here.

Also, a sphinx-based documentation can be generated by running the following command:

make dev-doc doc

It will generate the documentation in the docs/_build/html directory and serve it on http://localhost:8000.

Performance

VideoDataset is optimized for high-throughput video processing. Benchmark results show:

  • GPU Decoding: A decoding throughput of 20,000 FPS is achieved in a multiprocessing scenario.
  • Random Access: Minimal overhead for non-sequential frame access.
  • GPU Decoder Utilization: Over 90% GPU decoder utilization is achieved in a multiprocessing scenario.

See the benchmark documentation for detailed performance analysis.

Comparison with other CPU decoding solutions

In addition​, we conducted a comprehensive benchmark comparing it against mainstream CPU software decoding solutions, including OpenCV, Torchvision (PyAV), Torchvision (VideoReader), and TorchCodec (CPU).The results demonstrate that VideoDataset achieves a 3 to 4 times improvement in decoding throughput.

CPU Throughput

Furthermore, it also demonstrates outstanding performance in reducing CPU utilization.

CPU Utilization

Development Status

  • GPU acceleration via NvCodec
  • Random frame access
  • PyTorch integration
  • Compatibility with LeRobot
  • Asynchronous pipeline optimization

License

MIT License, for more details, see the LICENSE file.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agibot_videodataset-0.1.1.tar.gz (250.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

agibot_videodataset-0.1.1-cp314-cp314t-manylinux_2_28_x86_64.whl (31.5 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64

agibot_videodataset-0.1.1-cp314-cp314t-manylinux_2_28_aarch64.whl (28.9 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

agibot_videodataset-0.1.1-cp314-cp314-manylinux_2_28_x86_64.whl (31.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

agibot_videodataset-0.1.1-cp314-cp314-manylinux_2_28_aarch64.whl (28.9 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

agibot_videodataset-0.1.1-cp313-cp313-manylinux_2_28_x86_64.whl (31.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

agibot_videodataset-0.1.1-cp313-cp313-manylinux_2_28_aarch64.whl (28.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

agibot_videodataset-0.1.1-cp312-cp312-manylinux_2_28_x86_64.whl (31.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

agibot_videodataset-0.1.1-cp312-cp312-manylinux_2_28_aarch64.whl (28.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

agibot_videodataset-0.1.1-cp311-cp311-manylinux_2_28_x86_64.whl (31.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

agibot_videodataset-0.1.1-cp311-cp311-manylinux_2_28_aarch64.whl (28.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

agibot_videodataset-0.1.1-cp310-cp310-manylinux_2_28_x86_64.whl (31.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

agibot_videodataset-0.1.1-cp310-cp310-manylinux_2_28_aarch64.whl (28.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

File details

Details for the file agibot_videodataset-0.1.1.tar.gz.

File metadata

  • Download URL: agibot_videodataset-0.1.1.tar.gz
  • Upload date:
  • Size: 250.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for agibot_videodataset-0.1.1.tar.gz
Algorithm Hash digest
SHA256 78baa6d14b662fd2d2b39abd7337cb8fe81e65d1a71ce6859da2af6ecbd8c07d
MD5 8b614369ee1b2979d50e9d8adbcd5b68
BLAKE2b-256 fab42927366a53cf1eed4ac1ba66182b3a14d6b496fd39cb49fbf2e69829b415

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.1.tar.gz:

Publisher: cd.yml on AgiBot-World/VideoDataset

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agibot_videodataset-0.1.1-cp314-cp314t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.1-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5c276fae5342b49ec588c4993dfffcc6466e32aea642bcdae73b67a7cbd4b0c3
MD5 f263b55b6210a5c953f1ab8f402f2fbb
BLAKE2b-256 99bf0600efaac86af9952cf415ba66f4f0bfd2ceaf3c8f719f272110a0ffa0e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.1-cp314-cp314t-manylinux_2_28_x86_64.whl:

Publisher: cd.yml on AgiBot-World/VideoDataset

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agibot_videodataset-0.1.1-cp314-cp314t-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.1-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f11749e25f773990ab64b0f3a934903770155822d150e05c87ec1694f10710cb
MD5 5836b5cafc18872737b3ae13d4cb789e
BLAKE2b-256 e07e60d6e477ea8b728e6001d8694efdf0ab3f3f2b027787605392aa6ac4a3e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.1-cp314-cp314t-manylinux_2_28_aarch64.whl:

Publisher: cd.yml on AgiBot-World/VideoDataset

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agibot_videodataset-0.1.1-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.1-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0231796a09d1fa90cc43a183e3832b3b7bfac992e923cacef8c940fb12af2c1a
MD5 967b205f5079fec69269b2166648c277
BLAKE2b-256 ed520ec9b56ef4962794ceaac03dd8fad1b314519314109f8ad6a1b497ed0816

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.1-cp314-cp314-manylinux_2_28_x86_64.whl:

Publisher: cd.yml on AgiBot-World/VideoDataset

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agibot_videodataset-0.1.1-cp314-cp314-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.1-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f5cd4536c24a0a056e33821c3615e39202abebc9ce76274b65a509c588e69833
MD5 6801731e3683a398c217d0314d90b56e
BLAKE2b-256 63352303d2bb558105ef1dc246c18cbdd10ff1065bd1cb66fb110f5970450a2c

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.1-cp314-cp314-manylinux_2_28_aarch64.whl:

Publisher: cd.yml on AgiBot-World/VideoDataset

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agibot_videodataset-0.1.1-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.1-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 45aa7eefc359ac5cbda05a05106dc6cb19dbadc40713493597aea1457f691c5d
MD5 955155245a0f32e787e0f6a120189144
BLAKE2b-256 10c3de996de8d2e08aea7341fe1901a400cd8ded2696d991a4b7ef90998c5680

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.1-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: cd.yml on AgiBot-World/VideoDataset

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agibot_videodataset-0.1.1-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.1-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f4b8ac3fbba2a50f0000c20a85d57b1f25a014e2ea0608d4f12eabf3266ded7b
MD5 c5a42a2a12e89b969359375173b42306
BLAKE2b-256 ed907fe462083d7e21b604a6fac2a3796f6ebbd6ff7ff57637a1926ad53b83da

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.1-cp313-cp313-manylinux_2_28_aarch64.whl:

Publisher: cd.yml on AgiBot-World/VideoDataset

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agibot_videodataset-0.1.1-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.1-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c16dc304ac6e0692155132a16fac6f539a87c9fd0c375a41dc4c68ccd7620da4
MD5 be84e0aada33bd46ef4680442fef2a3e
BLAKE2b-256 da0e23c8b6bb49bcecd7a493055dacab9bf36dfd4e98f3d7807223327f7de020

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.1-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: cd.yml on AgiBot-World/VideoDataset

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agibot_videodataset-0.1.1-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.1-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2949cbafd95b36bf8d8faabaa7ad4ab599982195c4d91bd360882e00df25cc06
MD5 8761924dd841da745640d24352107752
BLAKE2b-256 f9a707ca3bc301825577f8d8930b958a54f69be952b22a9de25fec490a67c6d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.1-cp312-cp312-manylinux_2_28_aarch64.whl:

Publisher: cd.yml on AgiBot-World/VideoDataset

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agibot_videodataset-0.1.1-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.1-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b749c05d137bc46f35e73183ee0264c5d176004c13ef2258f06daa073f37e7fa
MD5 942888c07d2ffecf067f8445f2946e4e
BLAKE2b-256 ce71b17d08cbf18097b87d3ba22f0f152b42cdea419a7fdf452ecce96b38146c

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.1-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: cd.yml on AgiBot-World/VideoDataset

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agibot_videodataset-0.1.1-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.1-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 50a4f2bf9ebf8119b1ce6057b6a62341c1752e44cca6924dd7a05126ce8569f8
MD5 2634f9edb49c4b63be44e7a94b68f55c
BLAKE2b-256 052d4cb594e865ca43dcaed45a3fc184baabdf1bc7c6bccacfffd177f6df841f

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.1-cp311-cp311-manylinux_2_28_aarch64.whl:

Publisher: cd.yml on AgiBot-World/VideoDataset

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agibot_videodataset-0.1.1-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.1-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 42ad78ed5d5d85d8388676db2414c790475c406506e4a7d72fb22af9f3f426f8
MD5 193ef00dc86363aae34e5b8493ae7db7
BLAKE2b-256 1ea1681d88ca590093140279dec5adee36b28859778ba47faa1e3136971b4ef1

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.1-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: cd.yml on AgiBot-World/VideoDataset

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agibot_videodataset-0.1.1-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.1-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 57358b53bc8e225b5eb00847d5922de8d44db87932272f4eb1adb58908016dc2
MD5 3b3c5763e4e41b487aee9615ef5967cf
BLAKE2b-256 5c2b946ff957c2723a94391c4fe23e8948be44437be30d53d82a20c941412901

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.1-cp310-cp310-manylinux_2_28_aarch64.whl:

Publisher: cd.yml on AgiBot-World/VideoDataset

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page