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

XviD制作教程(10.22update)

楼层直达
级别: 新手上路
注册时间:
2002-11-27
在线时间:
0小时
发帖:
88
制作所需软件:
DVD2AVIdg/MPEG2DEC3dg Version 1.0.0
AviSynth 2.5.2
XviD MPEG4 codec
VirtualDubMod 1.5.4.1
AviSynth_250 plugins:
Decomb5.0.0
Gordian Knot 0.28

1.用DVD2AVI分离mpeg2文件的音频流,确定视频流的规格信息.
首先选择Video - Field Operation,设置为None。按F5开始预览。让它运行一会儿,观察status窗口。这里有两个你需要记住的东西:第一个是Aspect Ratio,要么是16:9要么是4:3,另一个是frame type。

    [*]Frame Rate = 25.000 fps: 视频源是PAL制式的。如果frame type是隔行扫描(Interlaced)的,再次开始预览,仔细观察。如果你没有看到水平黑线那么实际上图像是逐行扫描(progressive)的,这里的工作就已经完成了。如果出现黑线,那么尝试着改变场序:选择Video - Field Operation - Swap Field Order,然后重新预览。如果依然看到黑线就把Field peration重设为None并进行Deinterlace(过程在后面详述);否则就算是完成了。
    [*]Frame Rate = 20.000 fps: 视频源是PAL制式的,你打开了Forced Film。把Field Operation设为None就可以得到正确的帧率。
    [*]Frame Rate = 29.970 fps: 预览几分钟,看Video Type:如果是FILM,百分比高于或等于95%或者只显示FILM那么你就打开Forced FILM,否则就要进行IVTC(过程在后面详述),例如只显示NTSC就只能做IVTC。
    [*]Frame Rate = 23.976 fps: 这是在NTSC电影中打开Forced FILM的后果。如果Video Type是FILM,或者是百分比高于或等于95%的FILM,那么这就完全正确,否则你需要把Field Operation设为None并进行IVTC(过程在后面详述)。

最后根据情况保存DVD2AVI工程文件
①视源全部为Progressive的或者Video Type是FILM并打开了Forced Film
File->Save Project [F4]
②视源是Interlaced的或者部分Interlaced部分Progressive
File->Save Project (1.76)

2.编写Avisynth script生成avs档
下是一个Avisynth script模板,带"#"内容以不起作用,根据使用情况去掉或者加上
根据上述①②分两种情况:
①的情况(YV12制程)
mpeg2_P.avs:
  1. LoadPlugin("MPEG2Dec3dg.dll")
  2. mpeg2source("xxx.d2v")
  3. crop(6,4,-6,-4)
  4. LanczosResize(640,480)
  5. # DENOISING: choose one combination (or none)
  6. #LoadPlugin("UnDot.dll")
  7. #UnDot()
  8. #UnDot is a simple median filter for removing dots, that is stray orphan pixels and
  9. #mosquito noise. It basicly just clips each pixel value to stay within min and max
  10. #of its eight surrounding neigbors.
  11. #LoadPlugin("Convolution3d.dll")
  12. #Convolution3d("movielq")
  13. #Convolution3d (preset="movieHQ") // Movie Hi Quality (good DVD source)
  14. #Convolution3d (preset="movieLQ") // Movie Low Quality (noisy DVD source)
  15. #Convolution3d (preset="animeHQ") // Anime Hi Quality (good DVD source)
  16. #Convolution3d (preset="animeLQ") // Anime Low Quality (noisy DVD source)
  17. #Convolution3d (preset="animeBQ") // Anime Bad Quality (???)
  18. #Convolution3d (preset="vhsBQ") // VHS capture Bad Quality (???)


