Skip to main content

Run FFmpeg & see percentage progress + ETA.

Project description

PyPI downloads PyPI downloads PyPI - Version GitHub

Better FFmpeg Progress

Runs an FFmpeg command and shows a progress bar with percentage progress, time elapsed and ETA.

The Rich library is used for the progress bar by default, tqdm will be used if you pass use_tqdm=True to the run method.

FFmpeg outputs something like:

frame=  692 fps= 58 q=28.0 size=    5376KiB time=00:00:28.77 bitrate=1530.3kbits/s speed=2.43x

Better FFmpeg Progress outputs something like:

⠏ Processing abc.webm ━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  23% 0:00:04 00:15

Where:

  • Processing abc.webm is the description of the progresss bar.
  • 23% is the percentage progress.
  • 0:00:04 is the time elapsed.
  • 00:15 is the estimated time until the FFmpeg process completes.

As you can see, the output of Better FFmpeg Progress is much more useful.

Installation

pip install better-ffmpeg-progress --upgrade

Usage

Create an instance of the FfmpegProcess class and supply a list of arguments like you would to subprocess.run() or subprocess.Popen().

Example:

from better_ffmpeg_progress import FfmpegProcess, FfmpegProcessError

command = [
    "ffmpeg",
    "-i",
    "https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4",
    "-c:v",
    "libx264",
    "-preset",
    "ultrafast",
    "-c:a",
    "copy",
    "-f",
    "null",
    "-",
]

try:
    process = FfmpegProcess(command)
    # Uncomment the line below if you want to use tqdm instead of rich for the progress bar
    # process.use_tqdm = True

    # Run the FFmpeg command and show a progress bar
    process.run()
    # The FFmpeg process failed if the return code is not 0
    if process.return_code != 0:
        pass
except FfmpegProcessError as e:
    print(f"An error occurred when running the better-ffmpeg-process package:\n{e}")

Optional Arguments

An instance of the FfmpegProcess class takes the following optional arguments:

  • ffmpeg_log_level - Desired FFmpeg log level. Default: "verbose"
  • ffmpeg_log_file - The filepath to save the FFmpeg log to. Default: <input filename>_log.txt
  • print_detected_duration - Print the detected duration of the input file. Default: False
  • print_stderr_new_line - If better progress information cannot be shown, print FFmpeg stderr in a new line instead of replacing the current line in the terminal. Default: False

The run method takes the following optional arguments:

  • print_command - Print the FFmpeg command being executed. Default: False

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

better_ffmpeg_progress-4.1.0.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

better_ffmpeg_progress-4.1.0-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file better_ffmpeg_progress-4.1.0.tar.gz.

File metadata

  • Download URL: better_ffmpeg_progress-4.1.0.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.13.0

File hashes

Hashes for better_ffmpeg_progress-4.1.0.tar.gz
Algorithm Hash digest
SHA256 cbe2c3ff45b05daee1e8b4a8e02b113a74914ab3e6d439670135ca14c63785d5
MD5 fa80f544210343638f46547344b40f64
BLAKE2b-256 8dda3307f34659abfb049f5abb086b2cecbb2b9c7319cb412d603936098d11f1

See more details on using hashes here.

File details

Details for the file better_ffmpeg_progress-4.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for better_ffmpeg_progress-4.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4141a37d82fb277937bb31d8ecac80f0cc9510e0d8958b41b2ca1b1e02a274da
MD5 ad1469e781947afda69f9eddb4d31ee8
BLAKE2b-256 9ca8c3ae60e7e68888d68e42a025d5f52492907c610fa2c0c72a9b96e1042ce2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page