Skip to main content

No project description provided

Project description

video_reader-rs

A python module to decode videos based on rust ffmpeg-next, with a focus on ML use cases.

💡 Why yet another library based on ffmpeg ?

When training ML models on videos, it is usefull to load small sub-clips of videos. So decoding the entire video is not necessary.

The great decord library seems to be unmaintained, while having a few issues. The main one (for us) is bad memory management, which makes it crash on large videos. Indeed it allocates memory for the whole video when instantiating a VideoReader object. While in fact you might want to only get a few frames from this video.

So we took great inspiration from this library to rewrite the get_batch function using ffmpeg-next rust bindings. We also added the decode function which is usefull for decoding the entire video or for temporally reducing it using a compression_factor. Option to resize the video while decoding is also added.

NOTE: other functionalities of decord are not implemented (yet?).

Benchmark indicates that video_reader-rs is performing equally or better than decord, while using less memory. At least on the intended ML uses cases where video resolution remains reasonable, eg not 4K videos.

🛠️ Installation

Install via pip

pip install video-reader-rs

Should work with python >= 3.8 on recent linux x86_64 and macos.

Manual installation

You need to have ffmpeg installed on your system. Install maturin:

pip install maturin

Activate a virtual-env where you want to use the video_reader library and build the library as follows:

maturin develop --release

maturin develop builds the crate and installs it as a python module directly in the current virtualenv. the --release flag ensures the Rust part of the code is compiled in release mode, which enables compiler optimizations.

⚠️ If you are using a version of ffmpeg >= 6.0 you need to enable the ffmpeg_6_0 feature:

maturin develop --release --features ffmpeg_6_0

💻 Usage

Decoding a video is as simple as:

from video_reader import PyVideoReader

vr = PyVideoReader(filename)
# or if you want to resize and use a specific number of threads
vr = PyVideoReader(filename, threads=8, resize_shorter_side=480)
# similar but by resizing longer side
vr = PyVideoReader(filename, threads=8, resize_longer_side=640)
# or to use GPU decoding:
vr = PyVideoReader(filename, device='cuda')

# decode all frames from the video
frames = vr.decode()
# or decode a subset of frames
frames = vr.decode(start_frame=100, end_frame=300, compression_factor=0.5)
# alternatively one can iterate over frames
for frame in vr:
    # do something with a single frame
    print("top left red pixel value:", frame[0, 0, 0])
  • filename: path to the video file to decode
  • resize: optional resizing for the video.
  • compression_factor: temporal sampling, eg if 0.25, take 25% of the frames, evenly spaced.
  • threads: number of CPU cores to use for ffmpeg decoding, 0 means auto (let ffmpeg pick the optimal number).
  • start_frame - Start decoding from this frame index
  • end_frame - Stop decoding at this frame index

Returns a numpy array of shape (N, H, W, C).

We can do the same thing if we want grayscale frames, and it will retun an array of shape (N, H, W).

# this method has the same arguments as decode()
frames = vr.decode_gray()

If we only need a sub-clip of the video we can use the get_batch function:

frames = vr.get_batch(indices)
  • indices: list of indices of the frames to get
  • with_fallback: False by default, if True will fallback to iterating over all packets of the video and only decoding the frames that match in indices. It is safer to use when the video contains B-frames and you really need to get the frames exactly corresponding to the given indices. It can also be faster in some use cases if you have many cpu cores available.

It is also possible to directly use slicing or indexing:

last_frame = vr[-1]
odd_frames = vr[1::2]
sub_clip = vr[128:337]

We can also get the shape of the raw video

# (number of frames, height, width)
(n, h, w) = vr.get_shape()
# if we only want the number of frames
n = len(vr)

Or get a dict with information about the video, returned as Dict[str, str]

