引子:这是我拷贝极影论坛中的"powerk6"所写的教程加以补充与修订并具体操作化所制作的教程。不保留任何版权。另外也感谢网络上的其它网友,感谢他们的辛勤与努力,才有了下面这个。(注:I帧指的是关键帧,P帧指的是未来预测帧,即关键帧的未来变化帧,B帧指的是中间帧,它会参考前后的关键帧来记录本帧数据与变化的趋势数据,Drop Frame或者称为Null Frame是插入帧,或者称之为空帧、无效帧。在VirtualDubMod中,I帧表示为[K],P、B表示为[],Null Frame表示为[D],用VirtualDubMod打开AVI后,在右下角可以看到。如下图)
正文开始:
现在,我们可以看到大量动漫的RAW都是120fps的,这个东东是小日本的怪胎产物。小日本的动画由于反复剪辑,造成很多DVD的片源为NTSC Interlaced 和FILM Progressive混合的,一般来说OP、ED是29.97fps的,正文经过IVTC变成了23.976fps,怎么合成一个完整的呢,因为 AVI 只能有一种显示速率,如果做成 24fps,30fps 的部分必须砍掉画面,砍成 24fps,画面会一顿一顿的不顺畅。如果做成 30fps,24fps 的部分必须要重复画面来生成 30fps,画面也还是会顿。于是,小日本就想出来一个怪招,最小公倍数。
29.97*4=119.88
23.976*5=119.88
但是这个120fps并不是120i或者120p,也就是说并不是每秒有120个I帧或者P帧,这样的文件要流畅播放,要求很高,也会急剧增大文件体积,所以,鬼子想出了一个办法,就是插入Null Frame(无效帧,几乎不占大小,播放时自动跳过),比如说把23.976fps的每一帧的后面都插入4个Null Frame,那么23.976 fps *(1+4)=119.88 fps,在29.97fps的每帧后插入3个Null Frame,这样一来,就成了29.97fps *(1+3)=120fps,同样对于60fps的每一帧插入一个Null Frame,60 fps *(1+1)=120 fps,这样就可以保留所有的画面,又能很顺畅的播放。下面用VDM中的标识来表示,对于[]也用[K]来代替表示。
-------------------------------------------------------------------
23.976 fps :[K] [D] [D] [D] [D] [K] [D] [D] [D] [D] [K] [D] [D] [D] [D]
29.97 fps:[K] [D] [D] [D] [K] [D] [D] [D] [K] [D] [D] [D] [K] [D] [D] [D]
60 fps:[K] [D] [K] [D] [K] [D] [K] [D] [K] [D] [K] [D] [K] [D] [K] [D] [K] [D]
----------------------------------------------------------------------
下面我们只介绍内嵌人员最常遇到一种情况: RAW为120fps的AVI的普通内嵌。
对于这种RAW,正确的方法就是分段来处理。即把23.976fps与29.97fps的段落分别剪出。然后要做的就是分别把那些插入的Null Frame找出来并且去掉。如何找?一种方法是通过VirtualDub/VDMOD,我们用VD/VDMOD直接打开120fps的AVI,按照上面所说的Null Frame的插入规律,逐帧寻找,直至找到23.976fps与29.97fps的分段处,因为P帧和B帧都是参考帧,必须要参考I帧才能还原画面,所以开始点一定要从关键帧开始,那么我们就找到这个分段处的关键帧,记下它的帧数。RAW有几段就分几段,这样是有些麻烦,但却是最准确的。一般的分段处都在OP、ED和正文的过渡区,所以只要仔细检查这些地方就好了。找到这些帧后,我们通过AVS来处理。
注:下面我插入描述出一个如何快速找到23.976fps与29.97fps的分割点的具体操作。
**************如何快速找到23.976fps与29.97fps的分割点?**********************
通常情况是我们需要做RAW为120FPS的AVI文件的字幕内嵌。
分割点一般位于OP与正文、正文与ED间的过渡区。我们可以先随意在OP区内选取某一关键帧“[K]”(推荐)或者P、B帧“[]”(不推荐,因为分割时无用),方法是拖动那个进度条到OP区,用快捷键“shift+ →”和“shift+ ←”,快速定位到某一个[K]帧。再用捷键“→”和“←”来前后移动帧,看前后各有几个连续的[D]帧,如果各是4个或3个[D],可以大致先认为是OP是23.976fps(以4个为例),当然你可以再选取一个或多个[K]来验证检查。
同样的办法解决掉正文与ED。
假如此时,我们发现并大致判断出正文与OP相同为23.976fps,而ED为29.97fps,哈哈,我们要缩小范围啦。此时,我们决定用[K]的出现位置来手动判断。首先仍然是拖动进度条到大致的过渡区,通过“上一关键帧”与“下一关键帧”的快捷键快速顺序逐个检查[K]的出现位置,如果发现[K]一直在0、5、10、15或者0、4、8、12的位置出现(注意:其实我们只分析看看最后一位0、5即可,虽然0有交叉,但多顺序检查几个[K]或[]即可明白到底是哪个序列),假如突然这个序列变更为0、4、8、12或者0、5、10、15,OK,那么再次缩小范围到发生变换的两个[K],手动通过“→”和“←”来前后移动帧,查看前后的[D]的连续个数,如果发现某一[K]的前后[D]的个数不同,比如前4后3,恭喜你!就是它了,这个该死的[K]。
****************************************************************************
下面是以上流程的3个参考图样(注意红色画圈处的不同):
以下我以FTP里的文件:loveless_ANB_120fps_WMV9_640x360.avi为具体例子说明。(原名字不是这个,英文名字与相关信息部分则没有改变,这是为了方便以及防止出现意外的处理错误,比如文件名包含了某个不被支持的字符等)
记下那个[K]的时间与帧序列号比如“154420”,下面进行分割文件,采用的是无音频部分的AVI(注意,这一步之前我已经把源文件的音频与视频部分分开待用了——因为该源AVI文件采用的是VBR的MP3,VDM编码时会造成音频视频的不同步,又因为后续流程中用到的软件AVI60不支持音频,早分开就可以节省一道分离工程^0^。不过,上面的分析仍然采用了源文件)。
编写两个分段内嵌的AVS文件:内容如下:
************************* part1_24.avs *******************************
#part1_24.avs
#23.976fps
#载入字幕滤镜VSFilter.dll插件##
LoadPlugin("c:Program FilesGordianKnotAviSynthPluginsVSFilter.dll")
AVISource("D:Downloadslove.avi")
textsub("D:Downloadsloveless_ANB_WMV9_640x360.ass")
##分割文件(因为154415是[]帧,154420(21:28.110)是23.976fps开头的关键帧,故此截至154416(21:28.077))##
Trim(0,154416)
##选取位于5的倍数0,5,10,15等I帧或者P、B帧,去掉D帧,以得到23.97fps的AVI内嵌文件##
SelectEvery(5,0)
************************* part2_30.avs *******************************
#part2_30.avs
#29.97fps
#载入字幕滤镜VSFilter.dll插件##
LoadPlugin("c:Program FilesGordianKnotAviSynthPluginsVSFilter.dll")
AVISource("D:Downloadslove.avi")
textsub("D:Downloadsloveless_ANB_WMV9_640x360.ass")
##分割文件(因为154415是[]帧,154420(21:28.110)是29.97fps开头的关键帧,故此截至154416(21:28.077))##
Trim(154420,168411)
##选取位于4的倍数0,4,8,12等I帧或者P、B帧,去掉D帧,以得到29.97fps的AVI内嵌文件##
SelectEvery(4,0)
**********************************************************************
用VDM分别打开这两个AVS文件,做剪切分段及内嵌处理。具体是打开VDM,“文件”→“打开视频文件”→在对话框中选择“part1_24.avs”,因为此时的文件是已经剥除了音频的love.avi,所以直接选择“视频”→“完全处理模式”后再次选择“视频”→“压缩”→打开对话框,点选“Xvid MPEG-4 Codec”,确定(这一步很重要,否则会出来个上G的巨无霸,因为VDM默认是“未经压缩的RGB”)后,再打开VDM的“文件”→“另存AVI”即可。打开对话框后,文件名可以选part1_24.avi,要勾上“不要立即运行任务,保存到任务列表中”选项,以便再次用VDM打开“part2_30.avs”做同样操作后存为part2_30.avi,然后按快捷键F4,打开“任务列表”对话框,点“开始”,OK,大家可以一边喝茶去了。
(注:这里没有做XVID的参数设置,图快而已,一般可以拿到65%左右质量的压缩结果文件。下三图为参考图)
大约1个小时(视机器配置不同)得到两个无音频的分别为23.976fps和29.97fps的已经内嵌好字幕的文件:part1_24.avi(23.976fps)和par2_30.avi(9.97fps)两个文件。
下面,再利用AVI60GUI.exe这个软件来插入Null Frame(注意:软件是日文版,大家最好用win XP),把这两个文件都变成120fps,具体操作见图,只要在第一行填入文件名,第二和第三行为空,选120fps,点Encode,很快就能完成Null Frame的插入。得到part1_24_120.avi和part1_30_120.avi两个文件(这里不用担心覆盖,因为编码时会自动在原文件名字后加上120的字样)。用VDM合并它们,得到end.avi文件。然后再次用VDM把这个end.avi与前期分离好的音频文件“love.mp3”合并。这里的几步就不编写avs文件啦,反正不加修正等调整。注意这里的两步合并视频与音频都是选择了“直接拷贝数据流”,因为都已经是编码过的了。(下面是参考图样)
至此,我们内嵌人员的工作终于含辛茹苦地完成了。
啊~ 别忘了检查观看后有无意外错误后再上传啊~~~~~~~~~~~~~
附:这个是一个最简单的制作,也许以后随着学习的深入会增加及修改。如果大家有什么更简单的办法麻烦请尽快发给我。以便早脱苦海。附上word完整文档下载 2005.4.12
点我下载该WORD文档