DGAVCIndex到DGIndexNV索引文件的转换

最近遇到一个奇怪的现象,就是DGIndexNV经常会打不开一些m2ts文件(比如《聖剣の刀鍛冶》的一些部分),错误提示说:

---------------------------
Warning
---------------------------
Cannot find audio data. Ensure that your PIDs
are set correctly in the Stream menu. Refer to the Users Manual for details.

Hit Yes to continue notifying this specific error type; hit No to disable it.
Hit Cancel to suppress all further errors.
---------------------------
是(Y)   否(N)   取消  
---------------------------

而同一个m2ts用DGAVCIndex就能顺利打开。但是又需要用NV的PureVideo Deinterlace来做Deinterlace。于是我打起了dga的主意,看看格式相近的两种Index文件能否进行互相转换。

幸运的是,无论DGAVCIndex生成的dga文件还是DGIndexNV生成的dgi文件都是单纯的文本文件,只需要用记事本一类的纯文本编辑器打开即可进行编辑。而DGIndexNV的文档中也存在dgi文件格式的说明。AVC对应的dgi文件分为四个段落,MPG和VC1对应的索引格式略有不同,详细请参考DGIndexNV文档。

第一个段落是文件头信息。
文件的第一行是文件版本号,用来实现DGDecodeNV.dll和DGMultiDecodeNV.dll对索引文件版本号的识别。版本之间一一对应,没有跨版本兼容性。第二行是DGDecNV存在的路径,不过说白了应该是证书文件的路径,用于以上两个dll载入的时候寻找证书文件。然后是一个空行进入第二节。

第二节是m2ts文件信息。
该小节描述m2ts文件的路径和大小。每行前半部分是m2ts的绝对路径,后半部分是m2ts的大小(字节)。间隔一个空行进入第三节。

第三节是设置区。
这段基本与dga相同,只有一行需要更改,因此本文略过不加详述。间隔一个空行进入第四节。

第四节是索引数据区。
这段基本与dga相同,只需要添加一行。第四节最后有两个空行。

以下是修改方法:
1.第一行文件版本由“DGAVCIndexFile7”改成“DGAVCIndexFileNV5”,然后换行,加入DGIndexNV的路径。
2.在第二节的m2ts文件后面空一个空格,加上文件大小(字节数)。
3.把第二节最后一行的DGAVCIndex路径删除。
4.删掉第三节中间的“FO 2”这行。
5.在第四节最后一行加入“0.00% FILM”。

以下是修改前(dga):

DGAVCIndexFile7

d:\BD\00000.m2ts
d:\DGAVCDec\

STREAM 1
PKTSIZ 192
VPID 4113
FO 2
YUVRGB 1
LUMFILT 0 0
CLIP 0 0 0 0
RANGE 0 6369386495
AUDIO

[第四节省略]

以下是修改后(dgi):

DGAVCIndexFileNV5
d:\DGDecNV\

d:\BD\00000.m2ts 6369386496

STREAM 1
PKTSIZ 192
VPID 4113
YUVRGB 1
LUMFILT 0 0
CLIP 0 0 0 8
RANGE 0 6369386495
AUDIO

[第四节前半部分省略]
0.00% FILM

这样一来,DGIndexNV无法处理的m2ts文件就可以经由DGAVCIndex索引后,通过修改索引文件的方法让DGMultiDecodeNV加载并deinterlace了。

DGAVCIndex到DGIndexNV索引文件的转换有 1 条回应

  • No.508 回复

    硬盘空间允许的话,还可以用eac3to抽出raw视频,然后送入DGNV

发表回应

 
如果您是注册用户,请先登录。
昵称 (*)
E-Mail (*)
(不会公开)
网站
留言 (*)
悄悄话
有(*)标记的是必填项目。