info_dict = vr.get_info()
print(info_dict)
# example output:
# {'color_space': 'BT709', 'aspect_ratio': 'Rational(1/1)', 'color_xfer_charac': 'BT709', 'codec_id': 'H264', 'fps_rational': '0/1', 'width': '1280', 'vid_ref': '1', 'duration': '148.28736979166666', 'height': '720', 'has_b_frames': 'true', 'color_primaries': 'BT709', 'chroma_location': 'Left', 'time_base': '0.00006510416666666667', 'vid_format': 'YUV420P', 'bit_rate': '900436', 'fps': '33.57669643068823', 'start_time': '0', 'color_range': 'MPEG', 'intra_dc_precision': '0', 'frame_count': '4979'}

⚠️ Dealing with High Res videos

If you are dealing with High Resolution videos such as HD, UHD etc. We recommend using vr.decode_fast() which has the same arguments as vr.decode() but will return a list of frames. It uses async conversion from yuv420p to RGB to speed things up.

If you have some memory limitations that wont let you decode the entire video at once, you can decode by chunk like so:

from video_reader import PyVideoReader

videoname = "/path/to/your/video.mp4"
vr = PyVideoReader(videoname)

chunk_size = 800 # adjust to fit within your memory limit
video_length = vr.get_shape()[0]

for i in range(0, video_length, chunk_size):
    end = min(i + chunk_size, video_length)
    frames = vr.decode_fast(
        start_frame=i,
        end_frame=end,
    )
    # do something with this chunk of 800 `frames`

🧪 Experimental support for Hardware Acceleration

You need to install video-reader-rs from source by cloning this repo and running maturin develop -r or maturin develop -r --features ffmpeg_6_0 if you have ffmpeg >= 6.0. Your ffmpeg installation should have support for cuda. Check with ffmpeg -version | grep cuda for example.

from video_reader import PyVideoReader

videoname = "/path/to/your/video.mp4"
vr = PyVideoReader(videoname, device='cuda')

You can also pass your own ffmpeg filter if you feel adventurous enough. For example, this would be the default filter used when specifying devide='cuda' and resize_shorter_side=512.

vr = PyVideoReader(videoname, device='cuda', filter='scale_cuda:h=512:w=-1:passthrough=0,hwdownload,format=nv12', resize_shorter_side=512)

In theory any hwaccel should work if you provide the correct filters, ie qsv, vaapi, vdpau, etc. It has not been tested though. Feel free to report.

Another example with VAAPI hardware acceleration:

vr = PyVideoReader(videoname, device='vaapi', filter='hwmap,format=nv12')

🚀 Performance comparison

Decoding a video with shape (2004, 1472, 1472, 3). Tested on a laptop (12 cores Intel i7-9750H CPU @ 2.60GHz), 15Gb of RAM with Ubuntu 22.04.

Options:

  • f: compression factor
  • r: resize shorter side
  • g: grayscale
Options OpenCV decord* vr.decode vr.decode_fast
f 1.0 65s 18s 9.3s 6.2s
f 0.5 33.96s 14.6s 5.5s 4.2s
f 0.25 7.16s 14.03s 4.2s 3.8s
f 0.25, r 512 6.5s 13.3s 3.92s 3.5s
f 0.25, g 20.2s 25.7s 6.6s N/A

* decord was tested on a machine with more RAM and CPU cores because it was crashing on the laptop with only 15Gb. See below.

💥 Crash test

Tested on a laptop with 15Gb of RAM, with ubuntu 22.04 and python 3.10. Run this script:

from video_reader import PyVideoReader
from time import time

def bench_video_decode(filename, compress_factor, resize):
    start =  time()
    vr = PyVideoReader(filename, resize_shorter_side=resize, threads=0)
    vid = vr.decode(compression_factor=compress_factor)
    duration = time() - start
    print(f"Duration {duration:.2f}sec")
    return vid

vid = bench_video_decode("sample.mp4", 0.25)
print("video shape:", vid.shape)

# Terminal output:
# Duration 4.81sec
# video shape: (501, 1472, 1472, 3)

And then run this script:

from decord import VideoReader

vr = VideoReader("sample.mp4")

# Terminal output:
# terminate called after throwing an instance of 'std::bad_alloc'
#  what():  std::bad_alloc
# [1]    9636 IOT instruction (core dumped)

