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

[转贴]avs合成在DVDRIP-rmvb压制中的应用

楼层直达
级别: 新手上路
注册时间:
2004-01-23
在线时间:
0小时
发帖:
96
[分享]avs合成在DVDRIP-rmvb压制中的应用


之前在avs的那个帖子里简单的谈到了avs的这个应用,现在写的详细些。目的还是为了控制1pass压制下的妈率错位,得到性价比较高的rmvb!

多CD的DVDRIP有一定比例,一方面是DVDRIP制作者过度拘谨于所谓的TDX2002标准,使绝大多数原本1CD就可以搞定的作成2CD,使2CD可以搞定的作成3~4CD(暂时还未见变态到5CD以上的),另一方面是盲目的追求所谓的高音质,音频大小可以占到文件大小的一半以上,如DTS音频等。

在网络进行共享交流的媒体格式应该体现出清晰而小巧。之前由于受限于编码格式,网络上多是“小巧”但非清晰格式,如rm,asf等。目前编码格式的发展使清晰成为趋势,div/rmvb/xvid/vp6/wmv9等接踵而至。但遗憾的是大家对于文件大小却麻木了。特别是rmvb。如果保证清晰度一定需要单纯高码率来悦现,那么我无话可说。但是,如果135M左右的连续剧(45min),65M左右的动画片(23min),270M左右的电影(90min)就可以达到清晰的效果,而大家偏偏要把它畸形到170M,100M和350M,那么我不能不说了。rmvb说什么,170M可以4集/CD,350M可以2部/CD这个观念不能影响到对于清晰而小巧的rmvb的制作和索求上。用更少的上传和下载时间来交流清晰而小巧的rmvb,理所当然是网络媒体的特点之一。

这段是题外话,下面进入正题。

avs用于DVDRIP-rmvb中的压制是利用其合成功能,将多CD的avi直接压制成1个rmvb,这么做有几个好处
1,部分DTS音频的分离转换成wave格式后,不必再合成成avi再压制,可以直接用avs的AudioDub(video, audio)来压制
2,多CD的avi如果片子较短,很容易1pass下压制错位。但是如果将几个CD合在一起,那么相当于压制完整的电影,可以在一定程度上控制码率错位。如这次的魔戒3、英雄和BBC的几部科教片部分片子我就是用的avs控制了码率

如果不是想达到这个目的,那么没必要使用avs兜圈子来压制DVDRIP-rmvb。ERP+ffdshow设置更显成熟!

下面先介绍DTS格式音频的avi的合成压制
首先使用AVIMux_GUI提取avi中的音频,右键点击令存为dts即可!
然后利用grapgedit将DTS转换成wave格式,注意保证空间大小,DTS转wav大小会增加100-200M之间,这点倒比较好,其他格式的转wav都是要上g的空间大小

记事本里写入avs语法

基本格式是
video = AVISource("capture1.avi",false)+AVISource("capture2.avi",false)+....
audio = WAVSource("capture1.wav")+WAVSource("capture2.wav")+....
AudioDub(video, audio)

对于每一个AVISource("capture1.avi")可以在后面用.引出滤镜

下面这个例子是我压制英雄中使用的avs语法
LoadPlugin("VSFilter.dll")
video=AviSource("J:\Hero.SE.2002.DivX.DTS.CD1-ACE.avi",false).LanczosResize(640,272).sharpen(0.2).TextSub("H:\temp\jrvs.ssa")+AviSource("J:\Hero.SE.2002.DivX.DTS.CD2-ACE.avi",false).LanczosResize(640,272).sharpen(0.2)+AviSource("J:\Hero.SE.2002.DivX.DTS.CD3-ACE.avi",false).LanczosResize(640,272).sharpen(0.2)
audio=wavSource("H:\temp\CD1.wav")+wavSource("H:\temp\CD2.wav")+wavSource("H:\temp\CD3.wav")
AudioDub(video, audio)

注:" ,false表示禁止音频。
语法反正是拷贝,老q请不要说写的太烦琐了呀,另外,我没感觉这么写压缩速度有什么影响。
这里第一个文件加载了水印字幕,由于英雄是divx5.11格式的,ffdshow的滤镜不支持,所以我手动加载了缩放(原画面是800*)和锐化滤镜。一般如果ffdshow支持的话,可以在ffdshow里设置。一般sharpen(0.2)不要使用,英雄这个片子divx做的不好,泛糊,所以我加了锐化滤镜

用ERP加载这个avs文件设置码率和帧率开始压缩。我使用380-1000k的码率压制,最终码率435k,文件大小300M左右,而单独CD压制,450kVBR码率单纯压制,每CD都错位到600k,文件大小接近400M(如蓝荫ftp上的那个)

下面介绍短片一起压制成1个rmvb文件
很多科教片每集30min左右,这类科教片单独avi压制码率容易错位,但是集中在一起,很容易控制码率

下面是BBC科教片-冰雪的童话里的avs合成语法
LoadPlugin("VSFilter.dll")
cd1=DirectShowSource("E:\avi\ice\1.avi").VobSub("E:\avi\ice\1.idx").TextSub("H:\avs\jrvs.ssa")
cd2=DirectShowSource("E:\avi\ice\2.avi").VobSub("E:\avi\ice\2.idx")
cd3=DirectShowSource("E:\avi\ice\3.avi").VobSub("E:\avi\ice\3.idx")
cd4=DirectShowSource("E:\avi\ice\4.avi").VobSub("E:\avi\ice\4.idx")
cd5=DirectShowSource("E:\avi\ice\5.avi").VobSub("E:\avi\ice\5.idx")
cd6=DirectShowSource("E:\avi\ice\6.avi").VobSub("E:\avi\ice\6.idx")
final=cd1+cd2+cd3+cd4+cd5+cd6
return final

由于ffdshow支持xvid,所以我的滤镜都在ffdshow里设置好了,如亮度、缩放等,这个画面原始就是512×384的,所以合适的画面不作处理

注,如果是单语avi格式的,那么使用AVISource加载,如果是多语的avi格式的,就用DirectShowSource。

ac3格式的,受限于2声道的限制,2个声道以上的,如果直接DirectShowSource加载会导致不同步。多个声道的先转换成mp3,然后根据上面介绍的如法炮制即可。

快速回复

限150 字节
上一个 下一个