Name | zprp-ffmpeg JSON |
Version |
2.2.0
JSON |
| download |
home_page | None |
Summary | ffmpeg filter graph bindings for python |
upload_time | 2024-06-11 06:12:26 |
maintainer | None |
docs_url | None |
author | Your Name |
requires_python | <4.0,>=3.8 |
license | MIT |
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"
}