②的情况(YUY2制程)
mpeg2_I.avs:
  1. LoadPlugin("LoadPluginEx.dll")
  2. LoadPlugin("MPEG2DEC2.dll")
  3. mpeg2source("xxx.d2v")
  4. #首先确定你DVD2AVI时是把Field Operation设为None,否则不要使用以下内容
  5. LoadPlugin("Decomb500.dll")
  6. #FieldDeinterlace()
  7. #影片做Deinterlace (Frame Rate:25.000 fps, Video Type:PAL,Frame Type:Interlaced)
  8. #预览画面,仔细观察。如果你没有看到水平黑线那么实际上图像是progressive的,则影片不用做Deinterlace
  9. #Telecide(order=1,guide=1)
  10. #Decimate(cycle=5)
  11. #影片做IVTC (Frame Rate:29.970 fps, Frame Type:Interlace, Field Order:Top Field First, NTSC 3:2 pulldown)
  12. #若影片的Field Order是Bottom Field First,则设置order=0;不是3:2 pulldown的去掉",guide=1"
  13. #判断Field Order和3:2 pulldown的方法请看order_guide.avs
  14. crop(8,66,-6,-60)
  15. #切边:最后兩个数字一定要为负数,所以請手動加上"-"
  16. #按照GK的Resolution里面的数值填上Crop(left,top,-width,-height)
  17. LanczosResize(640,352)
  18. #放大縮小,按照GK的Resolution里面的Width x Height数值填上LanczosResize(width,height)
  19. #LumaFilter(+10,1.1)
  20. #亮度滤镜
  21. #变暗:LumaFilter(-10,0.9)
  22. #变亮:LumaFilter(+10,1.1)
  23. #LumaFilter(clip, integer "lumoff", float "lumgain")
  24. #the transfomation is : yy = (y*lumgain)+lumoff
  25. #lumoff : Luminosity offset. default = -2 (for iago ^^)
  26. #lumgain : Luminosity gain. default = 1
  27. # DENOISING: choose one combination (or none)
  28. #LoadPlugin("UnDot.dll")
  29. #UnDot()
  30. #LoadPlugin("FluxSmooth-2.5.dll")
  31. # little noise
  32. #FluxSmooth(5,7)
  33. # medium noise
  34. #FluxSmooth(7,7)
  35. # heavy noise
  36. #FluxSmooth(10,15)
  37. #调用字幕
  38. #LoadPlugin("VSFilter.dll")
  39. #TextSub("xxx.ssa")


order_guide.avs:
  1. LoadPlugin("LoadPluginEx.dll")
  2. LoadPlugin("MPEG2DEC2.dll")
  3. LoadPlugin("Decomb500.dll")
  4. mpeg2source("xxx.d2v")
  5. AssumeTFF().SeparateFields()
  6. #Telecide(order=1,guide=1,post=0,show=true)
  7. # 1.Set the Field Order:
  8. #Add a script line to separate the fields using top field first, as follows:
  9. #AssumeTFF().SeparateFields()
  10. #Now serve the script into VirtualDub and find an area with motion. Single step forward
  11. #through the motion. Note whether the motion progresses always forward as it should, or
  12. #whether it jumps back and forth as it proceeds. For example, if the field order is wrong,
  13. #an object moving steadily from left to right would move right, then jump back left a
  14. #little, then move right again, etc. If the field order is correct, it moves steadily to
  15. #the right.
  16. #If the motion is correct with AssumeTFF().SeparateFields(), then your field order is top
  17. #field first and you must set order=1. If the motion is incorrect, then your field order
  18. #is bottom field first and you must set order=0
  19. # 2.Set up Pattern Guidance:
  20. #Second, you can serve the following script into VirtualDub and see what Telecide() reports
  21. #about it (remember to use the correct field order as you determined it above).
  22. #AviSource("your_clip.avi")
  23. #Telecide(order=1,guide=1,post=0,show=true)
  24. #Serve this into VirtualDub and step through several typical sections of your clip. If
  25. #Telecide() reports "in-pattern", or "in-pattern*", then it is locking onto 3:2 pulldown.
  26. #If it reports "out-of-pattern" or continuously jumps in and out of pattern lock, then it
  27. #is not locking onto a consistent 3:2 pattern.
  28. #If you determine that your clip has a lot of 3:2 content, then you should go ahead and set
  29. #guide=1. If there is not a lot of 3:2 content, or you have any doubts about the nature of
  30. #the clip, then you should set guide=0.