🌠 Credits

  • decord for showing how to get_batch efficiently.
  • ffmpeg-next for the Rust bindings to ffmpeg.
  • video-rs for the nice high level api which makes it easy to encode videos and for the code snippet to convert ffmpeg frames to ndarray ;-)

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

video_reader_rs-0.2.9.tar.gz (2.4 MB view details)

Uploaded Source

Built Distributions

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

video_reader_rs-0.2.9-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl (11.8 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ x86-64

video_reader_rs-0.2.9-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl (41.7 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ ARM64

video_reader_rs-0.2.9-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl (11.8 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ x86-64

video_reader_rs-0.2.9-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl (41.7 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ ARM64

video_reader_rs-0.2.9-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl (41.7 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ ARM64

video_reader_rs-0.2.9-cp314-cp314-manylinux_2_28_x86_64.whl (11.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

video_reader_rs-0.2.9-cp313-cp313t-manylinux_2_28_aarch64.whl (41.7 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.28+ ARM64

video_reader_rs-0.2.9-cp313-cp313-win_amd64.whl (63.0 MB view details)

Uploaded CPython 3.13Windows x86-64

video_reader_rs-0.2.9-cp313-cp313-manylinux_2_28_x86_64.whl (11.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

video_reader_rs-0.2.9-cp313-cp313-manylinux_2_28_aarch64.whl (41.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

video_reader_rs-0.2.9-cp313-cp313-macosx_14_0_arm64.whl (33.1 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

video_reader_rs-0.2.9-cp313-cp313-macosx_13_0_x86_64.whl (38.4 MB view details)

Uploaded CPython 3.13macOS 13.0+ x86-64

video_reader_rs-0.2.9-cp312-cp312-win_amd64.whl (63.0 MB view details)

Uploaded CPython 3.12Windows x86-64

video_reader_rs-0.2.9-cp312-cp312-manylinux_2_28_x86_64.whl (11.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

video_reader_rs-0.2.9-cp312-cp312-manylinux_2_28_aarch64.whl (41.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

video_reader_rs-0.2.9-cp312-cp312-macosx_14_0_arm64.whl (33.1 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

video_reader_rs-0.2.9-cp312-cp312-macosx_13_0_x86_64.whl (38.4 MB view details)

Uploaded CPython 3.12macOS 13.0+ x86-64

video_reader_rs-0.2.9-cp311-cp311-win_amd64.whl (63.0 MB view details)

Uploaded CPython 3.11Windows x86-64

video_reader_rs-0.2.9-cp311-cp311-manylinux_2_28_x86_64.whl (11.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

video_reader_rs-0.2.9-cp311-cp311-manylinux_2_28_aarch64.whl (41.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

video_reader_rs-0.2.9-cp311-cp311-macosx_14_0_arm64.whl (33.1 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

video_reader_rs-0.2.9-cp311-cp311-macosx_13_0_x86_64.whl (38.4 MB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

video_reader_rs-0.2.9-cp310-cp310-win_amd64.whl (63.0 MB view details)

Uploaded CPython 3.10Windows x86-64

video_reader_rs-0.2.9-cp310-cp310-manylinux_2_28_x86_64.whl (11.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

video_reader_rs-0.2.9-cp310-cp310-manylinux_2_28_aarch64.whl (41.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

video_reader_rs-0.2.9-cp39-cp39-win_amd64.whl (63.0 MB view details)

Uploaded CPython 3.9Windows x86-64

video_reader_rs-0.2.9-cp39-cp39-manylinux_2_28_x86_64.whl (11.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

video_reader_rs-0.2.9-cp39-cp39-manylinux_2_28_aarch64.whl (41.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

File details

Details for the file video_reader_rs-0.2.9.tar.gz.

File metadata

  • Download URL: video_reader_rs-0.2.9.tar.gz
  • Upload date:
  • Size: 2.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.8.7

File hashes

Hashes for video_reader_rs-0.2.9.tar.gz
Algorithm Hash digest
SHA256 a4d9c75d995964f42bdb6edb6b9492f8e8338064d06bd0a4daa49db62abacf0a
MD5 06e420125bbcce01ddc32efd0e760b35
BLAKE2b-256 34ef71d927f88049b1b136ac3e01289c0a6bbebf845a1baecf511785f475137e

See more details on using hashes here.

File details

Details for the file video_reader_rs-0.2.9-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for video_reader_rs-0.2.9-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4d172d649ecbf27353dd423d785585110cd94c39eae07368cf0552d5b3ec40fe
MD5 7e3db85e0acec74ec9969369fb2048f4
BLAKE2b-256 6315b89352627facbd6dc0641fe935b0e3e6bd1ddf3ae5f1f6482807af685376

See more details on using hashes here.

File details

Details for the file video_reader_rs-0.2.9-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for video_reader_rs-0.2.9-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d2c5c609e11b2528af45ad5473a09ef1f766a100d6196052028c1872e059839b
MD5 38e833dfcdd09b7b7b0aae67c7f5aa5d
BLAKE2b-256 b9ac37de3bd77e481ea9470b78ffb71e6f7d620c4dc130ef551600ccf3f13966

See more details on using hashes here.

File details

Details for the file video_reader_rs-0.2.9-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for video_reader_rs-0.2.9-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c40993be43c8f6cc1714fb882da049cc6485089912ef55ddb49894a54bdbbeb6
MD5 c7f42eb460d700fedd0894e5ab92abed
BLAKE2b-256 0236e118bb5ab6351adbe5681bf862125c9fd30c1ce135c9acf4f781c2ab83ab

See more details on using hashes here.

File details

Details for the file video_reader_rs-0.2.9-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for video_reader_rs-0.2.9-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6bdbb4a42d5785b57fd95ca562440fef4aa903c48e357a71924861f0ab40a607
MD5 963a2c8966172c79354a44eda648fbcd
BLAKE2b-256 ec0795c286fae39d366584bd7f25b5fc23f4786c2e18d9dd86c42f6f3e180061

See more details on using hashes here.

File details

Details for the file video_reader_rs-0.2.9-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for video_reader_rs-0.2.9-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 33aba9bfdd53a04cc951789832907a1b3542d00fb1b0069381cd1d817c7aa962
MD5 e28dd0b86621873bd9d87edcf4e1b2c3
BLAKE2b-256 3df698a11aa74a7b0f6204406fa98a0e29fdc29ab47d75a9b780a42f4d17f7c3

See more details on using hashes here.

File details

Details for the file video_reader_rs-0.2.9-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for video_reader_rs-0.2.9-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a61852e400be499a1a419198dee1b1df8c08b6c4cd16d7f5ea801efd0223308e
MD5 27080da6ff1657c8c179062654234110
BLAKE2b-256 636af164fe28c4541f94c89eb5096542a3ffb6fdaa3f7daba5cb7c5d19010754

See more details on using hashes here.

File details

Details for the file video_reader_rs-0.2.9-cp313-cp313t-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for video_reader_rs-0.2.9-cp313-cp313t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a2f8cc316147fb39e2c19af47d492bb74e6aed5a41f4b6d47896d4ab4feab35a
MD5 266eafc9c9c1c30234ab9223aeb2296a
BLAKE2b-256 7628916973618ab94398fd6dcd53701b713a64726764e3eeafb4dfa52e2ce229

See more details on using hashes here.

File details

Details for the file video_reader_rs-0.2.9-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for video_reader_rs-0.2.9-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 73c644aa8620ca5fcf06802ef98b0378c0fdedd0d73a4072c6c7f127247a13a4
MD5 9e139c411812603eb23268a412f4f703
BLAKE2b-256 4f2754e7d9f107166a25d8d2045a5492f766c5d426b8464661fb60ab334e36d4

See more details on using hashes here.

File details

Details for the file video_reader_rs-0.2.9-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for video_reader_rs-0.2.9-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 60231f1b4855143e77a57e6c0026be117885a39ed0eff43dc36c3d55b0d9c49e
MD5 f7f496962e8f18b4be6187d963b46afa
BLAKE2b-256 fdf733f6fc7a1a9294dc47478133a6309a7978e75cd40159a83b201d3978b515

See more details on using hashes here.

File details

Details for the file video_reader_rs-0.2.9-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for video_reader_rs-0.2.9-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2889638af927d930efb4d74df99ac15a24aadac96d270187744e243012f49712
MD5 1f4000e803bd8edc8b61941a703420fb
BLAKE2b-256 7f527e794c36e959c2f71d6effc9c63c82c2cd19b6dcdf43ccd5dac19d9cf46b

See more details on using hashes here.

File details

Details for the file video_reader_rs-0.2.9-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for video_reader_rs-0.2.9-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 4c2baf76713f8444a68d59ad58f39824f24573e2b19deca8e1a19c068a012640
MD5 00efc1db1912dca75aa02d98c11fdd13
BLAKE2b-256 6586cdc141269091db56e8945019539bda3d8c31770dd4a0155fd3a05c141ab5

See more details on using hashes here.

File details

Details for the file video_reader_rs-0.2.9-cp313-cp313-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for video_reader_rs-0.2.9-cp313-cp313-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 787b4dabf06404a8905e046537b0d9abf736d21dcd020b94240c1772e37e7308
MD5 a26b0baaf0ec87ee8bfca649e8a67ac6
BLAKE2b-256 7ebafc0888b7e1ca000cab2aa12344ecf5f9b845aa082b6a4384f0d4adc28194

See more details on using hashes here.

File details

Details for the file video_reader_rs-0.2.9-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for video_reader_rs-0.2.9-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ed0448f1613560b89d7190aab4dfee75155e94e7296fb39d2af3f7e386d112e2
MD5 de3a4e34eddf59c69cda0ac53910de6f
BLAKE2b-256 3a2bc94952f6c01b9094b844a9c44cb0eb1b9ebdb27791845ec2e22644648738

See more details on using hashes here.

File details

Details for the file video_reader_rs-0.2.9-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for video_reader_rs-0.2.9-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 248a0ffbe07aa08077eeb002b54a70811e56aaac32aeedec28c845aada2473b8
MD5 8197cd545a7814a5eee9279827bcf09c
BLAKE2b-256 68eba4f1c6775421ab3d038a988fa150ad41d11f757b2c0061d3571c4f71917c

See more details on using hashes here.

File details

Details for the file video_reader_rs-0.2.9-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for video_reader_rs-0.2.9-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 328c06b4a5d1b7908f1ae50145cf31601d0f080fa36ab76d6b3ac7b114918736
MD5 1bdc709939442cdeb3f29995969ec3c5
BLAKE2b-256 b30b6c971135179a11848daf00f54ee062be7e63c4bd737f17b63a0829d7d7de

See more details on using hashes here.

File details

Details for the file video_reader_rs-0.2.9-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for video_reader_rs-0.2.9-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 ff1b4feab6cdc3b2a173f27e8a2e8addbc222506402fef5f0bee7fc433b864f9
MD5 695201a50b5cf2404aca0ec6d3ec669d
BLAKE2b-256 93ddf0688cf0eed20fb5b590aaa8a5fe7b4bd3728dd00c7ff623a1ccb69db4b7

See more details on using hashes here.

File details

Details for the file video_reader_rs-0.2.9-cp312-cp312-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for video_reader_rs-0.2.9-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 aa0d06caff4e13c1273260a38b4081489129412bd0db3a158c58924998c9e839
MD5 12732e6d97422b0be07d302822ba7d10
BLAKE2b-256 15747b9dc10ecaa3998c3fbfbd0590526d0d0d9a73a8927e535c8b82163e4e35

See more details on using hashes here.

File details

Details for the file video_reader_rs-0.2.9-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for video_reader_rs-0.2.9-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d9bd247f43f0f59eea6faa79ed0b17405ed0aec8163846b6380b664f760d69ba
MD5 d7adae0184fff1da75c44c1d5414ac8a
BLAKE2b-256 28b5fadbacf12e9bc04db10e69444fbd3b675262c386d3df6918a634022acf52

See more details on using hashes here.

File details

Details for the file video_reader_rs-0.2.9-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for video_reader_rs-0.2.9-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 84c820a29df50778d40d1127c3c3bc8bb262e73b7903f8a0930461446ab1e2ec
MD5 fa0e080ea56beab9ca60b4a0c9d2b4ae
BLAKE2b-256 3aa1764ec9568d0f7f57a08a0e7cebe1472ea7b22f63229a45231ca51bec464d

See more details on using hashes here.

File details

Details for the file video_reader_rs-0.2.9-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for video_reader_rs-0.2.9-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2d80106ef6ce12e3f884733a6d68828c48190e564532b27a61a4d1d8ec3f845f
MD5 23994cd881aeb6b73bb09b0e81ed96e1
BLAKE2b-256 1e4436aaf3ddf43b070f12f41436f5e3ec2749dc39e9766f7f5aa41dc942ac7d

See more details on using hashes here.

File details

Details for the file video_reader_rs-0.2.9-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for video_reader_rs-0.2.9-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 aa7f3160882fc8aeb74020e22763f1c7692a8c556fbf35c19f892c84240ec446
MD5 b95a64f717ff798e27d31e935755657a
BLAKE2b-256 87fc52b0976df1b4cc584f42e4c050cc70241e164a11d4965395e024741796c0

See more details on using hashes here.

File details

Details for the file video_reader_rs-0.2.9-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for video_reader_rs-0.2.9-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 9d53fbb98691668c81a3c8181216a00513b071ff7f494b1c2a8402527de64107
MD5 e86264c2511b0688f670e27490952651
BLAKE2b-256 e3433be8078a49e56c661efdc7887de20e682909c7e32a477b8f406525894c6d

See more details on using hashes here.

File details

Details for the file video_reader_rs-0.2.9-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for video_reader_rs-0.2.9-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 de3a542d6ec8ce1a0a39b62a0857e4db3d589b14c693624f527a635f830bed40
MD5 e39464fe044297caeacdb7e959da0d1d
BLAKE2b-256 ad6a21d461aa5028cbb622a2795560268f0836491624667f0d05032d4bc08bad

See more details on using hashes here.

File details

Details for the file video_reader_rs-0.2.9-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for video_reader_rs-0.2.9-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6dcf3d5d3967527c03794639378038dbe45e33b16c14c67dbd4ef767665ad308
MD5 92455de3dffc336e0297558c9af1080a
BLAKE2b-256 db72db0e258db3d3b4b2a1406fd03ab8a41f2cadaa200ae4d87a87747315b943

See more details on using hashes here.

File details

Details for the file video_reader_rs-0.2.9-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for video_reader_rs-0.2.9-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 31ece0fc34edf9077f2b057f11169db273a91fd4e0f16fb2b8cf23d0de16e06c
MD5 b3361c1ff6d30bd294b4e97d560c0791
BLAKE2b-256 b9f56dc7838409476b18d4173b22589fad2ca9e2f40ba7b70cd24d8c7925d566

See more details on using hashes here.

File details

Details for the file video_reader_rs-0.2.9-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for video_reader_rs-0.2.9-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 71edfd61e2dd831e3c555a845e260ab6bd4770c97ac9d4d7bb9338807d30c548
MD5 0fea798d4a162573b54949afc5923d26
BLAKE2b-256 12787e5f9413ef1033b9448f7fe25a54894ecb7af365cbfbd1bacaeae48ba351

See more details on using hashes here.

File details

Details for the file video_reader_rs-0.2.9-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for video_reader_rs-0.2.9-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4a9943d4111e23d797d28f8a80cff1536eb26cfa262fdeb042d53cb443700734
MD5 44f42e357ea7df8135e60e243237a941
BLAKE2b-256 5437fd71f24a2081dfa374280b3b5f5e062247de673709ef8b22b5873d598b28

See more details on using hashes here.

File details

Details for the file video_reader_rs-0.2.9-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for video_reader_rs-0.2.9-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 50423e1fb84afc5c68f973a53e102ebbb65abc9b6955be1143d2474bf167bb0a
MD5 e700fad10b8dee496fcdf456237dc40b
BLAKE2b-256 aec7c8b7af11306aec356a2ed338da63bfc5573b84f42e2f59767dd23790c95c

See more details on using hashes here.

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