『漫游』酷论坛>『影音数码技术学习交流』>[求助]使用AVS播放WMV9 ..

[求助]使用AVS播放WMV9动画的问题

lubt@2004-07-09 13:48

我有一个动画,是用WMV9编码的,我用播放器可以直接放,只是由于是120FPS的,所以需要编写AVS脚本来压缩,可是无法用AVS脚本来播放,只能听到声音,没有图像,是需要有插件吗?
脚本文件如下:
AVISource("[POPGO][Last_Exile][DVDrip]05.avi").ChangeFPS(59.94)

我把FPS改为24,30也都没用,盼解答,谢谢~~
引用

Bopirit@2004-07-09 17:35

directshowsource()
引用

lubt@2004-07-09 17:56

用directshowsource()虽然可以放,但是有很多问题
120变30的话,时间会增长4倍,影音也不同步
直接用120的话,又会严重掉帧
引用

ywwq@2004-07-09 18:56

avs这样写:
v=avisource("[POPGO][Last_Exile][DVDrip]05(6D3F3066).avi",false).changefPS(23.976)
a=directshowsource("[POPGO][Last_Exile][DVDrip]05(6D3F3066).avi")
audiodub(v,a)
引用

堕天地狱@2004-07-09 19:04

重裝一下wmv9vcm解碼器
引用

lubt@2004-07-09 20:18

引用
最初由 ywwq 发布
avs这样写:
v=avisource("[POPGO][Last_Exile][DVDrip]05(6D3F3066).avi",false).changefPS(23.976)
a=directshowsource("[POPGO][Last_Exile][DVDrip]05(6D3F3066).avi")
audiodub(v,a)


大感激~:D 这样写果然就可以了
可以说一下原理吗?AVS这东西还真是复杂啊~~
引用

MeteorRain@2004-07-09 21:00

ywwq的方法感觉不是很好,速度会比较慢。
用wmv9vcm驱动肯定是王道。安装好以后只要
avisource("xxx.avi")就可以导入了。
另外,个人觉得用.selectevery(5,0)要比.changefps(23.976)要好。
引用

lubt@2004-07-09 21:30

引用
最初由 MeteorRain 发布
ywwq的方法感觉不是很好,速度会比较慢。
用wmv9vcm驱动肯定是王道。安装好以后只要
avisource("xxx.avi")就可以导入了。
另外,个人觉得用.selectevery(5,0)要比.changefps(23.976)要好。


wmv9vcm的驱动我装了N便也没用,难道我RP有WT?
ywwq的方法确实比较慢,24分钟的动画压了1个小时,别的动画只需45分钟

selectevery(5,0)和changefps(23.976)有什么区别,audiodub()这个函数是什么意思?盼解答
引用

MeteorRain@2004-07-09 21:52

audiodub 合并视频流和音频流对象为一个视频音频流对象。
.selectevery(5,0)就是每5帧里抽出第1帧。
.changefps(23.976)则需要进行复杂一些的运算,算出一个能保证fps为23.976的抽帧方案来(例如xxxxxx帧里抽出23976帧……)
因为两个函数的算法复杂度不同,因此耗用的计算时间也完全不同。selectevery只要负责抽1帧等4帧再抽1帧再等4帧就行了,而changefps还要进行方案设计……
引用

lubt@2004-07-09 22:05

引用
最初由 MeteorRain 发布
audiodub 合并视频流和音频流对象为一个视频音频流对象。
.selectevery(5,0)就是每5帧里抽出第1帧。
.changefps(23.976)则需要进行复杂一些的运算,算出一个能保证fps为23.976的抽帧方案来(例如xxxxxx帧里抽出23976帧……)
因为两个函数的算法复杂度不同,因此耗用的计算时间也完全不同。selectevery只要负责抽1帧等4帧再抽1帧再等4帧就行了,而changefps还要进行方案设计……


多谢解答

这样看来的话,压缩时selectevery(5,0)的速度应该比changefps(23.976)快,而changefps(23.976)的画质应该比selectevery(5,0)的好

我压缩时用的是changefps(59.94)
引用

MeteorRain@2004-07-09 22:20

引用
而changefps(23.976)的画质应该比selectevery(5,0)的好
没有好。相反的,在这种情况下,容易出现不均衡删帧的情况
例如如果是/5出来是23.97602fps,那么用changefps(23.976)就容易出现多删帧的情况(强制到23.97600)
changefps只有在合并两个fps不同的流对象的时候用才比较恰当。
另外,我也有用warpsharp的auto24fps,可以用来转24fps
引用

skyccy@2004-07-10 21:39

我压了一个``纯情房东俏房客`情况一样`你装好WMV9插件以后按下面脚本写就一定没错的了`不会不同步`
LoadPlugin("VSFilter.dll")
filename="[POPGO][FREEWIND][LOVE_HINA][DVDRIP][WMV9_MP3][01].avi"
v=AVISource(filename,audio=false).ChangeFPS(23.976)
a=DirectShowSource(filename,video=false)
AudioDub(v,a)
textsub("XXX.ssa")
textsub("POPGO][FREEWIND][LOVE_HINA][DVDRIP][WMV9_MP3][01].scv2.ssa")
引用

skywalker@2004-07-10 22:44

引用
最初由 MeteorRain 发布
没有好。相反的,在这种情况下,容易出现不均衡删帧的情况
例如如果是/5出来是23.97602fps,那么用changefps(23.976)就容易出现多删帧的情况(强制到23.97600)
changefps只有在合并两个fps不同的流对象的时候用才比较恰当。
另外,我也有用warpsharp的auto24fps,可以用来转24fps


一般来说120fps的片子是由两个fps不同的片子组合起来的, 这时候只用一selectevery()就不太合适了, changefps()虽然不是最好的办法, 但是却是最省力的办法............
引用

MeteorRain@2004-07-11 01:33

@skyccy
与其用那种方法,不如分开压视频和音频,然后用rma -j和-i来合并呢。

@skywalker
两个fps不同的片子组合?那只有可能是特效吧。如果仅仅为了接一个特效的话,那么可以用assumefps
其中,主篇用selectevery降到24以后,把特效段用assumefps将帧率改成一样,然后分别trim接合。虽然可能会出现0~1帧的帧偏移,但是至少不会不均衡删帧的现象……
PS:反正我从来没碰到过这种情况,再说楼主那种情况肯定用selectevery要合算得多。
引用

堕天地狱@2004-07-11 06:51

skyccy 那種方法是針對120fps 外加音頻是vbr mp3的
引用

«12»共2页

| TOP