以上avs需要用VirtualDubMoD打开预览并根据情况修改相关内容,直到预览的画面没有问题再进行下一步的真正编码.

3.用VirtualDubMoD打开最终的avs档,进行MPEG-4编码,生成Avi档
Video-->Fast recompress
xvid 1psss setting:
Global选项里
Quantization type-->H.263
VHQ mode--> 0-Off
Maximum / Minimum I-frame interval-->240 / 1
将最大关键帧设为每秒帧数的10倍(例如:240、250、300)
Use Chroma motion
Maximum B-frames-->2
B-frames quantizer ratio(%)-->100
B-frames quantizer offset-->1
B-frames threshold-->0
DX50 B-VOP compatibility

Two Pass里:
在1st pass stats指定一个目录来保存video.stats
File->save as...(F7)开始做1pass

完成后在Gordian Knot中的NanDUB Files中,OPEN打开XVID 1st pass建立的video.stats文件。
回到GK的Bitrate界面上,进行码流计算和決定要做成多少CD版本.通过调整Total File Size使Video Size/1st Pass Size的比值在30%-40%左右就可以达到质量和大小之间的平衡了.
拷贝在Video Size 這一栏里的那个xxxxxx KB的值,这个在VirtualDubMoD做2pass-int时会用到

2 Pass - 2nd pass int setting:
在Desired size(Kbtyes)填入之前在GK拷贝的那个值,即刚才在GK计算记下Video Size的大小(KB那个数值)
Advanced option...
B-frames quantizer offset-->200
Two Pass:
确定1st pass stats为之前做1pass时生成的video.stats文件
Bitrate payback delay (frames)->240
应设为每秒帧数的10倍(例如:240、250、300)

在Debug里:
把Chroma Optimizer和Use trellis R-D quantisation(该选择只对H.263有效)都选上

File->save as...(F7)开始做2pass

4.最后用VDM或NanDub合成音频流.

附上xvid-dev-api-4-2003-10-05的推荐设置
2-pass,chroma motion,h263,vhq4,BVOPs=2,ratio=1,offset=2,Trellis quantisation
级别: 新手上路
注册时间:
2004-10-21
在线时间:
0小时
发帖:
81
只看该作者 40楼 发表于: 2004-12-11
非常好的dd,谢谢楼主了 thanks
级别: 新手上路
注册时间:
2004-12-08
在线时间:
0小时
发帖:
8
只看该作者 39楼 发表于: 2004-12-10
楼主,你好
下面是我的几点总结和疑问,请帮忙指正和回答
[list=1]
[*]最源头视频------电影摄影机录制的(24桢/S)和电视摄影机录制的(50场/S PAL的、60场/S NTSC的)
[*]通过胶转磁制到DVD上:48场的电影碟、60场的视频碟、50场的视频碟
[*]电影碟又被称为逐行碟,那2种视频碟也有逐行碟和隔行碟之分?(我只听说隔行DVD机和逐行DVD机)
[*]我们电脑里所说的隔行信号和逐行信号是针对DVD光驱读碟生成隔行和逐行信号还是针对逐行的碟和隔行的碟?
[*]楼主提到了Interlaced和progressive的PAL,好像PAL有隔行和逐行之分了,那NTSC也该有隔行与逐行之分了,但下面提到NTSC时,区分出了95%以上是FILM,这个FILM是逐行的NTSC呢还是电影碟的意思呢,如果是电影蝶的话,那么逐行的NTSC是什么呢?
[*]如果假设PAL DVD碟有隔行逐行之分,那么他们的存储或工作原理区别是什么呢??
[*]可否形象的从显示原理上解释一下隔行逐行的区别?
[/list=1]
级别: 新手上路
注册时间:
2004-03-29
在线时间:
0小时
发帖:
100
只看该作者 38楼 发表于: 2004-09-25
感觉是在看天书
级别: 新手上路
注册时间:
2002-11-27
在线时间:
0小时
发帖:
88
只看该作者 37楼 发表于: 2003-11-05
Re: 有來问题了
引用
最初由 神威 发布
我使用gk的时候 保存stats文件的时候 我在stats file editor进行最后计算的时候 出现 警告说number of frames not matching.
不能进行计算桢数的工作 这个时候应该继续 还是那里有没有调整好呢?

