Skip to main content

Cross-platform UVC camera library binding for Python

Project description

uvc-py

PyPI SPEC 0 — Minimum Supported Dependencies image License

About Shiguredo's open source software

We will not respond to PRs or issues that have not been discussed on Discord. Also, Discord is only available in Japanese.

Please read https://github.com/shiguredo/oss/blob/master/README.en.md before use.

時雨堂のオープンソースソフトウェアについて

利用前に https://github.com/shiguredo/oss をお読みください。

uvc-py について

UVC (USB Video Class) カメラからの映像キャプチャを行う Python ライブラリです。

  • numpy.ndarray での映像フレーム取得
  • ネイティブバッファへの直接アクセス (macOS: CVPixelBufferRef / PyCapsule)
  • デバイス接続/切断コールバック (macOS / Linux)
  • Python Free Threading 対応

対応フォーマット

  • NV12
  • YUY2

将来サポート予定

  • MJPEG

対応プラットフォーム

  • macOS 26 arm64
  • macOS 15 arm64
  • Ubuntu 24.04 x86_64
  • Ubuntu 24.04 arm64
  • Ubuntu 22.04 x86_64
  • Ubuntu 22.04 arm
OS API
macOS AVFoundation
Linux V4L2
Windows Media Foundation

将来対応予定

  • Windows Server 2025 x86_64
  • Windows 11 x86_64

対応 Python

  • 3.14
  • 3.14t
  • 3.13
  • 3.13t
  • 3.12

インストール

uv add uvc-py

使い方

デバイス一覧の取得

import uvc

devices = uvc.list_devices()
for device in devices:
    print(f"[{device.index}] {device.name}")

映像キャプチャ

import uvc

with uvc.open(0) as device:
    device.start(1920, 1080, 30, capture_format=uvc.Format.NV12)

    frame = device.get_frame()
    if frame is not None:
        y, uv = frame.to_nv12()
        print(f"Y: {y.shape}")
        print(f"UV: {uv.shape}")

デバイス接続/切断コールバック

import uvc
import time

def on_connected():
    print("デバイスが接続されました")

def on_disconnected():
    print("デバイスが切断されました")

with uvc.open(0, on_connected=on_connected, on_disconnected=on_disconnected) as device:
    device.start(1920, 1080, 30, capture_format=uvc.Format.NV12)

    while True:
        frame = device.get_frame()
        if frame is not None:
            print(f"Frame: {frame.width}x{frame.height}")
        time.sleep(0.033)

raw-player との連携

import uvc
from raw_player import VideoPlayer

with uvc.open(0) as device:
    device.start(1920, 1080, 30, capture_format=uvc.Format.NV12)

    player = VideoPlayer(width=1920, height=1080)
    player.play()

    while player.is_open:
        if not player.poll_events():
            break

        frame = device.get_frame()
        if frame is not None:
            y, uv = frame.to_nv12()
            player.enqueue_video_nv12(y, uv, frame.timestamp)

    player.close()

webcodecs-py との連携

import uvc
from webcodecs import VideoEncoder, VideoFrame, VideoPixelFormat

def on_output(chunk):
    print(f"Encoded: {chunk.byte_length} bytes")

def on_error(error):
    print(f"Error: {error}")

with uvc.open(0) as device:
    device.start(1920, 1080, 30, capture_format=uvc.Format.NV12)

    encoder = VideoEncoder(on_output, on_error)
    encoder.configure({
        "codec": "avc1.640028",
        "width": 1920,
        "height": 1080,
        "bitrate": 5_000_000,
        "framerate": 30,
    })

    frame = device.get_frame()
    if frame is not None:
        y, uv = frame.to_nv12()
        with VideoFrame(
            y,
            uv,
            {
                "format": VideoPixelFormat.NV12,
                "coded_width": frame.width,
                "coded_height": frame.height,
                "timestamp": frame.timestamp,
            },
        ) as video_frame:
            encoder.encode(video_frame, {"key_frame": True})

    encoder.flush()
    encoder.close()

