e21bc3443d
I don't remember why I allowed a gui into the repository in the first place. There's nothing that makes this one special relative to all the other x264 guis. avc2avi doesn't compile since we removed the bitstream reader. And avc doesn't belong in avi.
53 lines
1.3 KiB
Perl
Executable File
53 lines
1.3 KiB
Perl
Executable File
#!/bin/env perl
|
|
# countquant_x264.pl: displays statistics from x264 multipass logfiles
|
|
# by Loren Merritt, 2005-4-5
|
|
|
|
@size{I,P,B} =
|
|
@n{I,P,B} = (0)x3;
|
|
|
|
sub proc_file {
|
|
my $fh = shift;
|
|
while(<$fh>) {
|
|
/type:(.) q:(\d+\.\d+) tex:(\d+) mv:(\d+) misc:(\d+)/ or next;
|
|
$type = uc $1;
|
|
$n{$type} ++;
|
|
$q[int($2+.5)] ++;
|
|
$avgq += $2;
|
|
$avgq{$type} += $2;
|
|
my $bytes = ($3+$4+$5)/8;
|
|
$size{$type} += $bytes;
|
|
}
|
|
$size = $size{I} + $size{P} + $size{B};
|
|
$n = $n{I} + $n{P} + $n{B};
|
|
$n or die "unrecognized input\n";
|
|
}
|
|
|
|
if(@ARGV) {
|
|
foreach(@ARGV) {
|
|
open $fh, "<", $_ or die "can't open '$_': $!";
|
|
proc_file($fh);
|
|
}
|
|
} else {
|
|
proc_file(STDIN);
|
|
}
|
|
|
|
for(0..51) {
|
|
$q[$_] or next;
|
|
printf "q%2d: %6d %4.1f%%\n", $_, $q[$_], 100*$q[$_]/$n;
|
|
}
|
|
print "\n";
|
|
$digits = int(log($n+1)/log(10))+2;
|
|
printf "All: %${digits}d %s avgQP:%5.2f avgBytes:%5d\n",
|
|
$n, $n==$n{I}?" ":"", $avgq/$n, $size/$n;
|
|
foreach(qw(I P B S)) {
|
|
$n{$_} or next;
|
|
printf "%s: %${digits}d (%4.1f%%) avgQP:%5.2f avgBytes:%5d\n",
|
|
$_, $n{$_}, 100*$n{$_}/$n, $avgq{$_}/$n{$_}, $size{$_}/$n{$_};
|
|
}
|
|
print "\n";
|
|
printf "total size: $size B = %.2f KiB = %.2f MiB\n",
|
|
$size/2**10, $size/2**20;
|
|
print "bitrate: ", join("\n = ",
|
|
map sprintf("%.2f kbps @ %s fps", $_*$size*8/1000/$n, $_),
|
|
23.976, 25, 29.97), "\n";
|