本页为 NMM视频技术(旧)论坛(2004–2012)的只读存档,无法登录或发帖。欢迎前往 新论坛 交流。

NMM视频技术(旧)

查看: 13262回复: 18
打印 上一主题 下一主题

DVDRIP的衮动字幕有横纹.

  [复制链接]
owvqckk
跳转到指定楼层
1楼

这是我弄出来的DVDRIP.

这是别人弄的.
为啥我压的字幕处那么模糊呢.
视频信息.

AVS:
   
LoadPlugin("C:\Program Files\megui\tools\dgindex\DGDecode.dll")
DGDecode_mpeg2source("D:\0.d2v", info=3).trim(38816,41720)
LoadPlugin("C:\Program Files\megui\tools\avisynth_plugin\ColorMatrix.dll")

LoadPlugin("C:\Program Files\megui\tools\avisynth_plugin\TIVTC.dll")
LoadPlugin("C:\Program Files\megui\tools\avisynth_plugin\EEDI2.dll")
LoadPlugin("C:\Program Files\megui\tools\avisynth_plugin\TDeint.dll")
edeintted = AssumeTFF().SeparateFields().SelectEven().EEDI2(field=-1)
tdeintted = TDeint(edeint=edeintted,order=1)
ColorMatrix(d2v="d:\0.d2v")
tfm(order=1,clip2=tdeintted).tdecimate(hybrid=3).changefps(23.976)
crop( 4, 0, -2, 0)
undot()#
sharpen(0.4)
tweak(0,1.1,5,1.1)

LanczosResize(1024,576) # Lanczos (Sharp)
#denoise

怎么处理这种情况.
dgwxx
2楼
发表于 2010-3-10 10:43 只看该作者
30i打上去的字幕,所以最好分段deinterlace。根据背景可以做30p或者60p。如果想要锐利一点的,用nnedi,如果想要模糊、朦胧点的就fielddeinterlace,根据个人口味选择。
还有,你那个changefps(23.976)是怎么回事,tdecimate出来本身就应该是23.976了啊……
akiduki
3楼
发表于 2010-3-10 14:02 只看该作者
soraoto的tv,ed部分的制作比较混乱。单从背景来看,我经历过30t、30i和30p三种情况,前提字幕全部是30i的。所以比较好的制作方法,对于30t只能一起ivtc了,30i选用eedi3或者nnedi2做same framerate,30p干脆不动好了>_<
dgwxx
4楼
发表于 2010-3-10 15:27 只看该作者
说话来,crossgame的ED2跟这个的30p情况是一个类型的,30p背景上叠加30i字幕。我把字幕部分截取出来nnedi2之后再overlay回去的。
owvqckk
5楼
 楼主 发表于 2010-3-10 20:02 只看该作者
头儿.
能给个AVS的语句不.
我还是新手.你们说那么专业的语句看不懂啊...
dgwxx
6楼
发表于 2010-3-10 22:06 只看该作者
如果背景是30i或者telecine的,就直接加nnedi2就行。
如果背景是30p的,就用下面脚本函数:
  1. function deintoverlay(clip clp, int start, int end, int l, int t, int r, int b){
  2.         clp1 = clp.trim(0,(start - 1))
  3.         clp2 = clp.trim(start, end)
  4.         clp3 = clp.trim((end + 1), 0)
  5.        
  6.         clp2_tel = clp2.crop(l,t,(0-r),(0-b)).nnedi2
  7.         clp2 = overlay(clp2,clp2_tel,l,t)
  8.        
  9.         return clp1 + clp2 + clp3
  10. }
复制代码
使用方法:
deintoverlay(start, end, l, t, r, b)
start: 字幕段落开始帧
end: 字幕段落结束帧
l: 画面上字幕区域距画面左边距离(left)
t: 字幕区域距上边距离(top)
r: 字幕区域距右边距离(right)
b: 字幕区域距下边距离(bottom)
再次申明,只有30p背景才用这个方法。而且前提是该段落不能做IVTC。
owvqckk
7楼
 楼主 发表于 2010-3-10 23:33 只看该作者
