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.4.tar.gz (249.3 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.4-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.4-cp314-cp314t-manylinux_2_28_aarch64.whl (38.6 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

agibot_videodataset-0.1.4-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.4-cp314-cp314-manylinux_2_28_aarch64.whl (38.6 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

agibot_videodataset-0.1.4-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.4-cp313-cp313-manylinux_2_28_aarch64.whl (38.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

agibot_videodataset-0.1.4-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.4-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.4.tar.gz.

File metadata

  • Download URL: agibot_videodataset-0.1.4.tar.gz
  • Upload date:
  • Size: 249.3 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.4.tar.gz
Algorithm Hash digest
SHA256 1a12a53c54aba4802e8ab28dfb8566bf49322cbe032fcfa271f04ffd5e901139
MD5 a16ebe53749984ef1910bcc034a8ac41
BLAKE2b-256 d9971a53448f92b0fa4fc46e80ef692aaa713be469f34abbac73fde8abbecf8a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for agibot_videodataset-0.1.4-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 eb32ca9822f947268ee9207b4b9b6cd8ed92f49556af30af3923fc152d51891b
MD5 e4d4aa6bb0ff5071c8c484e43e800569
BLAKE2b-256 3c6a34a06bfae3136fd9d6c7fb1d3bb43fbbb9b69a64e9168b983b002d324422

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for agibot_videodataset-0.1.4-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 de60837916e858a94f9ea4a621cbe5a11f73706862c4ecbd138f637f151bd0ce
MD5 49a7cef48745e803b33e05a5247537ec
BLAKE2b-256 4baa13c86bc29b5e1738104415237840a181cfe938e364b106d019b7a0a7fdae

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for agibot_videodataset-0.1.4-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4830c5fb1eb47226ce81d7d63dd5860a516e42c6b377749b4e78e8773a8f4c05
MD5 99ea98c29e41ed861d6e850bd1fed233
BLAKE2b-256 7a66df5c3942f3d133a47c165f7960e0ba934e9ba2bd6b012257570c65728dfb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for agibot_videodataset-0.1.4-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a4b590ea20d8132e7a30534112573aed1ea93f1397ec7f7749d87622a083d107
MD5 4dec79814d2a0a18d909ee30aad321e5
BLAKE2b-256 ee7ab9b7301085514f9733703d1fc613fe4e5770143600feffac49f99f4e5c26

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for agibot_videodataset-0.1.4-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4bb53ca8d5581e2188655630dfbd601e453dc813746ee1118baaafe498bd8185
MD5 e3de150e5ba76180d1cb792f653cff1c
BLAKE2b-256 df1e3192994c82d698d090b23953bd543ead08790d2cfda7e5cff384be2c97ae

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for agibot_videodataset-0.1.4-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7be4328fac5429ca53c5f0fa522345d7849430a84aa13d47297b64788a546423
MD5 bf52dab1db2121786775d06143f39a4b
BLAKE2b-256 380e00a161b2314d5073b27c3b3109e52c696a7fbbfa5e9460eafb7e1378dacf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for agibot_videodataset-0.1.4-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6b0c829023276bd02cb61364bc5cdb58b316d4dcc2e8c9ecb832e1f8e35325b7
MD5 0b1f6e16e63db4a2562d344847f4929b
BLAKE2b-256 6556322f813abd13398f6b48c57ba4d95ab48a0e188a7e890313821dbeccc18c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for agibot_videodataset-0.1.4-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 66bfeb8053b488db0955f0a1351deecc9e82995e0c0c69017fe3699e6c3b0c93
MD5 1dc304d98dd629d714aa89125d77848f
BLAKE2b-256 1612fa7544d80f5ff89f8496ab0d7eb3195ab1a44cfa3073e2c54fb92ecfeb18

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for agibot_videodataset-0.1.4-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 50a3c7e925cc666a3accefd6852ffd6780727f98c8656a10f55d3e72311fe8bd
MD5 97ac9863b4d9956bf0483bf07b5c1b9c
BLAKE2b-256 172caa2723eb2e76a598dc19fc2d61c97e03436e62d343c646a702f418276a06

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for agibot_videodataset-0.1.4-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0e624d12c4746958f1fab92f23d4f6788cdf8f3c97080cf7ee7ad9a667dd5cd1
MD5 57336a67eb98eca37bd5120c70028fd4
BLAKE2b-256 0c2aa0f7474e42ec27e40a178532d443f977c853ce6a9f1d6faf80a55f308b88

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for agibot_videodataset-0.1.4-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 586592b1c7de8d6a7446c0984e6a9d76d6f9edec6e1e2b7eb58510c553152095
MD5 cb4eec1c6c6b9ac51956f193a462aa8c
BLAKE2b-256 0d90f759f51fc717a8c27a3e2e64c3799d52bc09e3faff641215858d082a4a80

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for agibot_videodataset-0.1.4-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a8e7daf4a5058246f9465d52ae756b604fa14ed44f842322a8ec0c6630040deb
MD5 55a4a91abaa5afb2499fac969f011198
BLAKE2b-256 c5711d8d11e6b529c4afc291f829b3ec21b2cd352c90d7766f42c3ed54ab5fec

See more details on using hashes here.

Provenance

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