Run FFmpeg & see percentage progress + ETA.
Project description
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.webmis the description of the progresss bar.23%is the percentage progress.0:00:04is the time elapsed.00:15is 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.txtprint_detected_duration- Print the detected duration of the input file. Default:Falseprint_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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file better_ffmpeg_progress-4.0.1.tar.gz.
File metadata
- Download URL: better_ffmpeg_progress-4.0.1.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b381e490c8e3963a1d64fe0ea90ca4b6c2d19e87f2af81c75f04a4a9546ba9c
|
|
| MD5 |
62f76bdf3aca31ec52c03a8e6bd38db9
|
|
| BLAKE2b-256 |
7c227ce831760a0f9966ec3cd541b6536d2d1c7cb8d9e8269702de0de2507fe7
|
File details
Details for the file better_ffmpeg_progress-4.0.1-py3-none-any.whl.
File metadata
- Download URL: better_ffmpeg_progress-4.0.1-py3-none-any.whl
- Upload date:
- Size: 12.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
24f22d171318033ae78c260b855054278a0576e4adacafcba4824ffeb18063df
|
|
| MD5 |
705ab4f5adbfec8129885826fe4aaf97
|
|
| BLAKE2b-256 |
ad8768426ec881647e5e7df6f1fe8ecf2de1a8cca093aba46ae6fe94c5fcdd0a
|