Skip to main content

Run FFmpeg & see percentage progress + ETA.

Project description

Better FFmpeg Progress

Runs an FFmpeg command and uses tqdm to show a progress bar. Here's an example:

39%|███████████████████████████████████████████ | 23.581/60.226 [00:19<00:34, 1.07s/s]

Where:

  • 39% is the percentage progress.
  • 23.581 seconds of the input file have been processed.
  • 00:19 is the time elapsed since the FFmpeg process started.
  • 00:34 is the estimated time required for the FFmpeg process to complete.
  • 1.07 shows how many seconds of the input file are processed per second.

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 want to retrieve the percentage progress, speed and ETA rather to do something specific with the aforementioned metrics. The function will receive:

      • Percentage progress (float)
      • Speed (string), e.g. 22.3x
      • ETA in seconds (float)

      Here's an example of a progress handler that you can create:

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

Uploaded Source

Built Distribution

better_ffmpeg_progress-1.3.2-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: better-ffmpeg-progress-1.3.2.tar.gz
  • Upload date:
  • Size: 4.3 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.3.2.tar.gz
Algorithm Hash digest
SHA256 31ceb1169910f9caa87847311d93f1800b0168570687b30c3e6cf94b19ef533c
MD5 3c06b92805246a4a46781b768f173a47
BLAKE2b-256 0d8eaf4f3a40668d6ac9a09a4a7e29e9a8c64998d5119b2e44fe37da296a4c0f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: better_ffmpeg_progress-1.3.2-py3-none-any.whl
  • Upload date:
  • Size: 5.4 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.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e78f149a1f47b5dae023dc6b8d30b97527054f4bdf7528064248d6f24676b740
MD5 367e6d4593b2b9b132f8836fec731134
BLAKE2b-256 0fb4ddb4c0caead059e6027ae52e0b56436983732f4fe0db9709ea03f1a09eea

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