PyCapsule

PyCapsule は Python C API の仕組みで、C/C++ のポインタを Python オブジェクトとして安全に受け渡しできます。

uvc-py では frame.native_buffer() で macOS の CVPixelBufferRef を PyCapsule として取得できます。 これにより numpy 配列への変換を省略し、uvc-py と他の拡張モジュール間でネイティブバッファを直接共有できます。

[!NOTE]

  • Linux / Windows では native_buffer() は None を返します

raw-player との連携

native_buffer() を渡すことで numpy 配列の作成を省略できます。

import uvc
from raw_player import VideoPlayer

with uvc.open(0) as device:
    device.start(1920, 1080, 30, capture_format=uvc.Format.NV12)

    player = VideoPlayer(width=1920, height=1080)
    player.play()

    while player.is_open:
        if not player.poll_events():
            break

        frame = device.get_frame()
        if frame is not None:
            player.enqueue_video_nv12(frame.native_buffer(), frame.timestamp)

    player.close()

webcodecs-py との連携

native_buffer() を渡すことで numpy 配列の作成を省略できます。

import uvc
from webcodecs import VideoEncoder, VideoFrame, VideoPixelFormat

def on_output(chunk):
    print(f"Encoded: {chunk.byte_length} bytes")

def on_error(error):
    print(f"Error: {error}")

with uvc.open(0) as device:
    device.start(1920, 1080, 30, capture_format=uvc.Format.NV12)

    encoder = VideoEncoder(on_output, on_error)
    encoder.configure({
        "codec": "avc1.640028",
        "width": 1920,
        "height": 1080,
        "bitrate": 5_000_000,
        "framerate": 30,
    })

    frame = device.get_frame()
    if frame is not None:
        with VideoFrame(
            frame.native_buffer(),
            {
                "format": VideoPixelFormat.NV12,
                "coded_width": frame.width,
                "coded_height": frame.height,
                "timestamp": frame.timestamp,
            },
        ) as video_frame:
            encoder.encode(video_frame, {"key_frame": True})

    encoder.flush()
    encoder.close()

API リファレンス

モジュール関数

関数 説明
list_devices() 利用可能な UVC デバイスの一覧を取得
open(index_or_info, on_connected, on_disconnected) デバイスを開く

open の引数

  • index_or_info: デバイスインデックス(int)または DeviceInfo
  • on_connected: デバイス接続時のコールバック (macOS / Linux)
  • on_disconnected: デバイス切断時のコールバック (macOS / Linux)

Device

UVC デバイスを操作するクラス。コンテキストマネージャとして使用可能。

with uvc.open(0) as device:
    device.start(1920, 1080, 30, capture_format=uvc.Format.NV12)
メソッド 説明
start(width, height, fps, capture_format, output_format) キャプチャ開始
stop() キャプチャ停止
get_frame() フレーム取得(None の場合あり)
get_supported_formats() サポートされているフォーマット一覧を取得
プロパティ 説明
is_running キャプチャ中かどうか
info デバイス情報(DeviceInfo)

start の引数

  • width: 映像幅
  • height: 映像高さ
  • fps: フレームレート
  • capture_format: キャプチャフォーマット(Format)
  • output_format: 出力フォーマット(省略時は capture_format と同じ)

Frame

キャプチャしたフレームを表すクラス。

メソッド 説明
to_nv12() NV12 フォーマット: (y, uv) タプルを返す
to_yuy2() YUY2 フォーマット: (H, W, 2) を返す
to_rgb() RGB フォーマット: (H, W, 3) を返す
to_rgba() RGBA フォーマット: (H, W, 4) を返す
native_buffer() ネイティブバッファを PyCapsule として取得
プロパティ 説明
width フレーム幅
height フレーム高さ
format フォーマット(Format)
timestamp タイムスタンプ(マイクロ秒)

