in reply to ffmpeg console progress bar

my $frametotal,$fwide,$fhigh;

You need to enclose the list of variables in parentheses or my will only work on $frametotal.

my ( $frametotal, $fwide, $fhigh );


That is usually written as:

push @vcmd, "-vf", "scale=min(1280\\,iw):-1";

if($a eq "progress") { my $pcent=$prog{"frame"}/$frametotal*100; my $hcent=int($pcent/2); my $bar="[".("#" x $hcent).(" " x (50-$hcent))." ] "; $bar .=sprintf("%.2f",$pcent)."% fps=".$prog{"fps"}; print "\r$bar"; }

I would probably write that as:

next if $x ne 'progress'; my $pcent = $prog{ frame } / $frametotal * 100; printf '%s[%-50s ] %.2f%% fps=%s', "\r", '#' x int( $pcent / 2 ), +$pcent, $prog{ fps };