countquant_x264.pl
资源名称:chapter15.rar [点击查看]
上传用户:hjq518
上传日期:2021-12-09
资源大小:5084k
文件大小:1k
源码类别:
Audio
开发平台:
Visual C++
- #!/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 inputn";
- }
- 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:%5dn",
- $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:%5dn",
- $_, $n{$_}, 100*$n{$_}/$n, $avgq{$_}/$n{$_}, $size{$_}/$n{$_};
- }
- print "n";
- printf "total size: $size B = %.2f KiB = %.2f MiBn",
- $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";