to_nv12 の戻り値

  • y: Y プレーン(uint8、shape: (H, W))
  • uv: UV インターリーブプレーン(uint8、shape: (H/2, W))

DeviceInfo

デバイス情報を表すクラス。

プロパティ 説明
name デバイス名
unique_id ユニーク ID
index デバイスインデックス

FormatInfo

フォーマット情報を表すクラス。

プロパティ 説明
width 映像幅
height 映像高さ
fps フレームレート
format フォーマット(Format)

Format

映像フォーマットを表す列挙型。

説明
NV12 NV12(Y + UV インターリーブ)
YUY2 YUY2(パックド YUV)
RGB RGB
RGBA RGBA
MJPEG Motion JPEG(将来サポート予定)

ビルド

make develop

サンプルの実行

uv sync --only-group example
make develop
# デバイス一覧を表示
uv run examples/capture.py --list-devices

# 720p 30fps でキャプチャ
uv run examples/capture.py --resolution 720p --fps 30

# NV12 フォーマットでキャプチャ
uv run examples/capture.py --capture-format nv12

# raw-player で映像を表示
uv run examples/capture.py --player

# 100 フレームだけキャプチャ
uv run examples/capture.py --frames 100

# 10 秒間キャプチャ
uv run examples/capture.py --duration 10

Discord

  • サポートはしません
  • アドバイスします
  • フィードバック歓迎します

最新の状況などは Discord で共有しています。質問や相談も Discord でのみ受け付けています。

https://discord.gg/shiguredo

バグ報告

Discord へお願いします。

ライセンス

Apache License 2.0

Copyright 2025-2025, Shiguredo Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

