|
|
srt格式的字幕经常超出屏幕的宽度,找了半天,fold之类的工具不识别GBK。
于是自己写了一个,下面是源代码。
使用方法:
1. 保存到/usr/local/bin/srtwrap文件,并改为755
2. cat something.srt | srtwrap > new.srt
- #!/usr/bin/perl
- use strict;
- my $linebuf;
- my $col=34;
- while ($linebuf=<>)
- {
- if (length($linebuf)<$col)
- {
- print $linebuf;
- }
- else
- {
- &wrap($linebuf);
- }
- }
- sub wrap()
- {
- my $buf=shift;
- my $len=length($buf);
- my $tmp;
- my $i=0;
- #print "==>$buf";
- if (length($buf)<$col)
- {
- print $buf;
- return;
- }
- do
- {
- if (ord(substr($buf,$i,1))>0x7f)
- {
- if ($i==$col)
- {
- last;
- }
- else
- {
- $i++;
- }
- }
- $i++;
- }
- while( ($i<$len) && ($i<$col) );
- #print "==>$i\n";
- print substr($buf,0,$i)."\n";
- &wrap(substr($buf,$i));
- }
复制代码 |
|