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

[流程] 把MKV vfr内嵌成MKV vfr/把MKV vfr嵌成120fps / 把120fps嵌成120fps / 把120fps嵌成mkv vfr 附工具

楼层直达
级别: 超级版主
注册时间:
2004-07-25
在线时间:
121小时
发帖:
3898
以前经常看到关于MKV VFR内嵌成AVI的讨论

个人觉得,直接做成内嵌的MKV VFR更方便

当然,外挂MKV就更方便了(众人齐殴……)

回到正题……

一、把120fps内嵌成MKV vfr 把MKV vfr内嵌成MKV vfr


需要的工具:

AVI-tc-GUI package
mkvtoolnix
MkvExtract_GUI
Aegisub
MP&vfr_GUI


下面讲方法,对于最近的120fps、MKV vfr(aska RAW经常是60fpsED),使用降桢到24,那么原来30fps、60fps部分看起来会很卡,有两种方法,做内嵌120fps avi,或者做mkv vfr,shin建议使用MKV vfr。

1、第一步要得到CFR AVI和timecode v2,有几种途径

如果是120fps AVI,使用AVI-tc-GUI转成CFR AVI,timecode格式用V2

如果是MKV vfr,常用的有三种途径,其一是使用mp.exe和vfr_GUI,不过这个方法只能得到timecode V1,一些复杂的vfr处理起来不甚方便,于是废弃。第二个方法是使用新版MkvExtract_GUI,相比前代,它已经可以解出TC,这是个挺大的进步,当然我们也可以直接使用命令行mkvextract timecodes_v2 "Path\*.mkv" 1:name.txt。第三种方法使用haali提供的mkv2vfr.exe,例如mkv2vfr "C:\test.mkv" "C:\test.avi" "C:\Timecode.txt",

2、使用Aegisub载入原来的ass,video子项选timecode,导入刚才得到的timecode,Export subtitle,记得选上Transform framerate,输入fps填写CFR AVI的fps,output用Variable。得到校正后的ass,用这个ass去嵌CFR AVI。