谢谢老大的指点.
不过那个ED是衮动字幕.由下往上跑的.
左右还能确定.
上下如何确定呢?
还有,我加载D2V之后.直接trim出来那一段.
这样弄行不行?
function deintoverlay(clip clp(这句如果在trim后.还有用么?), int 0, int 2907, int l, int t, int r, int b){      
crop(l,t,(0-r),(0-b)).nnedi2
overlay(clp2,clp2_tel,l,t)
}
dgwxx
8楼
发表于 2010-3-11 13:49 只看该作者
回复 7# owvqckk
是我不好,没有提前给出例子。function结构内部的代码不用动,你只需要像用插件一样就行了。比如:
deintoverlay(1000, 2000, 308, 0, 60, 15)
会对第1000帧到第2000帧范围内,画面左侧308、右侧60、上0、下15的区域进行deinterlace。
滚动字幕一般都有一个固定的区域,找出最宽的区域,截图,用photoshop之类计算范围就行。或者用AviUtl可以一边切边一边看范围,比较方便。
owvqckk
9楼
 楼主 发表于 2010-3-12 00:14 只看该作者

老大.照你说的那样处理之后.字体处是没问题了.
但是画面问题又大了....
LoadPlugin("C:\Program Files\megui\tools\dgindex\DGDecode.dll")
DGDecode_mpeg2source("D:\0.d2v", info=3).crop( 4, 0, -2, 0).LanczosResize(1024,576)
function deintoverlay(clip clp, int start, int end, int l, int t, int r, int b){
        clp1 = clp.trim(0,39058)
        clp2 = clp.trim(39059,41662)
        clp3 = clp.trim(41063, 0)
        
        clp2_tel = clp2.crop(148,0,-148,0).nnedi2
        clp2 = overlay(clp2,clp2_tel,l,t)
        
        return clp1 + clp2 + clp3
}

ColorMatrix(d2v="d:\0.d2v")
trim(38816,41720)
undot()#
sharpen(0.4)
tweak(0,1.1,4,1)

我改成这样了.不管加不加IVTC,画面都跟上面那张图一样....怎么回事啊.
dgwxx
10楼
发表于 2010-3-12 07:53 只看该作者
我在6楼强调了两次这个脚本函数只能用在背景30p的情况……
在2楼和6楼都说了,背景不是30p,就做成60fps(背景动态大)或者30fps(背景动态小),可以单独用nnedi2(既可以30也可以60),也可以用TempGaussMC_beta1mod这类的脚本函数(非常慢,但效果非常好,只能60)。根据效果和具体情况自己选择。

此外,您根本没有读我8楼的说明贴,都告诉您了不要修改function段里的内容,要像用插件一样调用。您非但改了function里的内容,而且只是把函数粘贴到了脚本里面,根本没有调用。
您在解除交错之前就crop和resize,这样相当于把交错固定在了画面上,一切deinterlace和ivtc都没用了。
在提问之前请先仔细阅读别人的回答。对于您在什么都不知道的情况下就来挑战rip的勇气我表示钦佩,但您好歹学点基础知识再弄好不……
owvqckk
11楼
 楼主 发表于 2010-3-12 11:39 只看该作者