uvc_py-2025.1.0.dev1-cp314-cp314t-manylinux_2_34_x86_64.whl (96.4 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.34+ x86-64

uvc_py-2025.1.0.dev1-cp314-cp314t-manylinux_2_34_aarch64.whl (92.0 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.34+ ARM64

uvc_py-2025.1.0.dev1-cp314-cp314t-macosx_15_0_arm64.whl (81.0 kB view details)

Uploaded CPython 3.14tmacOS 15.0+ ARM64

uvc_py-2025.1.0.dev1-cp314-cp314-manylinux_2_34_x86_64.whl (94.4 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

uvc_py-2025.1.0.dev1-cp314-cp314-manylinux_2_34_aarch64.whl (88.8 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ ARM64

uvc_py-2025.1.0.dev1-cp314-cp314-macosx_15_0_arm64.whl (77.4 kB view details)

Uploaded CPython 3.14macOS 15.0+ ARM64

uvc_py-2025.1.0.dev1-cp313-cp313t-manylinux_2_34_x86_64.whl (96.5 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.34+ x86-64

uvc_py-2025.1.0.dev1-cp313-cp313t-manylinux_2_34_aarch64.whl (92.0 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.34+ ARM64

uvc_py-2025.1.0.dev1-cp313-cp313t-macosx_15_0_arm64.whl (81.0 kB view details)

Uploaded CPython 3.13tmacOS 15.0+ ARM64

uvc_py-2025.1.0.dev1-cp313-cp313-manylinux_2_34_x86_64.whl (94.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

uvc_py-2025.1.0.dev1-cp313-cp313-manylinux_2_34_aarch64.whl (88.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ ARM64

uvc_py-2025.1.0.dev1-cp313-cp313-macosx_15_0_arm64.whl (77.4 kB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

uvc_py-2025.1.0.dev1-cp312-cp312-manylinux_2_34_x86_64.whl (94.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

uvc_py-2025.1.0.dev1-cp312-cp312-manylinux_2_34_aarch64.whl (88.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ ARM64

uvc_py-2025.1.0.dev1-cp312-cp312-macosx_15_0_arm64.whl (77.5 kB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

File details

Details for the file uvc_py-2025.1.0.dev1-cp314-cp314t-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev1-cp314-cp314t-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 a0ff1615c99878babc268451d47b02da18a253083d3582cf57ee6603b3da19e1
MD5 32566d6ff4934154f2410549d30e498b
BLAKE2b-256 5c9f1e23421576d92fa95b64b3e1b9292af094ec222a6aa27823010c28af79fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev1-cp314-cp314t-manylinux_2_34_x86_64.whl:

Publisher: wheel.yml on shiguredo/uvc-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uvc_py-2025.1.0.dev1-cp314-cp314t-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev1-cp314-cp314t-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 b9b36cf4cbb29efbe1f60d2d24238fb77e5c95dcbfc9eb2e4a516eaa684d2a39
MD5 b68a52bbb4e21675764b2dfba6cc8052
BLAKE2b-256 802d15a44edb0ddd33fc6e87acdc2e0ac4d560b77f483e818cb03ad804549522

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev1-cp314-cp314t-manylinux_2_34_aarch64.whl:

Publisher: wheel.yml on shiguredo/uvc-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uvc_py-2025.1.0.dev1-cp314-cp314t-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev1-cp314-cp314t-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 e2e23b96078fb8fd017d3e6824a56ae1fdf631d0d7564c1b59accf249985438c
MD5 689d8e5eac843f3715eb56ea689351c1
BLAKE2b-256 77847a3392e32483155f1a315795be2fbf7a03dc76d31101b2c27e034a38d9ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev1-cp314-cp314t-macosx_15_0_arm64.whl:

Publisher: wheel.yml on shiguredo/uvc-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uvc_py-2025.1.0.dev1-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev1-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 910affb192fcdceb81981a00b051ab1ab7d9020f430fb1f8588fafc205c20fc1
MD5 9d12038e143239beae005039054d4b9a
BLAKE2b-256 32a13e207073e3e535a4ed10572dc28b20e08045b843790b43d7e2364fb17c6a

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev1-cp314-cp314-manylinux_2_34_x86_64.whl:

Publisher: wheel.yml on shiguredo/uvc-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uvc_py-2025.1.0.dev1-cp314-cp314-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev1-cp314-cp314-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 1282fe7a79cfa781363f5d0f8692e636540b64b28b0b43f00faa359d28302ead
MD5 ed653cc74f594c7ad91c6d0e5cacb001
BLAKE2b-256 5c5648d2032cfebb4f909c0e0036cd45e4ac1d35ca5720b3049b5fedb0510b75

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev1-cp314-cp314-manylinux_2_34_aarch64.whl:

Publisher: wheel.yml on shiguredo/uvc-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uvc_py-2025.1.0.dev1-cp314-cp314-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev1-cp314-cp314-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 e850045c7b96c1905350ea80f067a5a1ba687e63f43c2c628e238a461959431d
MD5 fe9b712caaefb1645031a1d2a41707a9
BLAKE2b-256 f8f18a6ba677fdcff99ee8224cf95b3d98eb9b41099b6a9c25cd187a901781df

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev1-cp314-cp314-macosx_15_0_arm64.whl:

Publisher: wheel.yml on shiguredo/uvc-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uvc_py-2025.1.0.dev1-cp313-cp313t-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev1-cp313-cp313t-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 a6b6a1ba2779315cc9e5b1cdfac8d0b126da356606e2f4fec944e9e536eb7d11
MD5 ecd82ae3c33cfe9c1f8d5180fb8e8308
BLAKE2b-256 dc8ba5d10919bbdd970fbad2537f4bc892dc29d582feb616df13d6b6e93d9957

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev1-cp313-cp313t-manylinux_2_34_x86_64.whl:

Publisher: wheel.yml on shiguredo/uvc-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uvc_py-2025.1.0.dev1-cp313-cp313t-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev1-cp313-cp313t-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 dc238a2521d180460c763bff5badf19094128d931e25dcbf1f9f1a300690c8d0
MD5 95e9283750945a717c75eca347257f1f
BLAKE2b-256 65b6368840355113db046fbd60e287d3787f3b34d7809d047cf0aad52e9e891c

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev1-cp313-cp313t-manylinux_2_34_aarch64.whl:

Publisher: wheel.yml on shiguredo/uvc-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uvc_py-2025.1.0.dev1-cp313-cp313t-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev1-cp313-cp313t-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 6610d27389b65772f001a5ff52f54c2c0ced1603033c77dec3cb6d1971d27191
MD5 f16dfa2d6c442c880baed50e1448b826
BLAKE2b-256 10574905037a9ad4af7122ff00ff21f0f3ebdbc3d997b5318ba353d281b84931

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev1-cp313-cp313t-macosx_15_0_arm64.whl:

Publisher: wheel.yml on shiguredo/uvc-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uvc_py-2025.1.0.dev1-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev1-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 18296ff331248b6c6c03c7c5f648d84e58d0b96294382912c0f62e084327d6ed
MD5 437a15585faa692361f248b052f8dc78
BLAKE2b-256 ad4bd4c84a23664f66bcf42df8c2c0f61355d2ce9a4be013c462e5e3b226cf2b

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev1-cp313-cp313-manylinux_2_34_x86_64.whl:

Publisher: wheel.yml on shiguredo/uvc-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uvc_py-2025.1.0.dev1-cp313-cp313-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev1-cp313-cp313-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 fb3abeb99f2a87214055da50c1bc7ca66038154c690ebd4ca1f50cbc2a136b7b
MD5 70bc4f99734fe22e62fbb5065dfcf8bf
BLAKE2b-256 5bf0d55e8faac64e4586c9cdea24299c6e3a28c28799d5e418c0b8792fe1adab

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev1-cp313-cp313-manylinux_2_34_aarch64.whl:

Publisher: wheel.yml on shiguredo/uvc-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uvc_py-2025.1.0.dev1-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev1-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 9028242879acb1e6c530303ea3ca001c3f2622902b59ec6cdc04985f9b75d918
MD5 d008a0c6bd480fafca37698c704b7012
BLAKE2b-256 3b0becadd9fc67280ad7d825f85a205df44cae05f372fd8b6cff7386dc4497cb

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev1-cp313-cp313-macosx_15_0_arm64.whl:

Publisher: wheel.yml on shiguredo/uvc-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uvc_py-2025.1.0.dev1-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev1-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 389ec80af7447cac8a55bc4e3e8f3d1a229a157c7726068dd70cd5d73c217eda
MD5 a9228587a558daa3937b7fc95047fc4d
BLAKE2b-256 a68bc04f40217581adeb3149aa0f8197d971885a369e11484f46c49dbeea0a79

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev1-cp312-cp312-manylinux_2_34_x86_64.whl:

Publisher: wheel.yml on shiguredo/uvc-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uvc_py-2025.1.0.dev1-cp312-cp312-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev1-cp312-cp312-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 1bab0432bc0e38ad19d6065a4f8856ac4b2787a71aaf118d900ab98bef142201
MD5 3ec952536d9ff64a13f9d5198380fdf4
BLAKE2b-256 174816274c422bfa9719ceaad57b52a8bbec6e3ffd8e1d0ab22114f717aab000

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev1-cp312-cp312-manylinux_2_34_aarch64.whl:

Publisher: wheel.yml on shiguredo/uvc-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uvc_py-2025.1.0.dev1-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev1-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 2207a86229426be6c9d2bfa747bc419a2db9c9544a33b171c6506fe45b38684b
MD5 b9ca4aea07fcb4dad7859fd821d204df
BLAKE2b-256 980597e6012df1020c2c17a3181694d1a44f70e37e5977a18e73b7ca09729f55

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev1-cp312-cp312-macosx_15_0_arm64.whl:

Publisher: wheel.yml on shiguredo/uvc-py

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