Skip to main content

Run FFmpeg & see percentage progress + ETA.

Project description

better-ffmpeg-progress

Runs an FFmpeg command and shows the following in the terminal:

  • Percentage Progress
  • Speed
  • ETA (minutes and seconds)

Example: Progress: 25% | Speed: 22.3x | ETA: 1m 33s

Installation:

pip3 install better-ffmpeg-progress

Usage:

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

from better_ffmpeg_progress import FfmpegProcess
# Pass a list of FFmpeg arguments, like you would if using subprocess.run()
process = FfmpegProcess(["ffmpeg", "-i", "input.mp4", "-c:a", "libmp3lame", "output.mp3"])
# Use the run method to run the FFmpeg command. The progress information will be printed in the terminal.
process.run()

The run method takes the following optional arguments:

  • progress_handler

    • You can create a function if you wish to do something specific with the percentage progress, speed and ETA rather than it being printed in the format Progress: 25.6% | Speed: 22.3x | ETA: 1m 33s. The function will receive:
      • percentage progress (float, 1 decimal place), e.g. 25.6.
      • Speed (string), e.g. 22.3x.
      • ETA in seconds (float), e.g. 4.68984375.

    Here's an example:

    def handle_progress_info(percentage, speed, eta):
        print(f"The FFmpeg process is {percentage}% complete. ETA is {eta} seconds based on the current speed ({speed}).)
    

    Then you simply set the value of the progress_handler argument to the name of your function, like so:

    process.run(progress_handler=handle_progress_info)
    
  • ffmpeg_output_file

    • The ffmpeg_output_file argument allows you define where you want the output of FFmpeg to be saved. By default, this is saved in a folder named "ffmpeg_output", with the filename [<input_filename>].txt, but you can change this using the ffmpeg_output_file argument.

Here's an example where both the progress_handler and ffmpeg_output_file parameters are used:

process.run(progress_handler=handle_progress_info, ffmpeg_output_file="ffmpeg_log.txt")

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-1.2.4.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

better_ffmpeg_progress-1.2.4-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

Details for the file better-ffmpeg-progress-1.2.4.tar.gz.

File metadata

  • Download URL: better-ffmpeg-progress-1.2.4.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for better-ffmpeg-progress-1.2.4.tar.gz
Algorithm Hash digest
SHA256 2235fa38b31a3717492e453bb4dcc40cafc671d71ca5a1753e9ed9f7be224b62
MD5 2c99b6e5afe03f1e9fbc7e07b765d76b
BLAKE2b-256 c57df8695b7ffcb41a59bb7e9e5baba0e6f323e7055f6d6f5a29ec3aec0a8135

See more details on using hashes here.

File details

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

File metadata

  • Download URL: better_ffmpeg_progress-1.2.4-py3-none-any.whl
  • Upload date:
  • Size: 5.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for better_ffmpeg_progress-1.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 d4105d1a8a2de285518c5d07ceebf02b6cee3908b455e35cf9857f784670d61f
MD5 b064392d94e7cefea80aecf5c92ddfb0
BLAKE2b-256 573ab3e6453fc12075702c964ae9001af6ff3b54e3591aaab10342b746e9c596

See more details on using hashes here.

Supported by

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