This project has been archived by its maintainers, and is no longer receiving any updates.
ffmpeg-progress
Deprecated
I am no longer maintaining this project. Please seek alternatives:
Overview
Get progress information for an ffmpeg process.
This script is based on the work of Rupert Plumridge.
Installation
Poetry
poetry add ffmpeg-progress
Pip
pip install ffmpeg-progress
Usage
Usage: ffmpeg-progress [OPTIONS] FILE
Entry point for shell use.
Options:
-h, --help Show this message and exit.
All unknown arguments passed to ffmpeg-progress are passed on to ffmpeg.
Library usage
import subprocess as sp
import sys
from ffmpeg_progress import start
def ffmpeg_callback(in_file: str, outfile: str, vstats_path: str):
return sp.Popen(['ffmpeg',
'-nostats',
'-loglevel', '0',
'-y',
'-vstats_file', vstats_path,
'-i', in_file,
outfile]).pid
def on_message_handler(percent: float,
fr_cnt: int,
total_frames: int,
elapsed: float):
sys.stdout.write('\r{:.2f}%'.format(percent))
sys.stdout.flush()
start('my input file.mov',
'some output file.mp4',
ffmpeg_callback,
on_message=on_message_handler,
on_done=lambda: print(''),
wait_time=1) # seconds
start() is the main function to use. If on_message is not passed, a default function is used.
The on_done argument is optional. The initial_wait_time keyword argument can be used to specify
a time to wait before processing the log.
The ffmpeg callback must return a PID (int). It is recommended to pass -nostats -loglevel 0
to your ffmpeg process. The ffmpeg callback also must pass -vstats_file given the path from the
callback argument.
ffprobe
An ffprobe front-end function is included. Usage:
from ffmpeg_progress import ffprobe
ffprobe('my file.mp4') # returns a dict()
Release files for ffmpeg-progress 0.0.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ffmpeg_progress-0.0.6.tar.gz | 13.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ffmpeg_progress-0.0.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.5 kB
Release files / ffmpeg_progress-0.0.6.tar.gz
| Download URL | ffmpeg_progress-0.0.6.tar.gz |
|---|---|
| Size | 13.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
28bf201086df4d59ab8875604ea98369701c7028239f0556dbd08944c61d2617
|
|
BLAKE2b-256 checksum How to use checksums |
d638101c84779d1898fb5759cd3de46416d7c4908e2fb51e33ee8617eba0b97b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2025.
Transparency logRelease files / ffmpeg_progress-0.0.6-py3-none-any.whl
| Download URL | ffmpeg_progress-0.0.6-py3-none-any.whl |
|---|---|
| Size | 10.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
68745a4167b6a9a6d682f343679cda538178a0c705f977b21419d16df69836c6
|
|
BLAKE2b-256 checksum How to use checksums |
ae263993391c296155905616a285225113503a2ed9969226375ca2a82819ac66
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2025.
Transparency log