ffpb
ffpb copied to clipboard
A progress bar for ffmpeg. Yay !
ffpb |stars|
.. |stars| image:: https://img.shields.io/github/stars/althonos/ffpb.svg?style=social&maxAge=3600&label=Star :target: https://github.com/althonos/ffpb/stargazers
Not smart. Not comprehensive. Not guaranteed to work.
|Source| |PyPI| |AppVeyor| |Format| |License| |Changelog| |Downloads|
.. |PyPI| image:: https://img.shields.io/pypi/v/ffpb.svg?style=flat-square&maxAge=300 :target: https://pypi.python.org/pypi/ffpb
.. |AppVeyor| image:: https://img.shields.io/appveyor/build/althonos/ffpb.svg?style=flat-square&maxAge=3600 :target: https://ci.appveyor.com/project/althonos/ffpb
.. |Format| image:: https://img.shields.io/pypi/format/ffpb.svg?style=flat-square&maxAge=300 :target: https://pypi.python.org/pypi/ffpb
.. |Versions| image:: https://img.shields.io/pypi/pyversions/ffpb.svg?style=flat-square&maxAge=300 :target: https://travis-ci.org/althonos/ffpb/
.. |License| image:: https://img.shields.io/pypi/l/ffpb.svg?style=flat-square&maxAge=300 :target: https://choosealicense.com/licenses/mit/
.. |Source| image:: https://img.shields.io/badge/source-GitHub-303030.svg?maxAge=3600&style=flat-square :target: https://github.com/althonos/ffpb/
.. |Changelog| image:: https://img.shields.io/badge/keep%20a-changelog-8A0707.svg?maxAge=2678400&style=flat-square :target: http://keepachangelog.com/
.. |Downloads| image:: https://img.shields.io/badge/dynamic/json?style=flat-square&color=303f9f&maxAge=86400&label=downloads&query=%24.total_downloads&url=https%3A%2F%2Fapi.pepy.tech%2Fapi%2Fprojects%2Fffpb :target: https://pepy.tech/project/ffpb
ffpb is an FFmpeg progress formatter. It will attempt to display a nice
progress bar in the output, based on the raw ffmpeg output, as well as an
adaptative ETA timer.
Showcase
.. image:: https://github.com/althonos/ffpb/raw/master/static/showcase.v1.gif
(yes, my laptop can't encode shit)
Usage
ffpb is is not even self-aware. Any argument given to the ffpb command
is transparently given to the ffmpeg binary on your system, without any form
of validation. So if you know how to use the FFmpeg CLI, you know how to use
ffpb !
Using as a library ^^^^^^^^^^^^^^^^^^
ffpb can be used as a library: use the ffpb.main function:
.. code:: python
ffpb.main(argv=None, stream=sys.stderr, encoding=None, tqdm=tqdm):
argv
The arguments to pass to ffmpeg, as an argument list.
stream
The stream to which to write the progress bar and the output messages.
encoding
The encoding of the terminal, used to decode the ffmpeg output.
Defaults to locale.getpreferredencoding(), or UTF-8 is locales are
not available.
tqdm
The progress bar factory to use. A subclass of
tqdm.tqdm <https://tqdm.github.io/docs/tqdm/#tqdm-objects>_ is expected.
Check althonos/ffpb#19 <https://github.com/althonos/ffpb/issues/19>_ to
see how you can use this to wrap ffpb in your own UI.
Installation
Install from PyPI:
.. code:: console
$ pip install --user ffpb
Alternatively, download a development version from the GitHub master branch:
.. code:: console
$ pip install https://github.com/althonos/ffpb/archive/master.zip
Or if you use an Arch-based distro, download from the AUR__
.. __: https://aur.archlinux.org/packages/ffpb/