Metadata-Version: 2.4
Name: vidsrc
Version: 2025.8.1
Summary: Video Frameserver for Numpy
Home-page: https://www.cgohlke.com
Author: Christoph Gohlke
Author-email: cgohlke@cgohlke.com
License: BSD-3-Clause
Project-URL: Bug Tracker, https://github.com/cgohlke/vidsrc/issues
Project-URL: Source Code, https://github.com/cgohlke/vidsrc
Platform: Windows
Classifier: Development Status :: 7 - Inactive
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: Topic :: Multimedia :: Video
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: C++
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.11
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: numpy
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: platform
Dynamic: project-url
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

Video Frameserver for Numpy
===========================

Vidsrc is a Python library to read frames from video files as numpy arrays
via the DirectShow IMediaDet interface.

:Author: `Christoph Gohlke <https://www.cgohlke.com>`_
:License: BSD-3-Clause
:Version: 2025.8.1

Quickstart
----------

Install the vidsrc package and all dependencies from the
`Python Package Index <https://pypi.org/project/vidsrc/>`_::

    python -m pip install -U vidsrc

See `Examples`_ for using the programming interface.

Source code and support are available on
`GitHub <https://github.com/cgohlke/vidsrc>`_.

Requirements
------------

This revision was tested with the following requirements and 
dependencies (other versions may work):

- `CPython <https://www.python.org>`_ 3.11.9, 3.12.10, 3.13.5, 3.14.0rc 64-bit
- `NumPy <https://pypi.org/project/numpy/>`_ 2.3.2
- Microsoft Visual Studio 2022 (build)
- DirectX 9.0c SDK (build)
- DirectShow BaseClasses include files (build)
- DirectShow STRMBASE.lib (build)

Revisions
---------

2025.8.1

- Drop support for Python 3.10, support Python 3.14.

2025.1.6

- Add type hints.
- Drop support for Python 3.9, support Python 3.13 and NumPy 2.

2024.1.6

- Support Python 3.12.
- Drop support for Python 3.8 and NumPy 1.22 (NEP 29).

2022.9.28

- Update metadata.

2021.6.6

- Drop support for Python 3.6 (NEP 29).
- Fix compile error on PyPy3.

2020.1.1

- Drop support for Python 2.7 and 3.5.

Notes
-----

The DirectShow IMediaDet interface is deprecated and may be removed from
future releases of Windows
(https://docs.microsoft.com/en-us/windows/desktop/directshow/imediadet).

To fix compile
``error C2146: syntax error: missing ';' before identifier 'PVOID64'``,
change ``typedef void * POINTER_64 PVOID64;``
to ``typedef void * __ptr64 PVOID64;``
in ``winnt.h``.

Examples
--------

>>> from vidsrc import VideoSource
>>> video = VideoSource('test.avi', grayscale=False)
>>> len(video)  # number of frames in video
48
>>> video.duration  # length in s
1.6016
>>> video.framerate  # frames per second
29.970089850329373
>>> video.shape  # frames, height, width, color channels
(48, 64, 64, 3)
>>> frame = video[0]  # access first frame
>>> frame = video[-1]  # access last frame
>>> for frame in video:
...     pass  # do_something_with(frame)
