=head1 NAME

ffmpeg-progress-yield - Run FFmpeg commands with progress reporting

=head1 SYNOPSIS

B<ffmpeg-progress-yield> [OPTIONS] F<FFMPEG_COMMAND>...

=head1 DESCRIPTION

B<ffmpeg-progress-yield> is a utility that executes a specified FFmpeg command
and provides real-time progress updates. By parsing the timing information from
FFmpeg's output, it updates the current percentage of the task. By default, it
displays the status as progress bar.

Upon completion of the FFmpeg command, any log messages generated during the
execution will be written to C<STDERR>. 

=head1 OPTIONS

=over 4

=item B<-h>, B<--help>

Print a help message and exit.

=item B<-d> C<DURATION>, B<--duration> C<DURATION>

Override the duration of the video in seconds.

=item B<-p>, B<--progress-only>

Only report the progress of the FFmpeg command and do not print the FFmpeg log
at exit.

=item B<-x>, B<--exclude-progress>

Exclude the parsed progress lines from the FFmpeg log.

=item B<-l> C<LOGFILE>, B<--log-file> C<LOGFILE>

Send the FFmpeg log at exit to the specified LOGFILE. By default, it is send to
C<STDERR>.

=back

=head1 ENVIRONMENT

=over 4

=item B<FFMPEG_PROGRESS_NO_TQDM>

If C<FFMPEG_PROGRESS_NO_TQDM> is set, the progress bar is disabled, and a
simple textual representation of the progress is displayed instead.

=back

=head1 EXAMPLES

  ffmpeg-progress-yield ffmpeg -i input.mp4 -c:v libx264 output.mp4

=head1 AUTHOR

Alexander Sulfrian, 2025
