搜索 社区服务 统计排行 帮助
  • 11124阅读
  • 22回复

VisualSubSync 用波形做时间轴&特效 教程

楼层直达
xzz
级别: 工作组
注册时间:
2004-08-23
在线时间:
21小时
发帖:
1904
先是在FW工作区发了一下。感觉这个还是要给大家分享一下我的一点小经验才够厚道的说

于是厚着脸皮再次把这东西发到这里来了 XD
FW工作区帖http://popgo.net/bbs/showthread.php?s=&threadid=449416


用波形做时间轴&特效
by xzz 2007.06.02



0.前言
又一个六一儿童节过去了,很多大叔大婶们离儿童时代又远了一步了...ORZ
首先这篇文章的起点是你会用popsub等工具做时间轴。要是不明白什么叫时间轴,那么你先看看漫游论坛上一些相关的教程帖子先吧。(PS:也可以看看雷鸣同学的教程写的不错的说)这里主要使用的工具有做时间特效的popsub分析声音波形的VisualSubSync。废话不多说了下面开始了。


1.认识popsub
Popsub 是一个非常易上手的时间轴制作软件。非常适合新手上路。目前最新版本是0.74版。以及0.75测试版。虽然它本身不能做出非常华丽的特效,但是把它作为一种工具却可以做出相当漂亮的特效。(目前也没有能直接做出很华丽特效的软件,一般高手都是手写的…)不过popsub只有简体中文版,如果在繁体中文系统下请使用英文路径、Popsub不支持UTF-8编码。

1.1 使用popsub制作简单的时间轴。(不知道使用popsub制作时间的可以参考一下,会用的完全不用看)
关于popsub的教程遍地都是,我这里就不多说什么了,详细内容可以参考popsub里的readme.rtf文件


第一次打开popsub,会有一个要求输入口令的窗口。可以输入“漫游口令: POPGO-FANSUB 和 同好口令: TONGHAO-FANSUB”。具体参照readme.rtf文件。

1.2
右上角 文件—>新建时间轴,出现一个窗口;文件—>打开动画,即可打开你要制作时间的动画。(0.74版以下打开*.AVI以外的文件需要下拉选择所有文件,方可选择打开)。
对白处可以写入你需要写入的文字对白。(日文写不进去的,你需要在别的地方写好了粘贴上去)如果你已经有翻译了,可以选择 文件—>打开翻译。通过单击最后一行可以加长可写入的行数,有了足够长的行数你就可以贴入翻译了。


插入时 插入的是当前打开的动画的时间,点击后选中的时间就成为了当前的时间,并且焦点自动转移到了下一个时间。
比如:图中选中了 第6行 的开始时间

插入后

焦点自动选中了后一个时间位置


文字编码建议使用“1”自动选择,这样就不会出现写入的非中文字体而无法按照预定的效果显示的问题。(当然按简体中文134,繁体中文137,日文128也不是不可以,不过太麻烦了吧)
时间做完了该保存了

对于保存为什么格式的时间轴,不用多说了, *.SSA和*.ASS只有这两种格式支持动态特效。
ASS是SSA的升级版本,所以建议保存ASS
编码:强烈建议保存为 Unicode 因为保存为 ANSI 在非简体中文系统可能出现乱码。(缺省值是原文件的编码,新建的文件没有这项)

关于popsub就讲这么些吧,更多还是得自己练习。


下面才是正题:


2.认识VisualSubSync

2.1为什么使用它做时间准确
拿卡拉效果\K来说吧
如果直接凭感觉来确定时间肯定不准的。因为那是感觉出来的。(popsub里也提供了一套快速做\K的方法不过很难做准确的)



使用VisualSubSync可以非常客观的把对动态声音的感觉转换为对静态图形的视觉。
比如要你听几个日文假名的时间长度来 \k 你能感觉到它有多长吗?
这里就能非常精确的用波形告诉你它有多长。

2.2 开始使用
选择:File->New Project…

在Video source file:选择导入的视频文件支持AVI、MKV、RMVB格式,可能大家想到在Video filel里怎么没有WMV格式?其实它是支持WMV的只要选择所有文件即可选择WMV格式。


按照默认的配置点 Create new project 就可以了
注意:如果钩上了“Save as UTF8” popsub 会打不开生成的字幕文件(*.str\*.ssa\*.ass)。
如果分离出错(貌似AC3的声音会出错)你也许需要转换声音的格式,比如*.MKV解出声音后转换为MP3或AAC什么的再封进去就可以了。最好不要单独用VisualSubSync打开声音,虽然也可以成功但是效果是不一样的。视频文件分离转化后的WAV波峰和波谷落差被拉大了,这样可以更加直观的观察波形。而音频的似乎没有这个效果,如果波峰和波谷之间的落差不大用这个对时间就没有意义了。(其实也是有解决的方法,后面提到)
完成后会生成3个文件 *.peak *.vssprj *.wav 。时间开始做后会增加一个*.str

