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.dev0-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.dev0-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.dev0-cp314-cp314t-macosx_15_0_arm64.whl (81.0 kB view details)

Uploaded CPython 3.14tmacOS 15.0+ ARM64

uvc_py-2025.1.0.dev0-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.dev0-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.dev0-cp314-cp314-macosx_15_0_arm64.whl (77.4 kB view details)

Uploaded CPython 3.14macOS 15.0+ ARM64

uvc_py-2025.1.0.dev0-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.dev0-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.dev0-cp313-cp313t-macosx_15_0_arm64.whl (81.0 kB view details)

Uploaded CPython 3.13tmacOS 15.0+ ARM64

uvc_py-2025.1.0.dev0-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.dev0-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.dev0-cp313-cp313-macosx_15_0_arm64.whl (77.4 kB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

uvc_py-2025.1.0.dev0-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.dev0-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.dev0-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.dev0-cp314-cp314t-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev0-cp314-cp314t-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 4b158d0674a124e9949e168f98aa40d95f145e0c005562ef6323ccaa4ae8e6e7
MD5 52dcdef8a8bab79d04f95a950837f476
BLAKE2b-256 d05a5027d18825630f03c146c043e4f55ecb17d144da19c1237821eee9a6dd3f

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev0-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.dev0-cp314-cp314t-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev0-cp314-cp314t-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 e48c6f0d51279f8d2eda9871006bc06d814122ac697580345877b92296fa2af5
MD5 0cba3ca42cf94a5ed234da7089070e4c
BLAKE2b-256 edbb58848ffe9aa0bab9bbac8a395ab2fd10bd4b568b9afadc779323f9c3aeee

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev0-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.dev0-cp314-cp314t-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev0-cp314-cp314t-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 b103b0d6d80a48e9f7dfeb838a99498389d43e58d78251529650385feac5c8e7
MD5 2b4fed7683b5b274a79e86acb4c4e83f
BLAKE2b-256 67afb1e42487f7c11b6525287a3a2a9222571d878ace13d25fe325cd8752394b

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev0-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.dev0-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev0-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 2e998be95ef909654c52310f4421a7ff604f22bc3723039f8aec82e6d5c41352
MD5 4e3d8e8331dc593cd0cf75489a3b61dd
BLAKE2b-256 ff1ed5b94ef5b848c6a44ce09668d9abfe27d2fe6cee22e314a3dd55609deca1

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev0-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.dev0-cp314-cp314-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev0-cp314-cp314-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 c26b90fc0a85b5b12043d4ef9f8e7bf711288a28a77bf1a62a7e60edaf37cec3
MD5 85a4dabc10832fb9ba7c4f44f6f372f7
BLAKE2b-256 7f2ac5204639ac70d64493770749abb07a7e58199b0124d8d9603a9ea6b104ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev0-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.dev0-cp314-cp314-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev0-cp314-cp314-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 5a8bb1984d59f8fcb892e2c6b860db5c0b9dc14690e1ed4e4a0eae453c25235f
MD5 c52217f8f014d5f28ec0b89b0d891c47
BLAKE2b-256 6ff5e7d5d3b7bcf847484c6473099a4c00ea34e70186134d1758d3e86e3a34a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev0-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.dev0-cp313-cp313t-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev0-cp313-cp313t-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 53ea98e9350fc2b9f929c6d633d358ecc81b877170484e2ca9c8afe57bee0205
MD5 213e970372935ca85d0db766e53901f1
BLAKE2b-256 1a31d1f3f08365708f27d42b90170e3aeb50be27b462552c841a487b9aa3c81c

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev0-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.dev0-cp313-cp313t-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev0-cp313-cp313t-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 323d0841a92a545e5e2b00be87c17df18879cbcc387fe135afadb5b038cf88fe
MD5 22cda934919484dc998ca760a69cf827
BLAKE2b-256 f6baa2686649e8f4cb3d6432c96297aa7a506ea7c548a96608394d62457a9179

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev0-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.dev0-cp313-cp313t-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev0-cp313-cp313t-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 979037ed3e16a295b0f3ed90ddc7851004881dcca010ebe65907e206365002db
MD5 4723be312897ff31a61e406bc822bbf3
BLAKE2b-256 e1462c971885f342fd28b00bf0546f1a413075c1ff5fa8aaece0c4c282cc15ad

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev0-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.dev0-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev0-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 24de0755b3c688c76709f6ad0919ba02167ea5032c08f1962633c6324942274e
MD5 b68097a1bc206024d92cf15a528d5453
BLAKE2b-256 76703043cf759e289f9bf318256151ef13146d4bda1cfea9601ea958a3706e56

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev0-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.dev0-cp313-cp313-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev0-cp313-cp313-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 f4d857a105030e1010a8d34ffbd8bd28af33604daa2a4c2d89d2f13eee500732
MD5 fe8bf0e9189cc17c1a801f9366dcebb1
BLAKE2b-256 6693aa7a03f62847af94edae37c90390cb1556abf26eca7c6a09b934a2466cf6

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev0-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.dev0-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev0-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 c38a67a353df04cf79d27a61a8be24b23382ed2eedfdf48f18f6b6e950deadd1
MD5 c5845d9ab5db2fba8d43304e1d03ad6f
BLAKE2b-256 d91d16b097f82f25e838aa5120d60662a09bb3acd79dd6844d50827a8c05a286

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev0-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.dev0-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev0-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 6b2aa28c1c0e7f0d91411d18c6cc1015ebbffb5878317ba3cb9b08ba3db16fc1
MD5 07f1cb9e3e885f89fa893545ab5b2738
BLAKE2b-256 ce1fddbb35b8c0b2514492810ad562fab6e008337f14df9f2cd6e826808266d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev0-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.dev0-cp312-cp312-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev0-cp312-cp312-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 692538ab5c29bfb41e972356df54a75a806fbe9fdb10d7dd89ba965cff207657
MD5 5ab74327135ee90dafda133757c83430
BLAKE2b-256 e919e563c6e7004426abae77d4c94a279538029f968b906c4e68038ebadc30dc

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev0-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.dev0-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for uvc_py-2025.1.0.dev0-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 9012a6f3486eac2eb37177294960983db14f7dfa59518151cf26f78bc8af8dd4
MD5 d25402d93ec5090ba07d55965cfca99e
BLAKE2b-256 f59962f34abd648b6d81c4f8d79e0e5f89ab2f8c19b18d4107376d77296289ee

See more details on using hashes here.

Provenance

The following attestation bundles were made for uvc_py-2025.1.0.dev0-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