Socket
Book a DemoInstallSign in
Socket

better-ffmpeg-progress

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

better-ffmpeg-progress

Run FFmpeg & see percentage progress + ETA.

pipPyPI
Version
4.0.1
Maintainers
1

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

Keywords

ffmpeg

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.