Skip to main content
Archived

This project has been archived by its maintainers, and is no longer receiving any updates.

ffmpeg-progress

Python versions PyPI - Version GitHub tag (with filter) License GitHub commits since latest release (by SemVer including pre-releases) CodeQL QA Tests Coverage Status Documentation Status mypy pre-commit pydocstyle pytest Ruff Downloads Stargazers

@Tatsh Mastodon Follow

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)

Source distribution for ffmpeg-progress 0.0.6
File Size Uploaded
ffmpeg_progress-0.0.6.tar.gz 13.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ffmpeg-progress 0.0.6
File Interpreter ABI Platform
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 log

Release 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
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page