zprp-ffmpeg


Namezprp-ffmpeg JSON
Version 2.2.0 PyPI version JSON
download
home_pageNone
Summaryffmpeg filter graph bindings for python
upload_time2024-06-11 06:12:26
maintainerNone
docs_urlNone
authorYour Name
requires_python<4.0,>=3.8
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ===============
Design proposal
===============
Biblioteka ma za zadanie zastąpić i rozszerzyć istniejącą bibliotekę (https://github.com/kkroening/ffmpeg-python)

Minimalną funkcjonalność, którą chcemy zaimplementować, to ta oferowana przez powyższą bibliotekę, czyli korzystanie z grafów filtrów poprzez prosty interfejs. Poza tym, zależy nam na lepszej integracji z IDE (opisy filtrów w docstringach, typy argumentów), żeby ograniczyć potrzebę krążenia po dokumentacji FFmpeg.

====================
Stack technologiczny
====================
* szablon cookiecutter: https://github.com/ionelmc/cookiecutter-pylibrary
* dokumentacja sphinx
* linter ruff
* mypy do sprawdzanie statycznego typowania
* Poetry do budowania paczki
* tox do automatycznych testów
* CI/CD przy użyciu github actions (uruchomienie testów, budowanie paczki, aktualizacja Changelog)
* codecov do badania pokrycia testami kodu

=======================
Planowany rozkład jazdy
=======================
#. 18.03-24.03
    * Struktura projektu (cookiecutter)
    * Chcemy mieć możliwość uruchomienia testów, zbudowania dokumentacji (narazie pustej), zbudowania paczki.
#. 25.03-31.03
    * Podstawowa interakcja z procesem FFmpeg jako subproces
    * metody `input`, `output`
    * testy potwierdzające działanie
#. 01.04-07.04
    * metoda `filter`, `run`, `compile`
#. 08.04-14.04
    * implementacja części logiki grafu filtrów
    * jakiś podzbiór funkcjonalności np. `concat` tylko
#. 15.04-21.04
    * dalsza część logiki grafów
#. 22.04-28.04
    * poboczne metody: `probe`, `view`, `run_async`
#. 29.04-05.05
    * dodanie osobnych metod na popularne filtry np. `hfilp`.
    * ? automatyczna generacja metod z kodu źródłowego ffmpeg

Tygodnie 8-13 przewidziane na potencjalne przesunięcia w planie.

Dokumentacja będzie pisana regularnie wraz z kodem jako docstringi

========================
Możliwe ścieżki rozwouju
========================
* implementacja filtrów złożonych z wieloma wyjściami
* wygenerowanie pozostałych filtrów złożonych
* dodać podpowiedzi przy fluent interface
* dodać obsługę filtrów złożonych do view
* przyjmować wejście i wyjście nie tylko przez plik np. kamera na żywo

===========
ZPRP FFmpeg
===========

.. start-badges

.. list-table::
    :stub-columns: 1

    * - docs
      - |docs|
    * - tests
      - |github-actions| |codecov|
    * - package
      - |version| |wheel| |supported-versions| |supported-implementations| |commits-since|
.. |docs| image:: https://readthedocs.org/projects/zprp-ffmpeg/badge/?style=flat
    :target: https://readthedocs.org/projects/zprp-ffmpeg/
    :alt: Documentation Status

.. |github-actions| image:: https://github.com/ffmpeg-zprp/zprp-ffmpeg/actions/workflows/github-actions.yml/badge.svg
    :alt: GitHub Actions Build Status
    :target: https://github.com/ffmpeg-zprp/zprp-ffmpeg/actions

.. |codecov| image:: https://codecov.io/gh/ffmpeg-zprp/zprp-ffmpeg/branch/main/graphs/badge.svg?branch=main
    :alt: Coverage Status
    :target: https://app.codecov.io/gh/ffmpeg-zprp/zprp-ffmpeg

.. |version| image:: https://img.shields.io/pypi/v/zprp-ffmpeg.svg
    :alt: PyPI Package latest release
    :target: https://pypi.org/project/zprp-ffmpeg

.. |wheel| image:: https://img.shields.io/pypi/wheel/zprp-ffmpeg.svg
    :alt: PyPI Wheel
    :target: https://pypi.org/project/zprp-ffmpeg

.. |supported-versions| image:: https://img.shields.io/pypi/pyversions/zprp-ffmpeg.svg
    :alt: Supported versions
    :target: https://pypi.org/project/zprp-ffmpeg

.. |supported-implementations| image:: https://img.shields.io/pypi/implementation/zprp-ffmpeg.svg
    :alt: Supported implementations
    :target: https://pypi.org/project/zprp-ffmpeg

.. |commits-since| image:: https://img.shields.io/github/commits-since/ffmpeg-zprp/zprp-ffmpeg/v2.2.0.svg
    :alt: Commits since latest release
    :target: https://github.com/ffmpeg-zprp/zprp-ffmpeg/compare/v2.2.0...main



.. end-badges

Implementation of the successor to the ffmpeg-python library

* Free software: MIT license

============
Installation
============

The package is available on pip::

    pip install zprp_ffmpeg

===============
Getting started
===============

A minimal example showing basic usage of the library:

.. code-block:: python

    import zprp_ffmpeg
    stream = zprp_ffmpeg.input("input.mp4")
    stream = zprp_ffmpeg.hflip(stream)
    stream = zprp_ffmpeg.output(stream, "output.mp4")
    zprp_ffmpeg.run(stream)

Check out more `examples <https://github.com/ffmpeg-zprp/zprp-ffmpeg/tree/main/examples>`_

Further documentation is available at https://zprp-ffmpeg.readthedocs.io/en/latest/

===========
Development
===========

Project uses poetry for package management. Check out their `docs <https://python-poetry.org/docs/>`_ for installation steps.
Tests are managed by tox, which uses pytest under the hood.


To install package in development mode, enter the virtual environment managed by poetry, then use `install` command:

.. code-block:: bash

    poetry shell
    poetry install --with="typecheck"

To run tests on multiple python interpreters, build documentation, check for linting issues, run:

.. code-block:: bash

    tox

However, this might be cumbersome, since it requires having all supported python interpreters available. To run only selected interpreters, use :code:`-e` option, for example:

.. code-block:: bash

    tox -e py312-lin,check #python 3.12 on linux, and linter checks

You can view all defined interpreters with :code:`tox -l`

To check for typing and linting issues manually, run:

.. code-block:: bash

    mypy src
    pre-commit run --all-files


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "zprp-ffmpeg",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.8",
    "maintainer_email": null,
    "keywords": null,
    "author": "Your Name",
    "author_email": "you@example.com",
    "download_url": "https://files.pythonhosted.org/packages/fd/2d/d663fe6fe5cc456204c07f16ced43740eed5358cf1132aa4b3d53549a623/zprp_ffmpeg-2.2.0.tar.gz",
    "platform": null,
    "description": "===============\nDesign proposal\n===============\nBiblioteka ma za zadanie zast\u0105pi\u0107 i rozszerzy\u0107 istniej\u0105c\u0105 bibliotek\u0119 (https://github.com/kkroening/ffmpeg-python)\n\nMinimaln\u0105 funkcjonalno\u015b\u0107, kt\u00f3r\u0105 chcemy zaimplementowa\u0107, to ta oferowana przez powy\u017csz\u0105 bibliotek\u0119, czyli korzystanie z graf\u00f3w filtr\u00f3w poprzez prosty interfejs. Poza tym, zale\u017cy nam na lepszej integracji z IDE (opisy filtr\u00f3w w docstringach, typy argument\u00f3w), \u017ceby ograniczy\u0107 potrzeb\u0119 kr\u0105\u017cenia po dokumentacji FFmpeg.\n\n====================\nStack technologiczny\n====================\n* szablon cookiecutter: https://github.com/ionelmc/cookiecutter-pylibrary\n* dokumentacja sphinx\n* linter ruff\n* mypy do sprawdzanie statycznego typowania\n* Poetry do budowania paczki\n* tox do automatycznych test\u00f3w\n* CI/CD przy u\u017cyciu github actions (uruchomienie test\u00f3w, budowanie paczki, aktualizacja Changelog)\n* codecov do badania pokrycia testami kodu\n\n=======================\nPlanowany rozk\u0142ad jazdy\n=======================\n#. 18.03-24.03\n    * Struktura projektu (cookiecutter)\n    * Chcemy mie\u0107 mo\u017cliwo\u015b\u0107 uruchomienia test\u00f3w, zbudowania dokumentacji (narazie pustej), zbudowania paczki.\n#. 25.03-31.03\n    * Podstawowa interakcja z procesem FFmpeg jako subproces\n    * metody `input`, `output`\n    * testy potwierdzaj\u0105ce dzia\u0142anie\n#. 01.04-07.04\n    * metoda `filter`, `run`, `compile`\n#. 08.04-14.04\n    * implementacja cz\u0119\u015bci logiki grafu filtr\u00f3w\n    * jaki\u015b podzbi\u00f3r funkcjonalno\u015bci np. `concat` tylko\n#. 15.04-21.04\n    * dalsza cz\u0119\u015b\u0107 logiki graf\u00f3w\n#. 22.04-28.04\n    * poboczne metody: `probe`, `view`, `run_async`\n#. 29.04-05.05\n    * dodanie osobnych metod na popularne filtry np. `hfilp`.\n    * ? automatyczna generacja metod z kodu \u017ar\u00f3d\u0142owego ffmpeg\n\nTygodnie 8-13 przewidziane na potencjalne przesuni\u0119cia w planie.\n\nDokumentacja b\u0119dzie pisana regularnie wraz z kodem jako docstringi\n\n========================\nMo\u017cliwe \u015bcie\u017cki rozwouju\n========================\n* implementacja filtr\u00f3w z\u0142o\u017conych z wieloma wyj\u015bciami\n* wygenerowanie pozosta\u0142ych filtr\u00f3w z\u0142o\u017conych\n* doda\u0107 podpowiedzi przy fluent interface\n* doda\u0107 obs\u0142ug\u0119 filtr\u00f3w z\u0142o\u017conych do view\n* przyjmowa\u0107 wej\u015bcie i wyj\u015bcie nie tylko przez plik np. kamera na \u017cywo\n\n===========\nZPRP FFmpeg\n===========\n\n.. start-badges\n\n.. list-table::\n    :stub-columns: 1\n\n    * - docs\n      - |docs|\n    * - tests\n      - |github-actions| |codecov|\n    * - package\n      - |version| |wheel| |supported-versions| |supported-implementations| |commits-since|\n.. |docs| image:: https://readthedocs.org/projects/zprp-ffmpeg/badge/?style=flat\n    :target: https://readthedocs.org/projects/zprp-ffmpeg/\n    :alt: Documentation Status\n\n.. |github-actions| image:: https://github.com/ffmpeg-zprp/zprp-ffmpeg/actions/workflows/github-actions.yml/badge.svg\n    :alt: GitHub Actions Build Status\n    :target: https://github.com/ffmpeg-zprp/zprp-ffmpeg/actions\n\n.. |codecov| image:: https://codecov.io/gh/ffmpeg-zprp/zprp-ffmpeg/branch/main/graphs/badge.svg?branch=main\n    :alt: Coverage Status\n    :target: https://app.codecov.io/gh/ffmpeg-zprp/zprp-ffmpeg\n\n.. |version| image:: https://img.shields.io/pypi/v/zprp-ffmpeg.svg\n    :alt: PyPI Package latest release\n    :target: https://pypi.org/project/zprp-ffmpeg\n\n.. |wheel| image:: https://img.shields.io/pypi/wheel/zprp-ffmpeg.svg\n    :alt: PyPI Wheel\n    :target: https://pypi.org/project/zprp-ffmpeg\n\n.. |supported-versions| image:: https://img.shields.io/pypi/pyversions/zprp-ffmpeg.svg\n    :alt: Supported versions\n    :target: https://pypi.org/project/zprp-ffmpeg\n\n.. |supported-implementations| image:: https://img.shields.io/pypi/implementation/zprp-ffmpeg.svg\n    :alt: Supported implementations\n    :target: https://pypi.org/project/zprp-ffmpeg\n\n.. |commits-since| image:: https://img.shields.io/github/commits-since/ffmpeg-zprp/zprp-ffmpeg/v2.2.0.svg\n    :alt: Commits since latest release\n    :target: https://github.com/ffmpeg-zprp/zprp-ffmpeg/compare/v2.2.0...main\n\n\n\n.. end-badges\n\nImplementation of the successor to the ffmpeg-python library\n\n* Free software: MIT license\n\n============\nInstallation\n============\n\nThe package is available on pip::\n\n    pip install zprp_ffmpeg\n\n===============\nGetting started\n===============\n\nA minimal example showing basic usage of the library:\n\n.. code-block:: python\n\n    import zprp_ffmpeg\n    stream = zprp_ffmpeg.input(\"input.mp4\")\n    stream = zprp_ffmpeg.hflip(stream)\n    stream = zprp_ffmpeg.output(stream, \"output.mp4\")\n    zprp_ffmpeg.run(stream)\n\nCheck out more `examples <https://github.com/ffmpeg-zprp/zprp-ffmpeg/tree/main/examples>`_\n\nFurther documentation is available at https://zprp-ffmpeg.readthedocs.io/en/latest/\n\n===========\nDevelopment\n===========\n\nProject uses poetry for package management. Check out their `docs <https://python-poetry.org/docs/>`_ for installation steps.\nTests are managed by tox, which uses pytest under the hood.\n\n\nTo install package in development mode, enter the virtual environment managed by poetry, then use `install` command:\n\n.. code-block:: bash\n\n    poetry shell\n    poetry install --with=\"typecheck\"\n\nTo run tests on multiple python interpreters, build documentation, check for linting issues, run:\n\n.. code-block:: bash\n\n    tox\n\nHowever, this might be cumbersome, since it requires having all supported python interpreters available. To run only selected interpreters, use :code:`-e` option, for example:\n\n.. code-block:: bash\n\n    tox -e py312-lin,check #python 3.12 on linux, and linter checks\n\nYou can view all defined interpreters with :code:`tox -l`\n\nTo check for typing and linting issues manually, run:\n\n.. code-block:: bash\n\n    mypy src\n    pre-commit run --all-files\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "ffmpeg filter graph bindings for python",
    "version": "2.2.0",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fd2dd663fe6fe5cc456204c07f16ced43740eed5358cf1132aa4b3d53549a623",
                "md5": "48616f43918bbc1ad30abd1a165a35ad",
                "sha256": "18947be0757bf16f05a11ac0031baba52406e6ece6c17777ae7f011a408d8d70"
            },
            "downloads": -1,
            "filename": "zprp_ffmpeg-2.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "48616f43918bbc1ad30abd1a165a35ad",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.8",
            "size": 83353,
            "upload_time": "2024-06-11T06:12:26",
            "upload_time_iso_8601": "2024-06-11T06:12:26.426079Z",
            "url": "https://files.pythonhosted.org/packages/fd/2d/d663fe6fe5cc456204c07f16ced43740eed5358cf1132aa4b3d53549a623/zprp_ffmpeg-2.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-11 06:12:26",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "zprp-ffmpeg"
}
        
Elapsed time: 0.25773s