要开始了
成功后页面上会出现波形图像。如果波形太长了你会发现都连一块了,根本就分不清嘛。这时你可以点击界面上一个放大镜的东西,它可以把波形扩大这样就看的清楚了。

放大/缩小波形,选择当前/全部,波峰波谷落差扩大化,打开视频文件。

顺便说以下,在调时间的时候最好不要打开视频预览,这样反复播放的反映速度比较慢.

这里讲以下波峰波谷落差扩大化
上面提到如果视频声音提取不出来又不知道转换怎么办?
我们可以直接用里面的声音,最好用专门的软件分离出来再转为WAV格式用VisualSubSync打开。如果实在不会的话用“千千静听”就可以了…ORZ(把视频拖到TTPLAYER里转换格式) 不过这样出来的可能有爆音!
导入后发现波峰波谷落差小,没法观察了,这个时候用它就可以了


调高Scanling的值就可以扩大落差了(不过效果不会有很大的提升)。Reset返回100%。

2.3 做精确到千分之一秒的\k效果
拿Otoboku(少女爱上姐姐)OP,ED \k时间来说吧。
OP第一句“Please come with me ア~メン”
听声音~!观察“Please”出现时时间轴的大概起始位置和结束位置
一般是一个波峰到另一个波峰/波谷结束,具体不难观察出来。




这个时候白色部分就是选中的部分,通过播放 可以反复听这段内容。把鼠标放到选择范围边缘会出现一个“〈-||-〉”这样的光标,这个时候可以微调选择范围。直到你确定这段就是“Please”为止。理论上可以精确到1/1000秒,不过人的反应时间是1/10秒,人是体会不到了…XD。

右键单击选中的范围会出现“add subtitle”点击它这段时间范围就被选择出来了


右键点“Text”会出现
“Create Karaoke”点它就给它加上了\k




看看,第一次做出来这个是不是觉得很壮观!

该保存了
Flie->Save as
这里可以保存为(*.str\*.ssa\*.ass)一般这里出来的时间都不能作为最终使用的字幕。保存为什么都无所谓,因为后面的我们交给popsub处理。不过为了方便还是存为ASS好些。

3.后期处理
可以用记事本打开,把小写的\k换为大写的\K。用替换就可以了(注意钩上区分大小写)

3.1
用popsub打开设置好字体颜色等参数。
之后的大部分工作都是手动操作了。
比如Otoboku ED 一句话“あなたを見つけた それだけでIt's beautiful day”
你能看见下面的格式



Dialogue: 0,0:00:57.08,0:00:57.49,EDJP,NTP,0000,0000,0000,,{\K40}あ
Dialogue: 0,0:00:57.49,0:00:57.96,EDJP,NTP,0000,0000,0000,,{\K47}な
Dialogue: 0,0:00:57.96,0:00:58.40,EDJP,NTP,0000,0000,0000,,{\K44}た
Dialogue: 0,0:00:58.40,0:00:58.62,EDJP,NTP,0000,0000,0000,,{\K22}を
Dialogue: 0,0:00:58.62,0:00:58.77,EDJP,NTP,0000,0000,0000,,{\K15}見
Dialogue: 0,0:00:58.77,0:00:59.04,EDJP,NTP,0000,0000,0000,,{\K26}つ
Dialogue: 0,0:00:59.04,0:00:59.70,EDJP,NTP,0000,0000,0000,,{\K66}け
Dialogue: 0,0:00:59.70,0:01:00.03,EDJP,NTP,0000,0000,0000,,{\K33}た
Dialogue: 0,0:01:00.03,0:01:00.32,EDJP,NTP,0000,0000,0000,,{\K29}そ
Dialogue: 0,0:01:00.32,0:01:00.56,EDJP,NTP,0000,0000,0000,,{\K24}れ
Dialogue: 0,0:01:00.56,0:01:00.79,EDJP,NTP,0000,0000,0000,,{\K22}だ
Dialogue: 0,0:01:00.79,0:01:01.43,EDJP,NTP,0000,0000,0000,,{\K64}け
Dialogue: 0,0:01:01.44,0:01:01.57,EDJP,NTP,0000,0000,0000,,{\K14}で
Dialogue: 0,0:01:01.57,0:01:01.89,EDJP,NTP,0000,0000,0000,,{\K31}It's
Dialogue: 0,0:01:01.89,0:01:02.30,EDJP,NTP,0000,0000,0000,,{\K41}beauti
Dialogue: 0,0:01:02.30,0:01:02.53,EDJP,NTP,0000,0000,0000,,{\K23}ful
Dialogue: 0,0:01:02.53,0:01:03.62,EDJP,NTP,0000,0000,0000,,{\K109}day


