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

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

楼层直达
级别: 超级版主
注册时间:
2004-07-25
在线时间:
120小时
发帖:
3897
以前经常看到关于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

级别: 工作组
注册时间:
2005-09-11
在线时间:
0小时
发帖:
458
只看该作者 1楼 发表于: 2006-04-09
谢谢大大的教程,学习去...

-=eDtoon=-wingaya
级别: 精灵王
注册时间:
2005-12-13
在线时间:
0小时
发帖:
3859
只看该作者 2楼 发表于: 2006-04-10
太好了正为了いぬかみっ!/第01話「はだかでドンマイっ!」(D-TV朹京 XviD1.1.0 VFR:ED60f AAC).mkv
这个RAW而烦恼

= =
级别: 侠客
注册时间:
2003-10-01
在线时间:
1小时
发帖:
509
只看该作者 3楼 发表于: 2006-04-10
其实还是嵌VFR MKV更好些的说,FATE算是比较简单的Timecode啦,要是遇上麻烦的VFR MKV分段累死人啊........

有兴趣参与听写动画日文字幕的同好可PM偶或加群2179873

目前制作进度:http://bbs.jpseek.com/read.php?tid=594
级别: 风云使者
注册时间:
2002-09-11
在线时间:
0小时
发帖:
4791
只看该作者 4楼 发表于: 2006-04-10
做成120AVI有什么不好?

人間五十年 下天のうちをくらぶれば 夢幻の如くなり 一度生を得て 滅せぬ者のあるべきか
服务器 ftp://txxz.share.comic.cn 用户名:txxz 密码:share 1线50K可LIST以上服务器提供TX作品下载 有需要而上面没的请PM我 感谢漫网提供服务器
本社聊天催片OX群:10042749 欢迎插入 重口味满载!
级别: 骑士
注册时间:
2005-05-11
在线时间:
0小时
发帖:
1269
只看该作者 5楼 发表于: 2006-04-10
汗...=口=???

级别: 超级版主
注册时间:
2004-07-25
在线时间:
120小时
发帖:
3897
只看该作者 6楼 发表于: 2006-04-10
引用
最初由 alcaid 发布
其实还是嵌VFR MKV更好些的说,FATE算是比较简单的Timecode啦,要是遇上麻烦的VFR MKV分段累死人啊........


对于复杂的120fps,一般用AVIread到导出asc,然后用subedit对ass进行修正,和tc法途径不一样,原理类似。

级别: 侠客
注册时间:
2003-10-01
在线时间:
1小时
发帖:
509
只看该作者 7楼 发表于: 2006-04-10
引用
最初由 shinjico 发布


对于复杂的120fps,一般用AVIread到导出asc,然后用subedit对ass进行修正,和tc法途径不一样,原理类似。


现在120FPS的AVI越来越少了啊,VFRMKV和WMV越来越多,期待sswroom大大能早日推出timecode和asc互换的工具。

有兴趣参与听写动画日文字幕的同好可PM偶或加群2179873

目前制作进度:http://bbs.jpseek.com/read.php?tid=594
级别: 工作组
注册时间:
2005-05-03
在线时间:
0小时
发帖:
2914
只看该作者 8楼 发表于: 2006-04-10
VFR的WMV要怎么处理?只要搞到Timecode我剩下的都会……
级别: 侠客
注册时间:
2003-10-01
在线时间:
1小时
发帖:
509
只看该作者 9楼 发表于: 2006-04-10
引用
最初由 雷鸣 发布
VFR的WMV要怎么处理?只要搞到Timecode我剩下的都会……


好像DIO大大的那个软件支持把WMV封成VFRMKV的吧(希望没记错^_^)

有兴趣参与听写动画日文字幕的同好可PM偶或加群2179873

目前制作进度:http://bbs.jpseek.com/read.php?tid=594
级别: 精灵王
注册时间:
2005-12-13
在线时间:
0小时
发帖:
3859
只看该作者 10楼 发表于: 2006-04-10
把WMV封成VFRMKV的

好象精华区里有教程..

= =
级别: 工作组
注册时间:
2002-08-11
在线时间:
0小时
发帖:
22146
只看该作者 11楼 发表于: 2006-04-16
Aegisub这东西还挺有意思呢...

轮回之中...
级别: 超级版主
注册时间:
2002-08-18
在线时间:
181小时
发帖:
14839
只看该作者 12楼 发表于: 2006-04-16
1. The file is expired.
2. The file owner closed the share or deleted the file.
3. The pickup code is not entered correctly.


換個空間吧 例如用RS = =

FREEWIND台湾,日本商品团购MSN群: group130599@xiaoi.com 欢迎入群讨论!!
贩售台湾正版CD,DVD,漫畫,輕小說,及台灣各種商品,采Door to Door服务有保障!!请大家告诉大家!!
※FREEWIND工作室官方掏宝店铺,请点我!!!※

※漫游FREEWIND工作室招募人才 請點我!※
※漫游FREEWIND工作室作品汇总 請點我!※
※漫游FREEWIND工作室招募分流FTP&P2P分流员 請點我!※

级别: 工作组
注册时间:
2003-08-26
在线时间:
13小时
发帖:
6600
只看该作者 13楼 发表于: 2006-04-16
或者用fsphost……

催片请点此处: http://bbs.popgo.org/bbs/read.php?tid=502402&displayMode=1#19103164
级别: 超级版主
注册时间:
2004-07-25
在线时间:
120小时
发帖:
3897
只看该作者 14楼 发表于: 2006-04-16
哦,shin搞错了,原来传到接力站去了~ 重新传了下~

快速回复

限150 字节
上一个 下一个