第二个问题
gk的bitrate选项里
现在多出了 xvid 计算的时候我一般都用这个
然后呢 frames 栏目里的 fps选项是不是根据动画来的
如果动画是 23.976这里就可以改成23.976 默认值是25

麻烦了 谢谢搂主

建议不要用GK的Stats File Editor生成新的stats 文件.这个是对divx3设计的.
用于xvid出来的结果是错的.如果是xvid-dev-api-4更加不能用,连stats都打不开.
用GK计算码流的指标有两种:
如果你确定要做成1CD或者2CD大小的文件就不必去分析什么stats了.直接设置成CD的容量,再把音频和字幕的容量计算进去就可以得到视频部分的码流和大小了.
然后用2 Pass - 2nd pass int
这种做法可以1pass和2paas加任务连在一起做.

Bits/(Pixel*Frame)这个指标是根据影片的时间和output resolution粗略计算的.一般>0.2
Video Size/1st Pass Size是在Bits/(Pixel*Frame)的基础上加入对1pass的stats文件分析,比较准确.

在GK计算码流时的Frames FPS要设置为输出文件的FPS.例如需要做IVTC的视频要设置为23.976.其它的通常保持源文件的FPS
级别: 风云使者
注册时间:
2002-09-29
在线时间:
0小时
发帖:
9568
只看该作者 36楼 发表于: 2003-11-05
有來问题了
我使用gk的时候 保存stats文件的时候 我在stats file editor进行最后计算的时候 出现 警告说number of frames not matching.
不能进行计算桢数的工作 这个时候应该继续 还是那里有没有调整好呢?

第二个问题
gk的bitrate选项里
现在多出了 xvid 计算的时候我一般都用这个
然后呢 frames 栏目里的 fps选项是不是根据动画来的
如果动画是 23.976这里就可以改成23.976 默认值是25

麻烦了 谢谢搂主


X-JAPAN COME ON EVERYBODY!
1997 9.22 X Japan
1997 12.31 Tokyo DomeThe Last LiveForever Love
1998 5.2 hide
X-JAPAN  
欣赏X-JAPAN 曲谱 吉他谱 MP3 MIDI点过来吧!
级别: 新手上路
注册时间:
2002-11-27
在线时间:
0小时
发帖:
88
只看该作者 35楼 发表于: 2003-11-02
Re: 繼續問題
引用
最初由 神威 发布
如果是avi格式或者其他各式的 raw 用什么来分比较好呢
而且如何来判断Frame Rate 的数值呢??

谢谢楼主回答


要分离音频可以使用VirtualDubMod,在File->File Infomation可以看到Frame Rate
级别: 风云使者
注册时间:
2002-09-29
在线时间:
0小时
发帖:
9568
只看该作者 34楼 发表于: 2003-11-02
繼續問題
如果是avi格式或者其他各式的 raw 用什么来分比较好呢
而且如何来判断Frame Rate 的数值呢??

谢谢楼主回答