把红色的时间和蓝色的时间作为起始/结束时间,把{\K**}***依次复制过来就可以了(注意空格)
之后是这样的:


Dialogue: 0,0:00:15.36,0:01:03.62,EDJP,NTP,0000,0000,0000,, {\K40}あ{\K47}な{\K44}た{\K22}を{\K15}見{\K26}つ{\K66}け{\K33}た {\K29}そ{\K24}れ{\K22}だ{\K64}け{\K14}で {\K31}It's {\K41}beauti{\K23}ful {\K109}day

这个时间无可挑剔了。

由于每个假名的开始/结束时间都出来了(如粉色的部分)所以可以做出更出色的特效


-----------------------------------------------------------------

第一次写这种东西,希望大家不要TF我~

RTF格式的我借SUN的FTP用了一下
/FREEWIND/Upload/Personal/xzz/



------------------------------------------------------------------
顺便问个问题
还有想问一下有哪为大大知道如何打开以下3种编码的文挡
比如\*.ass\*.txt 文件一般会有3种文件编码:
ANSI,Unicode,UTF-8

我在尝试编写一个关于打开ASS文件读取里面的某些数据的时候发现了一些问题.
采用的C#.NET 里面的Framework类库.

直接使用"RichTextBoxStreamType.PlainText"打开方式.能够打开ANSI和UTF-8编码的文件.
直接使用"RichTextBoxStreamType.UnicodePlainText"打开方式能只能打开Unicode编码的文件.

问了一下某前辈.
他给我的答复是用"StreamReader"类,但是我发现的问题是对于"StreamReader"类它能良好的支持ANSI和Unicode编码,但是UTF-8编码却需要"BinaryReader"类才能打开.

(貌似POPSUB用的就是"StreamReader"类所以不能兼容UTF-8 <-纯属个人猜测)

到头来还是要用两种方法或两个类.
难道不能用一种方法或一个类来实现吗?

我想尝试一下自己编写一个类打开,但问题是我不能确定文件的编码格式.不知这里有没人能指点一下,如何才能得到文件的编码格式返回一个值,让我根据这个值来判断用什么方法来打开!

谢谢~

PS:刚接触C#


65026640群 和谐的声音回荡在此处
xzz
级别: 工作组
注册时间:
2004-08-23
在线时间:
21小时
发帖:
1904
只看该作者 22楼 发表于: 2007-07-09
感谢"Carrod"大人的代码...有时间去研究一下 ...最近要考试了,也就没有时间来研究了...OTL


65026640群 和谐的声音回荡在此处
级别: 风云使者
注册时间:
2004-10-31
在线时间:
6小时
发帖:
4500
只看该作者 21楼 发表于: 2007-07-06
引用
最初由 熊熊*揍敌客 发布
啊啊,那我就提一点个人意见:
希望加入文件名的时候能够像RapidCRC那样自定义模板
希望能够将其他算法的结果也加入文件名,至少添加MD5和SHA1
加入文件名时提供大小写选择希望~^^
没见过RapidCRC,不过之前有考虑过读取文件名时提取验证码的,会在下个版本试弄的。

不过我现在只想宿舍能有上网……~~~~~[/ku]
P.S.有建议可以在我主页(就我签名那里)提的,在这里借人帖子似乎不太好。
级别: 侠客
注册时间:
2003-08-17
在线时间:
10小时
发帖:
605
只看该作者 20楼 发表于: 2007-07-06
啊啊,那我就提一点个人意见:
希望加入文件名的时候能够像RapidCRC那样自定义模板
希望能够将其他算法的结果也加入文件名,至少添加MD5和SHA1
加入文件名时提供大小写选择希望~^^
级别: 风云使者
注册时间:
2004-10-31
在线时间:
6小时
发帖:
4500
只看该作者 19楼 发表于: 2007-07-05
PM信息不可以那么长。。。只好贴这里了。

先用StreamReader去读取,然后判断是否为UTF8编码,再决定读取流时以何种编码格式读取。判断的小函数在下边。
System.IO.StreamReader sr;
if (newFun.IsUTF8(new System.IO.FileStream(FileToRead.FullName, FileMode.Open, FileAccess.Read, FileShare.Read)))
{
sr = new System.IO.StreamReader(FileToRead.FullName, Encoding.UTF8);
}
else
{
sr = new System.IO.StreamReader(FileToRead.FullName, Encoding.Default);
}