我在6楼强调了两次这个脚本函数只能用在背景30p的情况……
在2楼和6楼都说了,背景不是30p,就做成60fps( ...
dgwxx 发表于 2010-3-12 07:53


- -  
我有好好看你们的解说.
只是没有理解正确了...
的确,,我什么都不知道.
只知道什么叫AVS,,,就这样了..
老大你能指下去哪学基础知识么.
我表示.现在会弄MEGUI已经相当不容易了.TVT
dgwxx
12楼
发表于 2010-3-12 15:24 只看该作者

您真的有在看我的说明么,我一而再再二三地强调:不是30p背景别用这个脚本。结果您依旧在锲而不舍地试图用这个脚本,这是一种什么精神?基础不会就去看置顶帖。

好吧,既然语言交流不管用,那么我就用身体教楼主怎么写好了:
  1. LoadPlugin("C:\Program Files\megui\tools\dgindex\DGDecode.dll")
  2. LoadPlugin("C:\Program Files\megui\tools\avisynth_plugin\TIVTC.dll")
  3. LoadPlugin("C:\Program Files\megui\tools\avisynth_plugin\nnedi2.dll")

  4. DGDecode_mpeg2source("D:\0.d2v", info=3)

  5. s1 = last.trim(0, 39058)
  6. s1_deint = s1.nnedi2()
  7. s1 = s1.tfm(order=1,clip2=s1_deint).tdecimate(mode=1)

  8. s2 = last.trim(39059, 41662).nnedi2().assumefps(s1.framerate)
  9. s3 = last.trim(41063, 0).tfm(order=1).tdecimate(mode=1)

  10. s1 + s2 + s3

  11. LanczosResize(1024,576,4,0,-2,0)
  12. ColorMatrix(d2v="d:\0.d2v")
  13. trim(38816,41720)
  14. undot()
  15. sharpen(0.4)
  16. tweak(0,1.1,4,1)
复制代码
片尾字幕的部分,没有做IVTC,而是用nnedi2做了deinterlace,因为片尾部分是30fps,所以封装mkv的时候需要加入timecode才行。
timecode写法是:
  1. # timecode format v1
  2. Assume 23.976
  3. 111111,222222 29.97
复制代码
把111111改成片尾开始的帧,把222222改成片尾结束的帧。因为前面部分做过IVTC所以帧号变了,自己开VDM看去。
这个地步,您再不会的话,给您两个选择:
1.好好学习。
2.老老实实当看片党。
owvqckk
13楼
 楼主 发表于 2010-3-12 17:45 只看该作者
本帖最后由 owvqckk 于 2010-3-12 17:46 编辑

感谢老大.
不过那个有nndi2的文本.
用VDM.MEGUI,ERP等工具打开的时候就会出现.
XXX停止工作的现像.
KMP播AVS的时候也是这样.
把那个nnedi2语句去掉,就能压.
这是怎么回事....
LBS123456
14楼
发表于 2010-3-12 18:17 只看该作者
我就用身体教楼主怎么写好了 ...
dgwxx 发表于 2010-3-12 15:24


纯引。。。
dgwxx
15楼
发表于 2010-3-12 19:01 只看该作者
回复 13# owvqckk
用这个nnedi2.dll替代:
http://bengal.missouri.edu/~kes25c/nnedi2.dll
owvqckk
16楼
 楼主 发表于 2010-3-12 20:20 只看该作者
本帖最后由 owvqckk 于 2010-3-12 20:34 编辑

经过老大的指点.
发现后面 31088-34375
这些帧中.有一段视频反复播放了.
实际上不重复的帧为(31088,33850)(34331,34375)这二段.
怎么为这二段进行
# timecode format v1

Assume 23.976

11111111,22222 29.97

这段语句啊.
还有阿老大.
为什么视频中会多出来一个重复的片段.
还有那个AVS出来的ED部分一卡一卡的.好像丢帧一样.
不过字幕跟画面相当好.
能解说下不.- -
不要生气啊.
生气对身体不好XD
lititude
17楼
发表于 2010-3-12 20:32 只看该作者
那么我就用身体教楼主怎么写好了 ...
dgwxx 发表于 2010-3-12 15:24
dgwxx
18楼
发表于 2010-3-12 21:06 只看该作者
回复 16# owvqckk
AVS我教你可以,数数自己试着数吧,我没有片源,你跟我说那些数字我也不知道是多少帧。还是那句话,没有金刚钻别揽瓷器活,有多少能力做多少活。与其你现在弄得乱七八糟,不如先把该学的先学了。有在这折腾的功夫不如把置顶帖里的东西多看两遍,到时候自然什么都明白了。就算知其然不知其所以然蒙混过去,下次遇到问题照样两眼一摸黑,总不能每次都我帮你写吧。

回归问题本身。不流畅是正常的,因为你背景是3:2 pulldown的,前景是30i的。想流畅可以用TempGaussMC_beta1mod代替nnedi2,不过这个出来是60fps,timecode里的29.97也要跟着变成59.94。
owvqckk
19楼
 楼主 发表于 2010-3-12 21:22 只看该作者
紧记老大教导.
不过置顶里的好像全是教怎么做的.
没有解说每一步是什么意思.还是看不懂啊.

小黑屋手机版NMM视频技术

GMT+8, 2026-10-11 12:23 , Processed in 0.023296 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.