4、得到内嵌好的CFR AVI,可以打包成品了。音频从MKV raw里面抽出来,timecode加上(如果使用vfr_GUI的话,记得在timecode文本开头加上这么一行 # timecode format v1,因为vfr_GUI解出来的没有这段,MKVToolnix会不认)

5、得到成品,看效果,画面完全和raw匹配。




二、把mkv vfr 嵌成 120fps

1、分段内嵌法


需要的工具:
avi60 223.3K


主要步骤和上面相同

这是一个古老的方法,请用参观博物馆的心情来面对它,得到内嵌好的CFR AVI后,不打包mkv,而是根据timecode找到变桢的地方,切开,恢复原始fps,使用AVI60插null进行120fps化,最后VDM连接。

或者,得到CFR avi 和 timecode 后
AVISource()
Textsub()
Trim(根据timecode得到的frame范围)
AssumeFPS(原来的fps)

以常见的60fpsED为例,正片、ED、预告,用trim分三次输出,使用AVI60做120fps,最后VDM连接。

这个方法很老,很欠扁,而且mkv vfr作120fps,本身就很无谓……


2、avi tc gui法

需要的工具:
AVI-tc-GUI package

图标居然是千鸟不是上校,怒,英文不翻译了

This package includes the commandline programs cfr2tc (v1.3) and tc2cfr (v1.3), as well as a GUI frontend named tc-GUI for using them. tc-GUI is a c# program and will require the .NET framework (at least version 1.1) to run. cfr2tc and tc2cfr are plain c++ programs and do not require the .NET framework. Following are descriptions of cfr2tc and tc2cfr:

cfr2tc takes an avi file with a video stream containing null frames and outputs a new avi file containing the same video stream, but with all null frames removed and a v1 or v2 timecode file. It also has timecode file only modes that create the timecode file but do not create a new avi file.

tc2cfr turns an avi file (with each frame present once) into a new avi file with null frames that has the specified framerate and varying display length for each individual frame based on a v1 or v2 timecode file.

简单的说,cfr2tc就是输入120fps,得到去null的avi和timecode,一般是30fps化。而tc2cfr就是无null的avi和timecode去插null,显然,要把mkv vfr变成120fps,使用第二个功能十分方便。

tc2 to cfr——输入内嵌好的CFR avi——输入timecode——得到120fps

这个过程和aviread输入avi和asc得到120fs大同小异。



三、把MKV vfr/120fps 内嵌成24fps 把120fps内嵌成120fps

1、有损内嵌的方法 MKV vfr > 24fps

分段内嵌是一个非常古老的办法,这里写出来只是让大家了解一下前辈们的探索 -v-,该方法仅适用于TC V1的情况,首先要得到TC V1,方法请到本贴前面找

以fate 08为例,该timecodes内容如下:

Assume 23.976
0,32127,23.9760
32128,34823,29.9700
34824,35779,23.9761

把文件切开,分段内嵌,最后合成音频就OK了,avs可以这样写:

LoadPlugin("VSFilter.dll")
a=AVISource("H:\down\Fate_08.avi")
b=trim(a,0,32127).AssumeFPS(23.976).changefps(23.976)
c=trim(a,32128,34823).AssumeFPS(29.970).changefps(23.976)
d=trim(a,34824,35779).AssumeFPS(23.976).changefps(23.976)
avifinal=b+c+d
avifinal=TextSub(avifinal,"H:\down\Fate_08.ass")
return avifinal

这个方法在AVS 2.5.6出现后失去了意义,我们可以使用directshow来进行有损内嵌,只要用convertfps便可,下面是一个样例:

loadplugin("E:\Program Files\GordianKnot\AviSynthPlugins\VSfilter.dll")
loadplugin("E:\Program Files\GordianKnot\AviSynthPlugins\DirectShowSource.dll")
DirectShowSource("H:\down\KASIMASI02.mkv",fps=119.88,convertfps=true)
Changefps(23.976)
TextSub("H:\down\KASIMASI02.ass")

至于120fps阉割的方法很简单,直接changeFPS就行了,不过严格的讲,应该分段进行select,不过既然要阉割,就甭费那个劲了。



2、120fps通常内嵌的方法 120fps > 30/24fps >120fps

需要的工具:

avir0927.rar
sube060b.rar
AVI-tc-GUI package

首先是古老的AVIread法,请按照如下步骤进行:

1、确认你安装了Microsoft Frameworks 2.0,没有的话,老老实实去下吧。

2、运行AVIRead,打开120fps raw,file--export script file (120fps),得到asc,后缀用asc或txt,这个和timecode性质一样。

3、edit--remove drop frames--remove all drop frames,这个很好理解,就是去掉null桢,接下来edit--change frame rate--24000/1001,然后save as,得到一个没有null桢的avi。

这里说下24000/1001=23.976,30000/1001=29.970,60000/1001=59.940,12000/1001=119.880 都是常用的公式,要说为什么,大约和展频有关,抗干扰什么的,shin也不是很明白。


4、后面是关键的一步,用第一步得到的asc去校正ass,得到一个新的ass,注意aviread会改ass脚本,之后在改回来就是 = = ,用这个新的ass去嵌没有null的avi,得到成品,暂且叫它temp.avi

5、把temp.avi插null复原到120fps,aviread导入asc,edit--insert drop frames (120fps),导入asc,save as,得到120fps成品。

可以看到,这个方法和内嵌vfr MKV其实本质没有区别,只不过vfr围绕timecode进行,120fps围绕asc进行,本质上都是通过一个介质来修正ass,个人觉得,和avs trim法相比,这个方法更有效。

AVI_TC_GUI 法:

由于AViread已经多年没有更新了,现今使用比较多的都是AVI_TC_GUI,,处理方法如下:

进入cfr2tc标签,操作后得到去null的av和timecode V2,后面用Aegisub搞定,最后再进tc2cfr标签插null。avi tc gui等于就是aviread的tc版,不过有了Aegisub的ass校正帮助,avi tc gui可以搞定一切,汗。

最后再提一下,有些复杂的120fps使用aviread会出现奇怪的RP,如果你看到asc输出了长长的好几页,很有可能是aviread判断null桢出现了问题,如果用这个asc去校正ass有时会出现RP,shin曾经遇到aviread长时间失去响应的情况。建议这种120fps还是做mkv vfr比较稳妥。

========================================


附录:WMV vfr的处理方法

不少小日本喜欢搞怪,弄个WMV的容器还是vfr的,于是我们要用RP来对付它

几个工具:

http://haali.cs.msu.ru/mkv/MatroskaSplitter.exe
http://home.comcast.net/~appleguru/graphedt_october2004.zip
http://haali.cs.msu.ru/mkv/mkv2vfr.exe

第一步用graphedit,打开WMV之后,把所有解码滤镜全部删除,保留原始文件,然后开始手动添加滤镜,在direct show filter中找到haali Matroska muxer,添加,这时候会让你指定文件地址,比如把文件保存为test.mkv,点确定,这样graphedit中就多出一个haali Matroska muxer的方框,它代表了这个滤镜,把WMV文件输出和haali Matroska muxer的video输入相连接,play the graph,得到test.mkv。

还是graphedit,打开WMV,删除所有滤镜,但是保留声音解码滤镜,增加file writer,输入要保存的文件名,例如teat.wav,把解码后的wav连接到file writer,play the graph,得到test.wav。当然,也可以用AVS调用directshow载如WMV,然后在VDM中save wave,这个原理相同,只是graphedit是把后台工作给表示出来了而已。这里我们也可以看到graphedit的作用,就是从底层调用各种解码编码滤镜,摆脱那些外壳程序的束缚。


第二步,用mkv2vfr.exe得到CFR的AVI和Timecode v2 这个用dos命令行实现,把"mkv2vfr.exe"拷贝到win\system32,然后运行cmd,输入mkv2vfr "C:\test.mkv" "C:\test.avi" "C:\Timecode.txt"
中间有空格,最后,用这个avi和tc插120fps,和声音合成,就可以做成avi了。


此外另一种偏方,使用VirtualDub-MPEG2,这个工具修改了VD的代码,实现对WMV ASF容器的支援,用它从WMV中搞出AVI,再用WMVTIMES.exe搞出timecode,最后插120还是包vfr随便了。

最后再介绍下MP4 vfr的处理,包含有X264的MP4 vfr

级别: 风云使者
注册时间:
2003-12-20
在线时间:
7小时
发帖:
4143
只看该作者 55楼 发表于: 2007-04-29
一看以为SHINJJ又发大作了,结果发现是去年4月的--


级别: 超级版主
注册时间:
2004-07-25
在线时间:
121小时
发帖:
3898
只看该作者 54楼 发表于: 2007-04-29
严重反对盗墓................

级别: 工作组
注册时间:
2005-10-19
在线时间:
31小时
发帖:
3613
只看该作者 53楼 发表于: 2007-04-29
而且是半夜三更挖的...

凡是未完全安装Office字体的,以下英语短语请无视~~

Knowledge is infinite.


级别: 骑士
注册时间:
2006-02-13
在线时间:
0小时
发帖:
1020
只看该作者 52楼 发表于: 2007-04-29
[/han] 谁又挖坟了……


──それは、とても小さな
とても大きな とても大切な 愛と勇気のおとぎばなし──
级别: 工作组
注册时间:
2003-11-07
在线时间:
1小时
发帖:
7032
只看该作者 51楼 发表于: 2007-04-29
引用
最初由 shinjico 发布
蛋蛋赶紧增加对TC的支援吧~~


直接把TC转成120script不也一样么

青空が眩しい 君がいる風景は
幸せのオーラ 溢れ出すの とまらないよ
駅前の噴水 虹を作っているよ
君を待つ時間さえも かけがえない プレシャスな時

=========================

FANSUB的历史,又翻过了新的一页
级别: 超级版主
注册时间:
2004-07-25
在线时间:
121小时
发帖:
3898
只看该作者 50楼 发表于: 2007-04-29
谁又挖坟了 - -

顺便更新下里面的骨头好了 - -

级别: 新手上路
注册时间:
2005-12-24
在线时间:
0小时
发帖:
19
只看该作者 49楼 发表于: 2007-04-29
檔案沒辨法下載,可以放到其他的空間嗎???
级别: 超级版主
注册时间:
2004-07-25
在线时间:
121小时
发帖:
3898
只看该作者 48楼 发表于: 2006-04-23
蛋蛋赶紧增加对TC的支援吧~~

级别: 工作组
注册时间:
2002-08-11
在线时间:
0小时
发帖:
22146
只看该作者 47楼 发表于: 2006-04-23
引用
最初由 adamhj 发布


没解决呢..我最近还为虫师头疼呢...Orz..

为什么非要120不可....


自己写的自己不会用。。。赞一个。。。

轮回之中...
级别: 工作组
注册时间:
2005-05-03
在线时间:
0小时
发帖:
2914
只看该作者 46楼 发表于: 2006-04-23
Re: [流程] 把MKV vfr内嵌成MKV vfr/把MKV vfr嵌成120fps / 把120fps嵌成120fps / 把120fps嵌成mkv vfr 附
引用
最初由 shinjico 发布
2、avi tc gui法(推荐)

一回踢馆 添加avi tc gui法 = =b


AVI TC GUI不错,入手,但是还没有试过
级别: 新手上路
注册时间:
2003-06-23
在线时间:
1小时
发帖:
2882
只看该作者 45楼 发表于: 2006-04-23
引用
最初由 紧箍咒 发布
这种内嵌问题,阿丹的软件早就解决了


没解决呢..我最近还为虫师头疼呢...Orz..

为什么非要120不可....

不学无术中..

eMule ID:[eDtoon][CHN]adamhj@eMule-Official
级别: 精灵王
注册时间:
2005-12-13
在线时间:
0小时
发帖:
3859
只看该作者 44楼 发表于: 2006-04-22
引用
最初由 shinjico 发布
哦?传说中的蛋蛋滤镜么?



= = 那个是什么.完全没听过.

= =
级别: 超级版主
注册时间:
2004-07-25
在线时间:
121小时
发帖:
3898
只看该作者 43楼 发表于: 2006-04-22
哦?传说中的蛋蛋滤镜么?

级别: 工作组
注册时间:
2005-12-13
在线时间:
0小时
发帖:
164
只看该作者 42楼 发表于: 2006-04-22
这种内嵌问题,阿丹的软件早就解决了

根据国家有关规定,65岁以上老年人可以持老年证从漫游ftp免费优先下载
快速回复

限150 字节
上一个 下一个