///
/// 判断该文件是否UTF8编码
///

/// 需要判断的文件流
///
public bool IsUTF8(FileStream sbInputStream)
{
int i;
byte cOctets; // octets to go in this UTF-8 encoded character
byte chr;
bool bAllAscii = true;
long iLen = sbInputStream.Length;

cOctets = 0;
for (i = 0; i < iLen; i++)
{
chr = (byte)sbInputStream.ReadByte();

if ((chr & 0x80) != 0) bAllAscii = false;

if (cOctets == 0)
{
if (chr >= 0x80)
{
do
{
chr <<= 1;
cOctets++;
}
while ((chr & 0x80) != 0);

cOctets--;
if (cOctets == 0) return false;
}
}
else
{
if ((chr & 0xC0) != 0x80)
{
return false;
}
cOctets--;
}
}

if (cOctets > 0)
{
return false;
}

if (bAllAscii)
{
return false;
}
return true;
}


------------------------------
P.S.谢谢楼上的支持,不过这个版本我上次用错了某个文件,ED2K的计算有文件长度计算限制,我过阵子会改进发布新版本的……最近就没法了,宿舍没网上,55555555555555…………
级别: 侠客
注册时间:
2003-08-17
在线时间:
10小时
发帖:
605
只看该作者 18楼 发表于: 2007-07-04
楼上签名的工具不错
级别: 风云使者
注册时间:
2004-10-31
在线时间:
6小时
发帖:
4500
只看该作者 17楼 发表于: 2007-07-04
他给我的答复是用"StreamReader"类,但是我发现的问题是对于"StreamReader"类它能良好的支持ANSI和Unicode编码,但是UTF-8编码却需要"BinaryReader"类才能打开.

--------------------

StreamReader可以啊,我就是用这个的,你可以加个判断该文档是否为UTF8编码,读取时选择相应的。具体怎么写我一下忘了,宿舍现在没的上网,明天来公司时再PM你吧。
级别: 工作组
注册时间:
2005-01-15
在线时间:
0小时
发帖:
1729
只看该作者 16楼 发表于: 2007-07-01
继续默默支持medusa

xzz
级别: 工作组
注册时间:
2004-08-23
在线时间:
21小时
发帖:
1904
只看该作者 15楼 发表于: 2007-07-01
时间还是不要用声音做的好,会累死的...
aegisub不知道,不过单是时间的话感觉POPSUB已经很强大了


65026640群 和谐的声音回荡在此处
级别: 工作组
注册时间:
2003-08-26
在线时间:
13小时
发帖:
6600
只看该作者 14楼 发表于: 2007-07-01
引用
最初由 raito01 发布
那个.......用那些软件还不如用Aegisub 我从来做字幕都只用aegisub的
上面的那些软件的功能aegisub都有 呵~ 我拿给大家吧^^ 下了就知道好用了
http://www.mjbox.com/u/raito/Raito-Aegisub-1.10.rar 绿色汉化版
你用aegisub做音频时间轴24min的片子要多久?

催片请点此处: http://bbs.popgo.org/bbs/read.php?tid=502402&displayMode=1#19103164
级别: 工作组
注册时间:
2004-11-14
在线时间:
0小时
发帖:
8093
只看该作者 13楼 发表于: 2007-06-30
闲着没事试了试。。不如aegis顺手。。

级别: 新手上路
注册时间:
2007-06-25
在线时间:
0小时
发帖:
4
只看该作者 12楼 发表于: 2007-06-30
那个.......用那些软件还不如用Aegisub 我从来做字幕都只用aegisub的
上面的那些软件的功能aegisub都有 呵~ 我拿给大家吧^^ 下了就知道好用了
http://www.mjbox.com/u/raito/Raito-Aegisub-1.10.rar 绿色汉化版
xzz
级别: 工作组
注册时间:
2004-08-23
在线时间:
21小时
发帖:
1904
只看该作者 11楼 发表于: 2007-06-30
aegisub 怎樣讓他不关联ASS,SSA文件,我觉得那个图标好难看啊!


65026640群 和谐的声音回荡在此处
级别: 工作组
注册时间:
2005-10-16
在线时间:
1小时
发帖:
182
只看该作者 10楼 发表于: 2007-06-22
变乖了,,我也改用aegisub了

5月了,,原来我还活着
级别: 版主
注册时间:
2002-04-23
在线时间:
3小时
发帖:
7693
只看该作者 9楼 发表于: 2007-06-22
以前用vss 現在用aegisub

身份 :我是坏人:D
目标 :收齐高达系列:p
请多多支持ftp区啊(顺便edonkey, mirc吧)

偶的业余嗜好:


暴走模式->
快速回复

限150 字节
上一个 下一个