NMM视频技术(旧)

 找回密码
 成为会员
搜索
楼主: whitestone

[AVS技巧] [请教]比较莫名其妙的一个问题

[复制链接]
发表于 2009-7-11 09:26 | 显示全部楼层
上帝给您开了一个小玩笑。
发表于 2009-7-11 17:05 | 显示全部楼层
终于看到了HARUHI的ISO,果然名不虚传。
一个20多分钟的片,花几个小时时间研究处理方案的话,估计压完了也看腻了
发表于 2009-7-12 08:48 | 显示全部楼层
本帖最后由 Only Human 于 2009-7-12 08:53 编辑

我模仿着大虾的脚本写AVS
  1. s = mpeg2source("C:\Documents and Settings\葬。\桌面\VIDEO_TS\VTS_01_1.d2v")
  2. s1 = s.trim(11,152)
  3. s1_deint = s1.TempGaussMC_beta1mod().SelectEven().assumefps(s.29.970)
  4. s2 = s.trim(153,7492)
  5. s2 = s2.tfm(mode=3, pp=0, slow=2, chroma=true).tdecimate(mode=1).assumefps(s.23.97600)
  6. s = s1 + s2
  7. s = s.Lanczosresize(640,480,5,0,-4,0)
复制代码
结果拿VDM预览时给我这样的提示:The script's return value was not a video clip.
然后我换成
  1. s = mpeg2source("C:\Documents and Settings\葬。\桌面\VIDEO_TS\VTS_01_1.d2v")
  2. s = s.Lanczosresize(640,480,5,0,-4,0)
复制代码
结果还是一样...
请问这脚本出了什么问题...
弄成这样是可以的...
  1. s = mpeg2source("C:\Documents and Settings\葬。\桌面\VIDEO_TS\VTS_01_1.d2v")
  2. s.Lanczosresize(640,480,5,0,-4,0)
复制代码
发表于 2009-7-12 09:29 | 显示全部楼层
1.前面的您都模仿了,唯独忘记在最后加上一句"return s",把clip s输出………
2.此外您的“assumefps(s.23.97600)”这个写法是错误的。s.framerate的意义在于clip s的属性"framerate"。s.framerate整体的值是23.97600。而不是叫您把framerate替换成23.976。
3.此外您的resize做法也是错误的。0误差4:3的正确做法是:左右合计切9,resize到648×480,之后左右再切8到640×480才是正确的。你跳过了第一部直接resize到了640×480。
发表于 2009-7-12 11:03 | 显示全部楼层
本帖最后由 Only Human 于 2009-7-12 13:14 编辑

谢谢大虾指正错误...
受益匪浅...
还有大虾不用叫我...您的,...你就好了....您太客气了....
AVS改成这样VDM能预览了...那个C&R能这样做么...
  1. s = mpeg2source("C:\Documents and Settings\葬。\桌面\VIDEO_TS\VTS_01_1.d2v")

  2. s1 = s.trim(11,152)

  3. s1 = s1.TempGaussMC_beta1mod().SelectEven().assumefps(s.framerate)

  4. s2 = s.trim(153,7492)

  5. s2 = s2.tfm(mode=3, pp=0, slow=2, chroma=true).tdecimate(mode=1).assumefps(s.framerate)

  6. s = s1 + s2

  7. s = s.Lanczosresize(648,480,5,0,-4,0)

  8. s = s.crop(4,0,-4,-0)

  9. return s
复制代码
发表于 2009-7-12 11:50 | 显示全部楼层
嗯,这样就没错了。压好之后再手写tc就ok。
发表于 2009-7-12 12:21 | 显示全部楼层
本帖最后由 Only Human 于 2009-7-12 13:33 编辑

我很迷茫...
然后又想问timecode如何使用,,...
写个TXT的文本
  1. # timecode format v1

  2. Assume 23.976024

  3. 0,152,29.970030

  4. 153,7492,23.976024
复制代码
再一起封装进MKV这样对么
============================================
已经封装成功...
再一次感谢大虾跟帮新人解决问题的大大们...
发表于 2009-7-12 13:58 | 显示全部楼层
本帖最后由 diseac 于 2009-7-12 14:00 编辑

说一点不太重要的问题,我个人不太喜欢在AVS里用太多的变量,尽量last解决,其实楼主的代码可以写成这样,看着比较简洁易懂。
当然楼主的代码是没有问题的,只是一点小建议。
  1. mpeg2source("C:\Documents and Settings\葬。\桌面\VIDEO_TS\VTS_01_1.d2v")
  2. fr = last.framerate
  3. s1 = last.trim(11,152).TempGaussMC_beta1mod().SelectEven().assumefps(fr)
  4. s2 = last.trim(153,7492).tfm(mode=3, pp=0, slow=2, chroma=true).tdecimate(mode=1).assumefps(fr)
  5. s1+s2
  6. Lanczosresize(648,480,5,0,-4,0)
  7. crop(4,0,-4,-0)
复制代码
发表于 2009-7-12 14:19 | 显示全部楼层
diseac 的建议收下了....
谢谢你们提供的AVS脚本...
这样我就可以模仿着写AVS...
发表于 2009-7-12 15:49 | 显示全部楼层
28# diseac
写php的遗留习惯出来了m(_ _)m
PHP里面不能last,所以一切都靠变量解决= =||
发表于 2009-7-13 08:36 | 显示全部楼层
这样压制以后影音是同步了...
但是貌似出现另一个问题...
字幕的同步问题该如何解决呢...
发表于 2009-7-13 09:06 | 显示全部楼层
字幕是按时间轴的顺序出现的,如果外挂或者MKV封装的话,就不用考虑字幕同步的问题了。
如果内嵌的话,修改ASS是一种办法,不知道还有没有其他高级的办法。
发表于 2009-7-13 09:11 | 显示全部楼层
外挂观看完全不用在意时间轴问题,直接看就行了。
内嵌的话需要调整时间轴。好像有程序可以根据tc自动调整字幕时间轴。有人在论坛提到过,是一个网页-v-忘记在哪了……
发表于 2009-7-13 09:16 | 显示全部楼层
4分种的片源...
几M的字幕外挂的话会不会出问题....
发表于 2009-7-13 11:13 | 显示全部楼层
外挂就不用考虑什么问题了,或者封进MKV,都可以。
4分钟的片源,字幕要几M,ASS里嵌入了图象吧……
发表于 2009-7-13 11:36 | 显示全部楼层
嗯...加了粒子图像等...
我想再写一些AVS...
先全部按24帧做字幕...
然后把用到字幕的截出来...
再合并...晚上回去再试试好了...
MKV挂特效ASS估计会死人的...
发表于 2009-7-13 11:59 | 显示全部楼层
太过复杂的字幕不光外挂会出问题,内嵌的时候也会出问题。VSFilter的leak好像很严重的样子,内嵌的时候会导致内存占用越来越大,超过极限之后AVS崩溃。好像PPG那边有人出过修正版,具体我没有关心,楼主可以关注一下那边。
发表于 2009-7-13 12:44 | 显示全部楼层
既然ASS的特效这么麻烦,倒不如用AE来做,然后和片源overlay。
在ASS里只包含文字的字幕,内嵌起来应该省事不少吧。
发表于 2009-7-13 12:46 | 显示全部楼层
恩...谢谢你们了....
在这里学到了很多编码相关知识...
发表于 2009-7-13 19:11 | 显示全部楼层
Aegisub能根据TC来修改ASS的时间轴
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

小黑屋|手机版|NMM视频技术

GMT+8, 2025-5-6 02:10 , Processed in 0.301528 second(s), 12 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表