级别: 新手上路
- 注册时间:
- 2005-05-15
- 在线时间:
- 9小时
- 发帖:
- 188
|
AnimeIVTC VFR(可变帧速) 制作我就以Gundam Seed Destiny(文里就简称GSD)的OP和ED(没有credit的版本)作例子吧。 它的OP全是telecined 3:2 pulldown (原理就是从原本的23.98fps 转成 29.97fps,帧数播放形式为3张正常,然后两张交错),它们没有不同帧速段落,所以不是VFR。按照说明册,只要用 AnimeIVTC() 的 第1模式就能很好的把它还原成23.98fps,script就是简单的一行就能搞定了。里面的"aa"代表 anti-aliasing (反锯齿),不明的可以看看下面的两张图的对比就明了,第一张是原图,第二张是加了反锯齿:
注:"aa=4"我是用aa里面的第4种,也是最新更新有的,效果挺好,但是速度就要比1-3慢点了。
然后就说GSD 的ED了,它们全部是: [*]interlaced(29.97fps)+telecined(23.98fps->29.97fps) [*]interlaced(29.97fps)+telecined(23.98fps->29.97fps)+interlaced(29.97fps)
telecined的部份需要还原到23.98fps,形成一个 hybrid video,所以可以做成一个VFR的片了。 [color=dark red] OK,我先来简单列出 AnimeIVTC() 做VFR的步骤: [*]自己分辨片的类型 [*]根据类型选择处理模式 [*]作出一些自行的参数改动(或不改,因为都有默认置了) [*]确认VFR的结构,然后用 "mix"功能选择相对模式 [*]用 VirtualDub 和 "check" 功能来查找正确的变帧位置 [*]用 "mode=7" 和 "pass" 0-2的模式压制出vfr 视频和记录了变帧位置的 timecodes 文本 [*]用合成软件如 MKVtoolnix 或 tc2mp4+mp4 Muxer 把VFR视频和 timecodes.txt 合成 VFR MKV 或 vfr mp4
详细说明: [*]用DGIndex和眼睛分辨出VFR的片(不懂的请看第一帖的说明册)
[*]根据分辨出来的结果选择 AnimeIVTC 的模式。就我第一帖那个sample的片段,它的结构是 “交错+telecined”。根据说明书,能同时处理这两个类型的就是第三模式,所以就要用 "mode=3",另外加一个 "aa=4" 反锯齿效果。最后写出 Avisynth 脚本
[*]说明写着,如要做VFR就要先把整个片设成29.97fps,所以我们用 "omode=2" 来指定全片以29.97fps播放。至于deinterlace和invert telecine 这些功夫全都默认了,不用再自己烦。到这里所有基本的模式设定已经完成了。得出的脚本是- AnimeIVTC (mode=3,aa=4,omode=2)
[*]从这步开始就是要判断变帧速的正确位置。首先是选择结构,在 AnimeIVTC 里叫"mix"。就sample的片段,它是 "交错(i)+telecined(e)",对上说明册,这结构是 “mix” 的第一种,所以在脚本就要加上 "mix=1"。- AnimeIVTC (mode=3,aa=4,omode=2,mix=1)
[*] a. AnimeIVTC() 里有一个专门用手动来检查帧数的功能 "check"。我们要用它来查找帧速变动的帧数位置。对应之前的脚本设定,"omode=2" +interlaced 的部份就用 "check=1"。现在的script为- AnimeIVTC (mode=3,aa=4,omode=2,mix=1,check=1)
b. 先保存脚本,然后就可以把它扔进VirtualDub来查找帧数了(VirtualDub的画面也会有提示)。 就sample video为例,交错的情况是从0-1509帧,所以得出 "i第1段开始=0","i第1段结束=1509",跟着把它加进script,把 "check=1" 删掉,然后保存 - AnimeIVTC (mode=3,aa=4,omode=2,mix=1,istart1=0,iend1=1509)
c. 接着就是要查找片的 telecined(e) 部份。跟之前一样,但是加入 "check=2", 然后保存。再次放进 VirtualDub。这个 "check" 会把整段片转成 23.98fps。之后就去找 telecined 部份的开始和结束的帧数,然后写进 script,删除 "check",最后保存。VFR 的 script 完成。- AnimeIVTC (mode=3,aa=4,omode=2,mix=1,istart1=0,iend1=1509,estart1=604,eend1=639)
[*] a. AnimeIVTC() 的 "pass"功能和 "mode=7" 是专为制作vfr video而设的。步骤就是先用 "pass=0" +无损编码器(如Lagarith)用VirtualDub压出一个无损的 AVI 视频(这是整个过程用时最久的),现在我就叫它 "lossless.avi" 吧。script是这样的 - AnimeIVTC (mode=3,aa=4,omode=2,mix=1,istart1=0,iend1=1509,estart1=604,eend1=639,pass=0)
压缩完成之后,会得出一个以Gig来计算无损 "lossless.avi"。(就sample视频的话就100MB吧)接着再用 "mode=7" 的 "pass=1" 和 "pass=2" 来得到 timecodes。
b. 首先创建新的avs文本进行 "mode=7" "pass=1"。就叫它 "pass1.avs" 吧。script如下 - AviSource ("lossless.avi")
- AnimeIVTC (mode=7,pass=1)
把文本掉进 VirtualDub,不用压缩,只要选择 "File->Run video analysis pass" 就可以了,速度会很快的。当它分析完毕,在文件夹会自动生成一个 "stats" 的文本。接着就关闭video 或把 VirtualDub 整个关了再开(记住要关啊)。
c. 最后就是创建另一个新avs文本来进行 "mode=7" "pass=2"的压缩。我们就叫它 "pass2.avs" 吧。压缩完成后会自动生成一个 "timecodes.txt" 的文本了!script 如下
- AviSource ("lossless.avi")
- AnimeIVTC (mode=7,pass=2)
d. 在这里,你可以选择:
(i). 再输出一个无损avi,之后再加入虑镜进行压缩 (ii). 在script里直接加入喜欢的虑镜,直接压缩成h264 mp4或其他个人喜好的格式。在时间上应该和前者分别不会太大,总之就自己看着办吧。
我自己就用 (i),输出 "lossless2.avi",然后再加入resize什么的虑镜压成 "lossless2.mp4"。
[*]这个是合成部份了,也就是把 mp4 和 timecodes 文本和声音文件合起来就完成了。漫游里面就有相关资料的帖子,我想我也不用说明太多了。合mp4的话就用 commandline "tc2mp4 -i lossless.mp4 -t timecodes.txt -o vfr.mp4" 大功告成。
算是写完了,想到东西再加
|