vidsrc


Namevidsrc JSON
Version 2025.1.6 PyPI version JSON
download
home_pagehttps://www.cgohlke.com
SummaryVideo Frameserver for Numpy
upload_time2025-01-05 21:37:11
maintainerNone
docs_urlNone
authorChristoph Gohlke
requires_python>=3.10
licenseBSD
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            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.1.6

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.10.11, 3.11.9, 3.12.8, 3.13.1 64-bit
- `NumPy <https://pypi.org/project/numpy/>`_ 2.2.1
- Microsoft Visual Studio 2022 (build)
- DirectX 9.0c SDK (build)
- DirectShow BaseClasses include files (build)
- DirectShow STRMBASE.lib (build)

Revisions
---------

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)

            

Raw data

            {
    "_id": null,
    "home_page": "https://www.cgohlke.com",
    "name": "vidsrc",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": null,
    "author": "Christoph Gohlke",
    "author_email": "cgohlke@cgohlke.com",
    "download_url": "https://files.pythonhosted.org/packages/e6/f7/f73f44522ef2cd8dde3eb6e893018bf682051e77068d2f714a4cf405714b/vidsrc-2025.1.6.tar.gz",
    "platform": "Windows",
    "description": "Video Frameserver for Numpy\r\n===========================\r\n\r\nVidsrc is a Python library to read frames from video files as numpy arrays\r\nvia the DirectShow IMediaDet interface.\r\n\r\n:Author: `Christoph Gohlke <https://www.cgohlke.com>`_\r\n:License: BSD 3-Clause\r\n:Version: 2025.1.6\r\n\r\nQuickstart\r\n----------\r\n\r\nInstall the vidsrc package and all dependencies from the\r\n`Python Package Index <https://pypi.org/project/vidsrc/>`_::\r\n\r\n    python -m pip install -U vidsrc\r\n\r\nSee `Examples`_ for using the programming interface.\r\n\r\nSource code and support are available on\r\n`GitHub <https://github.com/cgohlke/vidsrc>`_.\r\n\r\nRequirements\r\n------------\r\n\r\nThis revision was tested with the following requirements and \r\ndependencies (other versions may work):\r\n\r\n- `CPython <https://www.python.org>`_ 3.10.11, 3.11.9, 3.12.8, 3.13.1 64-bit\r\n- `NumPy <https://pypi.org/project/numpy/>`_ 2.2.1\r\n- Microsoft Visual Studio 2022 (build)\r\n- DirectX 9.0c SDK (build)\r\n- DirectShow BaseClasses include files (build)\r\n- DirectShow STRMBASE.lib (build)\r\n\r\nRevisions\r\n---------\r\n\r\n2025.1.6\r\n\r\n- Add type hints.\r\n- Drop support for Python 3.9, support Python 3.13 and NumPy 2.\r\n\r\n2024.1.6\r\n\r\n- Support Python 3.12.\r\n- Drop support for Python 3.8 and NumPy 1.22 (NEP 29).\r\n\r\n2022.9.28\r\n\r\n- Update metadata.\r\n\r\n2021.6.6\r\n\r\n- Drop support for Python 3.6 (NEP 29).\r\n- Fix compile error on PyPy3.\r\n\r\n2020.1.1\r\n\r\n- Drop support for Python 2.7 and 3.5.\r\n\r\nNotes\r\n-----\r\n\r\nThe DirectShow IMediaDet interface is deprecated and may be removed from\r\nfuture releases of Windows\r\n(https://docs.microsoft.com/en-us/windows/desktop/directshow/imediadet).\r\n\r\nTo fix compile\r\n``error C2146: syntax error: missing ';' before identifier 'PVOID64'``,\r\nchange ``typedef void * POINTER_64 PVOID64;``\r\nto ``typedef void * __ptr64 PVOID64;``\r\nin ``winnt.h``.\r\n\r\nExamples\r\n--------\r\n\r\n>>> from vidsrc import VideoSource\r\n>>> video = VideoSource('test.avi', grayscale=False)\r\n>>> len(video)  # number of frames in video\r\n48\r\n>>> video.duration  # length in s\r\n1.6016\r\n>>> video.framerate  # frames per second\r\n29.970089850329373\r\n>>> video.shape  # frames, height, width, color channels\r\n(48, 64, 64, 3)\r\n>>> frame = video[0]  # access first frame\r\n>>> frame = video[-1]  # access last frame\r\n>>> for frame in video:\r\n...     pass  # do_something_with(frame)\r\n",
    "bugtrack_url": null,
    "license": "BSD",
    "summary": "Video Frameserver for Numpy",
    "version": "2025.1.6",
    "project_urls": {
        "Bug Tracker": "https://github.com/cgohlke/vidsrc/issues",
        "Homepage": "https://www.cgohlke.com",
        "Source Code": "https://github.com/cgohlke/vidsrc"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2a788a4f66b195c450cf0961cfc56f2aa126b7df68cbbacbd28902b51c2cc601",
                "md5": "1360c9b2084b1c1fc88c965dc11c236e",
                "sha256": "6f74e6a4aa25e4e7b6336304bd07c2f43207610bf127e67fb3f45a3ce1b9e0cf"
            },
            "downloads": -1,
            "filename": "vidsrc-2025.1.6-cp310-cp310-win32.whl",
            "has_sig": false,
            "md5_digest": "1360c9b2084b1c1fc88c965dc11c236e",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 15019,
            "upload_time": "2025-01-05T21:36:49",
            "upload_time_iso_8601": "2025-01-05T21:36:49.117433Z",
            "url": "https://files.pythonhosted.org/packages/2a/78/8a4f66b195c450cf0961cfc56f2aa126b7df68cbbacbd28902b51c2cc601/vidsrc-2025.1.6-cp310-cp310-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "50dd26d7dd17a51cd148cbb448176ac653d1af7c0353ea75938445b7aa86cd67",
                "md5": "010d4ba8dbc7d951f44535a57cf95f8f",
                "sha256": "9d1f8d19581d23e31fc88b04242de2849d7e989acd1c721a88e2cc3ff356927a"
            },
            "downloads": -1,
            "filename": "vidsrc-2025.1.6-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "010d4ba8dbc7d951f44535a57cf95f8f",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 15855,
            "upload_time": "2025-01-05T21:36:52",
            "upload_time_iso_8601": "2025-01-05T21:36:52.316648Z",
            "url": "https://files.pythonhosted.org/packages/50/dd/26d7dd17a51cd148cbb448176ac653d1af7c0353ea75938445b7aa86cd67/vidsrc-2025.1.6-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2cd9825b422acaf2db355bf2926473fb187c2f2821c852a761071ac886d0d5a7",
                "md5": "cde6202d239d3e5e781390686ff8e964",
                "sha256": "28893789a4c3994542c079b9430f6a6bc0548d65b1e0d46692ab41137bdac379"
            },
            "downloads": -1,
            "filename": "vidsrc-2025.1.6-cp311-cp311-win32.whl",
            "has_sig": false,
            "md5_digest": "cde6202d239d3e5e781390686ff8e964",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 15022,
            "upload_time": "2025-01-05T21:36:55",
            "upload_time_iso_8601": "2025-01-05T21:36:55.216068Z",
            "url": "https://files.pythonhosted.org/packages/2c/d9/825b422acaf2db355bf2926473fb187c2f2821c852a761071ac886d0d5a7/vidsrc-2025.1.6-cp311-cp311-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "592cff49c2c36e887796babe11ebd64ef381b792371147c6bdc573192b4a912d",
                "md5": "19affc664efdc466472ce5ab7572aec2",
                "sha256": "31d87b71fb8ece4e6daaf58d6d19ae1d0ee65bf903c45d384c092ea95391dea4"
            },
            "downloads": -1,
            "filename": "vidsrc-2025.1.6-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "19affc664efdc466472ce5ab7572aec2",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 15861,
            "upload_time": "2025-01-05T21:36:57",
            "upload_time_iso_8601": "2025-01-05T21:36:57.343520Z",
            "url": "https://files.pythonhosted.org/packages/59/2c/ff49c2c36e887796babe11ebd64ef381b792371147c6bdc573192b4a912d/vidsrc-2025.1.6-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a1e42cdfd3f48072657c0d070871fda35736dd059fc8dd8cb047fcf427bc28ac",
                "md5": "6518b72ccb09a9807ade01f522ee52b9",
                "sha256": "5bb5b705ad34e1a3884e4352e7a2601a2332dbed2dd598f3ddb315277c0ecfe3"
            },
            "downloads": -1,
            "filename": "vidsrc-2025.1.6-cp311-cp311-win_arm64.whl",
            "has_sig": false,
            "md5_digest": "6518b72ccb09a9807ade01f522ee52b9",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 14569,
            "upload_time": "2025-01-05T21:36:59",
            "upload_time_iso_8601": "2025-01-05T21:36:59.402261Z",
            "url": "https://files.pythonhosted.org/packages/a1/e4/2cdfd3f48072657c0d070871fda35736dd059fc8dd8cb047fcf427bc28ac/vidsrc-2025.1.6-cp311-cp311-win_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c652f10f3f8ba91b3fa438a17f26f51dd538b292343f86ab39b54a5b0d1ab1ae",
                "md5": "08c2c3ed9f12f4167b05494282944129",
                "sha256": "980efc1b0f9a6968823c1f6be2b7ba7efe369b259604eff5bceeab3045f976e1"
            },
            "downloads": -1,
            "filename": "vidsrc-2025.1.6-cp312-cp312-win32.whl",
            "has_sig": false,
            "md5_digest": "08c2c3ed9f12f4167b05494282944129",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 15067,
            "upload_time": "2025-01-05T21:37:03",
            "upload_time_iso_8601": "2025-01-05T21:37:03.069246Z",
            "url": "https://files.pythonhosted.org/packages/c6/52/f10f3f8ba91b3fa438a17f26f51dd538b292343f86ab39b54a5b0d1ab1ae/vidsrc-2025.1.6-cp312-cp312-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "683cf405996220becbdfac21b0258fd3557c3cfc384aa880d0ae066cf4a14a1e",
                "md5": "48759b378d19ff577496a0837b2edc35",
                "sha256": "ffff5742d59581f18c0f3eb275aa2734b5f15d6308a67dfdb570b60b53b9fe7e"
            },
            "downloads": -1,
            "filename": "vidsrc-2025.1.6-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "48759b378d19ff577496a0837b2edc35",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 15880,
            "upload_time": "2025-01-05T21:37:03",
            "upload_time_iso_8601": "2025-01-05T21:37:03.951009Z",
            "url": "https://files.pythonhosted.org/packages/68/3c/f405996220becbdfac21b0258fd3557c3cfc384aa880d0ae066cf4a14a1e/vidsrc-2025.1.6-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5aa767ef4c886f694b95257dd0dfd2278283db2bb1207b12750ff6d05bf970f6",
                "md5": "1cedeeaab60a9da4e53d16c91be2b4b5",
                "sha256": "e0f0919bd929bdc95924cc59de4444df884b784e2ccf276dc95900eb08f3e1eb"
            },
            "downloads": -1,
            "filename": "vidsrc-2025.1.6-cp312-cp312-win_arm64.whl",
            "has_sig": false,
            "md5_digest": "1cedeeaab60a9da4e53d16c91be2b4b5",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 14549,
            "upload_time": "2025-01-05T21:37:06",
            "upload_time_iso_8601": "2025-01-05T21:37:06.060084Z",
            "url": "https://files.pythonhosted.org/packages/5a/a7/67ef4c886f694b95257dd0dfd2278283db2bb1207b12750ff6d05bf970f6/vidsrc-2025.1.6-cp312-cp312-win_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c41f84edb072712dd782e008893c57578d0a1c49de7df96c7257dffc60a5e04b",
                "md5": "48e3e9259013ffe2aa520abc65e66fba",
                "sha256": "4668fad0afd535353ebe9d8214f311fb74f0402ffa650f17254817aff2a9a0cb"
            },
            "downloads": -1,
            "filename": "vidsrc-2025.1.6-cp313-cp313-win32.whl",
            "has_sig": false,
            "md5_digest": "48e3e9259013ffe2aa520abc65e66fba",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 15058,
            "upload_time": "2025-01-05T21:37:06",
            "upload_time_iso_8601": "2025-01-05T21:37:06.961495Z",
            "url": "https://files.pythonhosted.org/packages/c4/1f/84edb072712dd782e008893c57578d0a1c49de7df96c7257dffc60a5e04b/vidsrc-2025.1.6-cp313-cp313-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a3f82423cf8ef33db77aaf69e4fb63351167c206dff10bcf1e406ae30cebbfda",
                "md5": "f50f4ba82306f58263bfdd2ba291372f",
                "sha256": "214f39bb7c6304da3bffc3f36abd0c95c24a37806115648b46006caddee2f725"
            },
            "downloads": -1,
            "filename": "vidsrc-2025.1.6-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "f50f4ba82306f58263bfdd2ba291372f",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 15875,
            "upload_time": "2025-01-05T21:37:08",
            "upload_time_iso_8601": "2025-01-05T21:37:08.978747Z",
            "url": "https://files.pythonhosted.org/packages/a3/f8/2423cf8ef33db77aaf69e4fb63351167c206dff10bcf1e406ae30cebbfda/vidsrc-2025.1.6-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2914ea330a1b13de4d10a6b46d7591e84bb7a6f7272cbc795f5d9c72fb89a29a",
                "md5": "9659d0dc20b08b23de220fe971bccbb6",
                "sha256": "8c1677ef199088a8ecb1cb3c6b620918779b09c18502f281401dd612767f9e23"
            },
            "downloads": -1,
            "filename": "vidsrc-2025.1.6-cp313-cp313-win_arm64.whl",
            "has_sig": false,
            "md5_digest": "9659d0dc20b08b23de220fe971bccbb6",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 14541,
            "upload_time": "2025-01-05T21:37:09",
            "upload_time_iso_8601": "2025-01-05T21:37:09.876620Z",
            "url": "https://files.pythonhosted.org/packages/29/14/ea330a1b13de4d10a6b46d7591e84bb7a6f7272cbc795f5d9c72fb89a29a/vidsrc-2025.1.6-cp313-cp313-win_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f04b8e61491f4c17b826db5be48a84b9ca5f008af07459528725723034e6ba53",
                "md5": "55685c2e0cd52f58e04e683122ff87e2",
                "sha256": "af9ba12474ba95321cfb8bd697078d0ff7ad3dd680dd3611667157f82e060cc2"
            },
            "downloads": -1,
            "filename": "vidsrc-2025.1.6-pp310-pypy310_pp73-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "55685c2e0cd52f58e04e683122ff87e2",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.10",
            "size": 15883,
            "upload_time": "2025-01-05T21:37:10",
            "upload_time_iso_8601": "2025-01-05T21:37:10.876685Z",
            "url": "https://files.pythonhosted.org/packages/f0/4b/8e61491f4c17b826db5be48a84b9ca5f008af07459528725723034e6ba53/vidsrc-2025.1.6-pp310-pypy310_pp73-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e6f7f73f44522ef2cd8dde3eb6e893018bf682051e77068d2f714a4cf405714b",
                "md5": "e95d55a7c089bdf483b9f6934f3db826",
                "sha256": "cbf5a86364abe6896ec9cdd7bab3e831775855f612414f7589cdd2dfa3b4ec11"
            },
            "downloads": -1,
            "filename": "vidsrc-2025.1.6.tar.gz",
            "has_sig": false,
            "md5_digest": "e95d55a7c089bdf483b9f6934f3db826",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 148882,
            "upload_time": "2025-01-05T21:37:11",
            "upload_time_iso_8601": "2025-01-05T21:37:11.916159Z",
            "url": "https://files.pythonhosted.org/packages/e6/f7/f73f44522ef2cd8dde3eb6e893018bf682051e77068d2f714a4cf405714b/vidsrc-2025.1.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-05 21:37:11",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "cgohlke",
    "github_project": "vidsrc",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "vidsrc"
}
        
Elapsed time: 0.51315s