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.3.tar.gz (250.1 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.3-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.3-cp314-cp314t-manylinux_2_28_aarch64.whl (38.5 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

agibot_videodataset-0.1.3-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.3-cp314-cp314-manylinux_2_28_aarch64.whl (38.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

agibot_videodataset-0.1.3-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.3-cp313-cp313-manylinux_2_28_aarch64.whl (38.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

agibot_videodataset-0.1.3-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.3-cp312-cp312-manylinux_2_28_aarch64.whl (38.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

agibot_videodataset-0.1.3-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.3-cp311-cp311-manylinux_2_28_aarch64.whl (38.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

agibot_videodataset-0.1.3-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.3-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.3.tar.gz.

File metadata

  • Download URL: agibot_videodataset-0.1.3.tar.gz
  • Upload date:
  • Size: 250.1 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.3.tar.gz
Algorithm Hash digest
SHA256 006f767ce56375e689d12e5a9cb18920e1319d1a57f4d762c8c611980c0468ce
MD5 e83ee87789a3d26556bcdc3944836150
BLAKE2b-256 d4ebb499779caac6c53f4e3466e7fe29b54b403d85d1101739a65960a3e57132

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for agibot_videodataset-0.1.3-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c9f0d4c4531657e0e57f53523a314dd753afdc1165123783b33e1b0676050d06
MD5 84f231692ddd287924d4c8a2ce5b255b
BLAKE2b-256 b0f7fbadfd73434d741c5c19400cf9323d34cae045068e6e93d9d5b9cd7b335a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for agibot_videodataset-0.1.3-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d16f777237ce416e6b4527499fa0cc04b78a1016c962ace936668ff31d389082
MD5 66c168d7548b0839aa4deecfa4767514
BLAKE2b-256 cfe0f1cbaa5018a98f08729a93499bf7c01a08a1af4966c8719176df9101dd53

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for agibot_videodataset-0.1.3-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a418dc73e64c8bda6343b3ed9b1062ed1547e6cd7b970948dba76a6a411d69f0
MD5 61397cbde70a2818675ec6105ec0cd7e
BLAKE2b-256 ef10440f034b40c08e83f91331ec04a0122b1d9f180576d9f559cfc1157640ad

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for agibot_videodataset-0.1.3-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b02a34b6283549d587cd61f0f0703fdae6eda83eb3e911cc9001ddc4448efd50
MD5 1ace3254f42c90314e8646c2c063d311
BLAKE2b-256 d13f02980c7d6dffb2f6d1dcec0bd7f6d78a48d9dc285f7633dd109138a8254e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for agibot_videodataset-0.1.3-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9421f1bbf933d82854a7746521d91d54eea9fb3da3c20d493478b9a90d9fcc6c
MD5 909b47b4182b3bfa4bb2a2863b49771d
BLAKE2b-256 c1ef1ab4cb926dc41867629b48fea99ce2a1d30db2cf7856fe2c8c536e1417ba

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for agibot_videodataset-0.1.3-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 933098743f78a3a1a66a35a5d15c62cc18de5e977356b930a72ac87a6b8c7329
MD5 8bd3b2073623e112ca10085ab6be40ac
BLAKE2b-256 a939480504e97cf0c15bbecb43918396a3066bf5b2c1297c03feb1288425f9c3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for agibot_videodataset-0.1.3-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0cb14df6ef84a9591b01ed5939788dc9a6eff0ad8fc5b1d0de2dc8ea26de3ddb
MD5 df4955fac5f8b63ed4a750dd6807efa2
BLAKE2b-256 36e9462ea6d0a76566e4063dcf022a4d441ae7c92fd6977bf145787ada89c9b0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for agibot_videodataset-0.1.3-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7bb211acd352eb70bcd83ad21566a499ad8828cda2195df7ded9c99f23d3a34a
MD5 5faa3f5e79b2a77ac20504e72deebfe3
BLAKE2b-256 e25d3f71acac88deefd10338ee377029379a15cdf34b0d4489ffffa0d6deb894

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for agibot_videodataset-0.1.3-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3852e413ea0e135e826097ab8517c905d92f1f5892783fbe9affca85c0b44521
MD5 c568beaac05e14685efcd97de642bdc9
BLAKE2b-256 4b77742647230e5edc3aaa17d5c4dab878ec9f5d3372fe41378ebab530434596

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for agibot_videodataset-0.1.3-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 88fb2a42257ac0b3f7d75ce2a99577ee16b8007953e9cffd4bdb5446d5117a8f
MD5 938576f0bd940f168b0b0b9d5d12b982
BLAKE2b-256 0feaf94972257862b62be6cf97c91cda1e974a392cc793d549759c2c16e70e71

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for agibot_videodataset-0.1.3-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 466e5605aa9683e0e102857b969d9e8b1fa5eb6197e7e601bace5c9680d8f836
MD5 fdc1fbc21559b266d08647d4d0e583ba
BLAKE2b-256 277ed4849ee0884237c0f89bb43c3a5c6ef22437805f79ea9923cde070e3e161

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for agibot_videodataset-0.1.3-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ee9328b5942f44b39bf162f18cef0944aec05f35dd3d0aa0d238bc361aeb7519
MD5 35feea51304a9344deae06bca092d86a
BLAKE2b-256 5464d975ad22d22f7f9947cfbad188db51faca80fb3439dfc9acc05bd09e4602

See more details on using hashes here.

Provenance

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