📄 countquant_x264.pl
字号:
#!/usr/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+) itex:(\d+) ptex:(\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+$6)/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";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -