Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/althonos/ffpb

A progress bar for ffmpeg. Yay !
https://github.com/althonos/ffpb

cli ffmpeg ffmpeg-command progress-bar python-script

Last synced: about 2 months ago
JSON representation

A progress bar for ffmpeg. Yay !

Awesome Lists containing this project

README

        

``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 `_ is expected.
Check `althonos/ffpb#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/