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
  • 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.5.tar.gz (249.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.5-cp314-cp314t-manylinux_2_28_x86_64.whl (41.7 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64

agibot_videodataset-0.1.5-cp314-cp314t-manylinux_2_28_aarch64.whl (38.5 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

agibot_videodataset-0.1.5-cp314-cp314-manylinux_2_28_x86_64.whl (41.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

agibot_videodataset-0.1.5-cp314-cp314-manylinux_2_28_aarch64.whl (38.6 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

agibot_videodataset-0.1.5-cp313-cp313-manylinux_2_28_x86_64.whl (41.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

agibot_videodataset-0.1.5-cp313-cp313-manylinux_2_28_aarch64.whl (38.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

agibot_videodataset-0.1.5-cp312-cp312-manylinux_2_28_x86_64.whl (41.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

agibot_videodataset-0.1.5-cp312-cp312-manylinux_2_28_aarch64.whl (38.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

agibot_videodataset-0.1.5-cp311-cp311-manylinux_2_28_x86_64.whl (41.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

agibot_videodataset-0.1.5-cp311-cp311-manylinux_2_28_aarch64.whl (38.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

agibot_videodataset-0.1.5-cp310-cp310-manylinux_2_28_x86_64.whl (41.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

agibot_videodataset-0.1.5-cp310-cp310-manylinux_2_28_aarch64.whl (38.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

File details

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

File metadata

  • Download URL: agibot_videodataset-0.1.5.tar.gz
  • Upload date:
  • Size: 249.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.5.tar.gz
Algorithm Hash digest
SHA256 f1f79263a42bc346b18228f940752d7e836d303376d4718f5adc8392a2cdd133
MD5 fec4a94877646824880c27b198cc87fa
BLAKE2b-256 de2323e5f8976643c9ebb59ae887bae5ae8995a3e5b8670ae4aa6ffcd9887f62

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.5.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.5-cp314-cp314t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.5-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cf7a04c21378aab738ed8fc2912c6f0960a4eab7e6b5ec69d2fb795273e80902
MD5 067f93b4d4c0902747e22e5b3ff5dbbd
BLAKE2b-256 4bbb9065bdd373abcbda08c22292584198b13bafd0661780b807cf570b2c9d50

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.5-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.5-cp314-cp314t-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.5-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0a4f01deb6570e13634d47deb7738142f33438a01266776105427859e38e3c94
MD5 3c0ed95d6b71ee8b0fa2c35264d9a968
BLAKE2b-256 44a83e0796bd7ff6921e0c471d12071dccc59cc4950aee9a549a0af8f25a01e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.5-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.5-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.5-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 82807f755cbb04a14f0e798b70772a089cdbbf9b75681ee0432548671e7b9435
MD5 23f1abcbd6039ea1e9dbe450ea2ceffd
BLAKE2b-256 90b0383ee205cde2266c071ff8de52863e1a96c39175d7ed161cdacbe900c961

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.5-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.5-cp314-cp314-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.5-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 56ae4209f3f63fc7d50296bbd990487016edf43718842acfbc82bbdd7efd787c
MD5 57c69b03ac3c3d3be6f837797f7733f6
BLAKE2b-256 bda92c545eb149318ae86d2a681e0551bebe63352a492a9233e5ce27ae30ffb9

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.5-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.5-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.5-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0b00ac555d8c24bda9fe4c99150bbd1a8d1002d1bafe1ea7b479b39e155fe037
MD5 d8332a8d42d9669ea99a5929c6d3aede
BLAKE2b-256 83d4340b5f5c21055fbb3e49e6efafb517d2c83bf19c6c9be7d19193e338154a

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.5-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.5-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.5-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 eab00df982ffb6bb286fce7932be931e91b6385c64313b1c0479313754d1de94
MD5 07605adb8fedea60c1a6b16172d3fa05
BLAKE2b-256 56237377286a0419a7b7531a46bc9f61ba72563c73c87753f27e5830d38a88d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.5-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.5-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.5-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ea8a8a5b3c2d104d70a6f530fc6a9622e4b7e0822ff3cb7f78b56ac44e94731b
MD5 cb2dc0a10fe13365853b5a21512e905f
BLAKE2b-256 cf2edf5063b0d652e91061ee634c2ea5c11983b9c21ffa9ef45adebeab6adb54

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.5-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.5-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.5-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4253e354c53567317d5e9a4a4a3815b1697b4b99139a6283a8d21f2514c3302d
MD5 ab8cb1c4a60947489bfd7a4f58d200f3
BLAKE2b-256 1e9c74a1a5862263f821f2135e12f20e1a30b1adad8a4d30c4fe60b1ff2cea09

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.5-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.5-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.5-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 85994de74fd3a3cdcdf48cd62943022d34cfe30ed91401447ed4417ef4bb8468
MD5 c7ac04d757686f449062f29ed8c433ed
BLAKE2b-256 49a6fee126efb6076e102b5e71f0efce94b0cc36c5aefaa186679aa34ebe28ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.5-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.5-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.5-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0aa44a076ced368a9a8fed00ece4da2cb9eebd0795589e10fa30e6f2fca7ef08
MD5 5a9b5e290bd677c9a615557de78e841a
BLAKE2b-256 e0331db431db90aa5151f4b5f53f6483fc592864ef9ea5c7e99624c8f087bfed

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.5-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.5-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.5-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 394ad01cd01571af369fc545134bdfb6ec0bcf11b45ac38f0530304e733c34da
MD5 eb8de17334ee94b614be3cadf391877c
BLAKE2b-256 762196d9f7cb5cb5a24375b62c5d62ae5671dcfa42c9bbe0d09548710079ff2a

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.5-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.5-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.5-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c59d4f4c6d84b9481b4c07f2ea708214687b5e8af1e214a6fc4772f159433973
MD5 5ceeb6fe423e2f4efe951a08b3753114
BLAKE2b-256 fe1caa892bf2925f9c6b42fad146930a4a740b71f7547f2396fbf79e1c002c98

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.5-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