[19/09/2022]
- Add the ability to specify a
success_handlerargument, a function to run if the FFmpeg process completes successfully. - Add 0.001 to tqdm's
totalparameter to prevent the chance of gettingTqdmWarning: clamping frac to range [0, 1]
[21/12/2022]
- [v2.0.7] Fix
'estimated_size' referenced before assignmenterror. - [v2.0.7] The progress bar now uses 1 decimal place for seconds processed and total duration.
[22/12/2022]
- [v2.0.8] Add the ability to specify an
error_handlerargument, a function to run if the FFmpeg process encounters an error. - [v2.0.9] Fix a typo (commit da45a84)
[07/02/2022]
- [v2.1.0] Update function name to fix
'process_complete_handler' is not definederror.
[05/11/2023]
[22/04/2024]
- [v2.1.3] Fix issue #20
[28/04/2024]
- [v2.1.4] Fix issue #21
[02/05/2024]
[18/10/2024]
- [v2.1.6] Notify the user if the input filepath or filename is incorrect.
- [v2.1.7] Refactor to use threads and queues.
[19/10/2024]
[20/10/2024]
- [v2.1.9] Do not clear the terminal before showing the progress bar.
- [v2.2.0] Add the ability to set a custom description for the progress bar.
[22/10/2024]
- [v2.2.1] Only create a log file if the
log_fileparameter is specified and always create a log file if the FFmpeg process fails.
[28/10/2024]
- [v2.2.2] Make printing the detected duration of the input file optional.
[29/10/2024]
- [v2.3.0] Set
shell=Trueto support piping. - [v2.3.1] Kill FFmpeg process(es) on KeyboardInterrupt
[31/10/2024]
- [v2.4.0] Print FFmpeg stderr if better progress information cannot be shown.
- [v2.4.0] Flush the stream when printing FFmpeg stderr to ensure that it is printed immediately.
- [v2.5.0] Add an option to print FFmpeg stderr on a new line if better progress information cannot be shown.
[11/11/2024]
- [v2.5.1] Print the correct log file.
[12/11/2024]
- [v2.5.2] Drain any remaining FFmpeg stderr after the process ends.
- [v2.5.3] Write FFmpeg stderr to the log file in real time.
- [v2.5.4] Include progress info in stderr if the duration of the input file cannot be detected.
- [v2.5.5] Print detected errors in the terminal and only set
shell=Trueif shell operators are detected.
[13/11/2024]
- [v2.5.6] Detect a wider range of errors.
[18/11/2024]
- [v2.5.7] Fix syntax. Should fix issue #26
[19/11/2024]
- [v2.5.8] Remove
\nfrom replacement fields in f-strings. Should fix issue #26
[25/12/2024]
- [v2.6.0] Make printing the FFmpeg command being executed optional, remove progress bar on successful process completion and instead show
✓ Processed 100% of <input filename> - [v2.6.1] Disable duration printing by default and fix overwrite functionality.
[27/12/2024]
- [v3.0.0] [Refactor] Handle process success/failure through a return code instead of supplying success/error handler functions. Remove the ability to provide a custom progress handler.
- [v3.1.0] Inform the user that they can check out the log file if the FFmpeg process did not complete successfully.
[18/02/2025]
- [v3.2.0]
[23/02/2025]
- [v3.2.1]
- Leave FFmpeg encoding progress/statistics update frequency as the default of 2 times per second, instead of 10 times per second.
- Add a 0.5 seconds sleep at the start of the
while process.poll() is Noneloop to eliminate unnecessary iterations of this loop. - Use
Queue.get()instead ofQueue.get_nowait(). Non-blocking queue item retrieval is not needed due to thenot stdout_queue.empty()andnot stderr_queue.empty()checks. Because of these checks,get()will never block as we only run this code if the queue is not empty. Refer to issue #29 for context.
[26/02/2025]
- [v3.2.2] No longer create threads to read FFmpeg stdout and stderr.
[27/02/2025]
- [v3.2.3]
- No longer require ffmpeg-python, use ffprobe directly.
- Performance optimisations.
- [v3.2.4]
- Fix AttributeError.
- [v3.2.5]
- Fix issue #30
- [v3.2.6]
- Simplify the
_should_overwritemethod. - Refactor the
_terminatemethod.
- Simplify the
[08/06/2025]
- [v4.0.0]
- Make
return_codea property ofFfmpegProcess - Make
use_tqdma property ofFfmpegProcess - Create new files to separate some methods for easier maintainability.
- Add a file (test.py) for testing.
- Make
[10/06/2025]
- [v4.0.1] Add
"requests"toinstall_requires
[19/04/2026]
- [v4.1.0] Allow
self._ffmpeg_log_fileto be a file-like object.
[04/05/2026]
-
[v5.0.0]
- Removed the
return_codeproperty fromFfmpegProcess process.run()no longer returns the return code.- If the FFmpeg process fails, raise
FfmpegProcessError - Do not raise
FfmpegProcessErroronKeyboardInterrupt
- Removed the
-
[v5.1.0]
- Raise
ProgressBarErrorinprogress_bars.pyinstead of simply printing an error message.
- Raise
-
[v5.1.1]
- Removed redundant return code check from
better_ffmpeg_progress.pyas it's already handled inprogress_bars.py
- Removed redundant return code check from