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.2.tar.gz (250.0 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.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (440.0 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

agibot_videodataset-0.1.2-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (427.7 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

agibot_videodataset-0.1.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (441.8 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

agibot_videodataset-0.1.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (428.6 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

agibot_videodataset-0.1.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (441.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

agibot_videodataset-0.1.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (428.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

agibot_videodataset-0.1.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (440.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

agibot_videodataset-0.1.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (426.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

agibot_videodataset-0.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (439.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

agibot_videodataset-0.1.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (424.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

agibot_videodataset-0.1.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (437.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

agibot_videodataset-0.1.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (422.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

File details

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

File metadata

  • Download URL: agibot_videodataset-0.1.2.tar.gz
  • Upload date:
  • Size: 250.0 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.2.tar.gz
Algorithm Hash digest
SHA256 943d058237cab722d20b4441140098f201bea6fb3dc7fc48bea04c73611fd990
MD5 31fbd27e50ce09fd316197bfe03ed264
BLAKE2b-256 9ef688f492cd631f2127ecf0c73aca5008e74110d2304728dbe0e9efe4c70cdd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for agibot_videodataset-0.1.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7148adc83cb24cdc9d23796aa2453dd40867de5912c9490bbbd65d9b86fa0eb8
MD5 bbf10c17425b8d88e0bb200c3f05d470
BLAKE2b-256 969d177c590f916f3ecdecf55ab04683250b47ee42f1591ba8f11e291051c080

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.2-cp314-cp314t-manylinux_2_27_x86_64.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.2-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.2-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3c29b8cb18d355795b8766a09b79631cfcc5fc9577437e9b8e89a0ea94f15b91
MD5 32a2f56cd1cca9bf2e4ba5ea034d44f6
BLAKE2b-256 fe33c05f29d6c1e6da6ac0236c162a0dce8cee215f54e724d88ea0b80ffabe21

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.2-cp314-cp314t-manylinux_2_26_aarch64.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.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 23d4f03e72889e7f243eddc849d7f3b90af377be9efe5fa967befb0a0b6d42b3
MD5 79086cd7da726041c698fbaa1adb028e
BLAKE2b-256 df1425eabd61111a65c5017b34502327cfb1e57edec4cb3dafa02916a2c9fc64

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.2-cp314-cp314-manylinux_2_27_x86_64.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.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 dcdfc6115f70e074e09e08a71d14946e6a64b72734fbcb4f23a1165fd1e0f709
MD5 87a7822125a32793e7b14dbd45addac9
BLAKE2b-256 6976d2dd16bec7ab3608478abbbc8264d56eaeba9fb19d4aa7b060dc34875a46

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.2-cp314-cp314-manylinux_2_26_aarch64.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.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 85b85764fefdfacbeae40972a45acac277efdefa368c412a7ae5711acccf629a
MD5 98a7253259d3480c991186d68a19bd42
BLAKE2b-256 06bd56c2e34cfc1b9f7c09c3e8d77d52dc3a920dcdde96a75aea903ce4676b41

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.2-cp313-cp313-manylinux_2_27_x86_64.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.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4b23db6c4f51957a66cec32465e1e0b42bd9e21774ea614fc44d7d6a8a73729c
MD5 bb7b6198174c45be148fb11cadcb2c56
BLAKE2b-256 f8db8b76d543933acae12f80c1e61537e39e23de47fc95865584962669b299d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.2-cp313-cp313-manylinux_2_26_aarch64.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.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c794b39f15ec4ccaee158c9a96e78d771d18394792b5dcfeefa4ccb4b5647765
MD5 8c928aa2cf814970a3e904e2b6fcd14d
BLAKE2b-256 25d5b191ea18b33bd8a99d46e197026945347975677dd5d08dbc930f81c64f67

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.2-cp312-cp312-manylinux_2_27_x86_64.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.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3ab4093a43cf9c36bd4bda45262828165192ad2f8bf96c15dbf0fa468591bd88
MD5 9f443d218e2659745b6bc51b4d159046
BLAKE2b-256 d5be3bc269b2977b9d1b4f20b9296c11cb031d466f16af2159248e43d72e8b6f

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.2-cp312-cp312-manylinux_2_26_aarch64.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.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8edd48575146409fe8abdb558329286a6973179318327f4737ce48af02aa5de3
MD5 8c2d1675dd38f38c28074cc1e5dbe166
BLAKE2b-256 ed8710a56b4fac1161b9ae8a7172ad00343a37f277124a20521f40852b61315a

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.2-cp311-cp311-manylinux_2_27_x86_64.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.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c27c38bb4b9453d6eeab62adc120a02b8235b3eac387b48e0f7b5ae7c144d031
MD5 a837341db69e4d98993da0c265cc3b95
BLAKE2b-256 3833cb2a50e8dd96d4e8ac7675f3f530f108a29b0047f52a8bd00f5c1df9ec47

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.2-cp311-cp311-manylinux_2_26_aarch64.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.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d0daaa742a486e0c82ba2ac3e4c112ac57c77761a4c05dccf5c9b6d2779a24b3
MD5 6518a8433abd808baa868b8ef29e4791
BLAKE2b-256 a241b72d1f0417d334b76c18f4e31bedb3339c4c5f8d44b49f6ffa2220a0f751

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.2-cp310-cp310-manylinux_2_27_x86_64.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.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for agibot_videodataset-0.1.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7a98e2be099998ebebb54fcde2a4dd71ae4bd68bcf959654616e3a47767a66ec
MD5 37b04cf56f910823d656de0ea6b66afe
BLAKE2b-256 afed228566d3e42b30999102670e17239d015796061cf7cde346a377645a66cb

See more details on using hashes here.

Provenance

The following attestation bundles were made for agibot_videodataset-0.1.2-cp310-cp310-manylinux_2_26_aarch64.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