X-JAPAN COME ON EVERYBODY!
1997 9.22 X Japan
1997 12.31 Tokyo DomeThe Last LiveForever Love
1998 5.2 hide
X-JAPAN  
欣赏X-JAPAN 曲谱 吉他谱 MP3 MIDI点过来吧!
级别: 小荷初露
注册时间:
2003-05-23
在线时间:
8小时
发帖:
99
只看该作者 33楼 发表于: 2003-11-01
真详细!谢谢!
级别: 新手上路
注册时间:
2002-11-27
在线时间:
0小时
发帖:
88
只看该作者 32楼 发表于: 2003-10-30
Re: Gordian Knot 0.28
引用
最初由 神威 发布
这里面软件 基本都带全了
VirtualDubMod 这样的软件还需要重新来下吗?
只不过版本新一点 感觉没有什么用啊
不知道楼主怎么说?
另外还有一个问题
如果不是mpeg2文件 能用DVD2AVI来分吗
感觉其他用AVIMux_GUI可能好一点吧 如果用AVIMux_GUI
如何进行avs的调整呢 如何去看呢??

几个白吃问题 谢谢楼主大大 帮助赐教

对GordianKnot.RipPack里都包括了基本的了,但有时候GK更新很慢.一些重要的更新没有及时加进去.例如 DVD2AVIdg/MPEG2DEC3dg Version 1.0.0这个重要更新.而且我给出各个软件的官方链接不是更好吗?

DVD2AVI只能解码mpeg2,mpeg1也不能拿它来解码.
PS: mpeg2的解码还可以用 M2V(MPEG-2 VIDEO VFAPI Plug-In),它画质是最好的,它的 upsampling 比 DVD2AVI 还高阶,而且它的 chroma upsampling 和 DVD2AVI 一样是正确的,其它的 MPEG-2 DirectShow Filter,除了 PowerDVD 以外,WinDVD, Ligos 等都是错的.

avs的调整主要是指里面的滤镜插件参数的调整.还有就是画面有没有留有Interlaced的帧没有处理好.
如何去看呢?
当然用眼睛看哦,在VDM里预览的效果就是未经xvid,divx等压缩的效果,如果加了字幕的还要看看字幕的位置样式等是否是你想要的效果.
级别: 风云使者
注册时间:
2002-09-29
在线时间:
0小时
发帖:
9568
只看该作者 31楼 发表于: 2003-10-30
Gordian Knot 0.28
这里面软件 基本都带全了
VirtualDubMod 这样的软件还需要重新来下吗?
只不过版本新一点 感觉没有什么用啊
不知道楼主怎么说?
另外还有一个问题
如果不是mpeg2文件 能用DVD2AVI来分吗
感觉其他用AVIMux_GUI可能好一点吧 如果用AVIMux_GUI
如何进行avs的调整呢 如何去看呢??

几个白吃问题 谢谢楼主大大 帮助赐教


X-JAPAN COME ON EVERYBODY!
1997 9.22 X Japan
1997 12.31 Tokyo DomeThe Last LiveForever Love
1998 5.2 hide
X-JAPAN  
欣赏X-JAPAN 曲谱 吉他谱 MP3 MIDI点过来吧!
级别: 新手上路
注册时间:
2002-11-27
在线时间:
0小时
发帖:
88
只看该作者 30楼 发表于: 2003-10-25
引用
最初由 Kyo.Tokio 发布
没有经过压缩的raw avi,用xivd压了之后视频画质大约有多少损失?

没有经过压缩的raw avi是指用huffyuv编码吗?
画质有多少损失就要看xvid怎样设置了.如果是有经验的高手可以使用自定义的matrix来压,应该可以使损失降到最低.
级别: 骑士
注册时间:
2003-08-24
在线时间:
1小时
发帖:
938
只看该作者 29楼 发表于: 2003-10-25
没有经过压缩的raw avi,用xivd压了之后视频画质大约有多少损失?
级别: 新手上路
注册时间:
2002-11-27
在线时间:
0小时
发帖:
88
只看该作者 28楼 发表于: 2003-10-22
更新一下!
级别: 侠客
注册时间:
2002-08-16
在线时间:
0小时
发帖:
781
只看该作者 27楼 发表于: 2003-09-10
天啊 , 有夠複雜 , 我完全看不懂 ............................
快速回复

限150 字节
上一个 下一个