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

[急救!]用AVS压120FPS片子时遇到奇怪问题

楼层直达
级别: 工作组
注册时间:
2003-06-26
在线时间:
0小时
发帖:
676
小弟用AVS压120FPS片子 结果压完后片子都成了快进的模式 郁闷~
请高手指教~


最初から……好きじゃなかったの……
级别: 版主
注册时间:
2002-12-02
在线时间:
0小时
发帖:
3002
只看该作者 20楼 发表于: 2004-08-14
其實有興趣的
可以下 AviSynth 源碼來看看
會發現 DirectShowSource 是直接引用 windows 系統 的 DirectX而設計的
因此作者並沒多少可操作的地方
avg_time_per_frame = 10000000 / vi.fps_numerator * vi.fps_denominator

有音訊的情況下
FPS 是靠音訊長度、bitrate除得
所以會不同步主要是 VBR 音訊的緣故
(視訊的 fps 是固定是變動都無法改善,是固定可用 EnsureVBRMP3Sync 改善)

级别: 版主
注册时间:
2001-11-21
在线时间:
0小时
发帖:
2803
只看该作者 19楼 发表于: 2004-08-13
引用
最初由 skyccy 发布
以下是我在某教程中写的一段``

AVISource读取不了
有的人可能试过用Directshowsource来读WMV.AVI`压制出后发现后面慢慢出现`不同步`
用`Directshowsource很多时会不同步`特别是WMV9`
如`Directshowsource("WMV9.AVI".FPS=24)每秒播放24帧`
因为WMV9的帧数是活动的(XIVD没有动态FPS)`如有4秒是30帧`每秒才读了24帧`
视频就比音频慢了1秒``(每秒读少了6帧`4秒就少读取24帧)
不论你定任何值都会不同步`可能有人会说:为什么你又说120FPS使用.ChangeFPS(XXX)来做?
这2个的性质不同`一个是指定每秒读取输出多少帧`一个是把输出帧数改变

LoadPlugin("VSFilter.dll")
v=AVISource("***.AVI",audio=false)
WMV9.AVI无法用AVISource是因为音频`audio=false意思去掉音频这样AVISource就可读了`
a=DirectShowSource("***.AVI",video=false)
刚才把视频的音频去掉了`这句是使用"DirectShowSource"读取无视频(video=false)的AVI`
VBR音频问题也用这方法`这样一把音视频分开来写`就解决了VBR做成不同步
AudioDub(v,a)


其实AVI的wmv是不可能有动态FPS的, 因为AVI不支持动态FPS, 可能只有用asf才能有vfr.
另外xvid是可以用vfr的, 其实任何codec都可以用vfr, 只要容器格式支持就行了.

live id: liusu119@hotmail.com
email: liusu119@gmail.com
级别: 风云使者
注册时间:
2003-05-04
在线时间:
1小时
发帖:
6095
只看该作者 18楼 发表于: 2004-08-13
其实如果音频是mp3 vbr,加一句EnsureVBRMP3Sync就行了,可以替代视频音频分开写的过程

一般情况(比如音频是常见的mp3)avisource也可以读取包含音频的wmv9.avi的,只有音频是较特殊的编码时才需要分开写
级别: 新手上路
注册时间:
2004-04-24
在线时间:
0小时
发帖:
132
只看该作者 17楼 发表于: 2004-08-13
以下是我在某教程中写的一段``

AVISource读取不了
有的人可能试过用Directshowsource来读WMV.AVI`压制出后发现后面慢慢出现`不同步`
用`Directshowsource很多时会不同步`特别是WMV9`
如`Directshowsource("WMV9.AVI".FPS=24)每秒播放24帧`
因为WMV9的帧数是活动的(XIVD没有动态FPS)`如有4秒是30帧`每秒才读了24帧`
视频就比音频慢了1秒``(每秒读少了6帧`4秒就少读取24帧)
不论你定任何值都会不同步`可能有人会说:为什么你又说120FPS使用.ChangeFPS(XXX)来做?
这2个的性质不同`一个是指定每秒读取输出多少帧`一个是把输出帧数改变

LoadPlugin("VSFilter.dll")
v=AVISource("***.AVI",audio=false)
WMV9.AVI无法用AVISource是因为音频`audio=false意思去掉音频这样AVISource就可读了`
a=DirectShowSource("***.AVI",video=false)
刚才把视频的音频去掉了`这句是使用"DirectShowSource"读取无视频(video=false)的AVI`
VBR音频问题也用这方法`这样一把音视频分开来写`就解决了VBR做成不同步
AudioDub(v,a)
级别: 新手上路
注册时间:
2004-04-24
在线时间:
0小时
发帖:
132
只看该作者 16楼 发表于: 2004-08-13
按以下方法`能读``绝对同步``

LoadPlugin("VSFilter.dll")
v=AVISource("E:\eMule\Incoming\Masaru Ashita no Yukinojoe 2 Vol.2.avi",false).ChangeFPS(23.970)
a=DirectShowSource("E:\eMule\Incoming\Masaru Ashita no Yukinojoe 2 Vol.2.avi",video=false)
AudioDub(v,a)
textsub("E:\eMule\Incoming\Masaru Ashita no Yukinojoe 2 Vol.2.ssa")

第一:
这样就可以的了``
用DirectShowSource读取不同步是因为WMV9用DirectShowSource读取WMV9已经把`输出帧定死了为`默认帧`30帧``因为WMV9帧数是动态的``
固定死每秒读取输出帧``那么`你用什么帧值都不会同步``

第二:WMV9``用AVISource读取不了`因为你没有装好足够插件或音频问题``
把音频和视频分开写AVISource就可以读WMV9的AVI`

PS:请装好以下三样插件``
WM9Codecs.exe`
WM9Powertoy_TweakMP.EXE
wmv9VCMsetup.exe
级别: 工作组
注册时间:
2003-06-26
在线时间:
0小时
发帖:
676
只看该作者 15楼 发表于: 2004-08-12
感谢楼上的指教 我尝试一下


最初から……好きじゃなかったの……
级别: 新手上路
注册时间:
2003-11-07
在线时间:
0小时
发帖:
247
只看该作者 14楼 发表于: 2004-08-12
我建议用SelectEvery(5,0),120FPS的片子一般就是开头的歌段才是30fps的,用4整部片都变了30fps,还是顾片的内容用5还原到23.976fps吧。

最后补一句用Video Renderer看清楚片源主内容的fps才决定用4还是5。
级别: 风云使者
注册时间:
2003-08-12
在线时间:
101小时
发帖:
5194
只看该作者 13楼 发表于: 2004-08-12
如果楼主只是要这个动画的rmvb,我倒是可以提供,我以前用avs压过了的,同样的源文件吧

对了,发现楼主的文件名里面有.
我在做avs脚本的时候发现好像不能有.之类的特殊符号,否则会被认为是又一段字段的开始,所以请把.全部换成空格


[IMG]http://i103.photobucket.com/albums/m132/maihajime/sign/ai_moe.jpg[/IMG
级别: 工作组
注册时间:
2003-06-26
在线时间:
0小时
发帖:
676
只看该作者 12楼 发表于: 2004-08-11
问题解决了 好象是因为我重装系统后忘了装wmv9vcm的缘故 现在装了后用AVISOURCE压 没问题了 谢谢大家的帮助!谢谢!


最初から……好きじゃなかったの……
级别: 新手上路
注册时间:
2004-03-29
在线时间:
0小时
发帖:
249
只看该作者 11楼 发表于: 2004-08-11
用这个试试看

AVISource("E:\eMule\Incoming\Masaru Ashita no Yukinojoe 2 Vol.2.avi").SelectEvery(4,0)

LoadPlugin("VSFilter.dll")
TextSub("E:\eMule\Incoming\Masaru Ashita no Yukinojoe 2 Vol.2.ssa")
级别: 工作组
注册时间:
2003-06-26
在线时间:
0小时
发帖:
676
只看该作者 10楼 发表于: 2004-08-11
引用
最初由 ywwq 发布

你视频和音频填的怎么是ssa的字幕?


要先装wmv9vcm



这个是复制的时候没注意 哈哈....压的时候没这么填


最初から……好きじゃなかったの……
级别: 风云使者
注册时间:
2003-05-04
在线时间:
1小时
发帖:
6095
只看该作者 9楼 发表于: 2004-08-11
引用
最初由 淡淡忧伤 发布

v=DirectShowSource("E:\eMule\Incoming\Masaru Ashita no Yukinojoe 2 Vol.2.ssa")
a=DirectShowSource("E:\eMule\Incoming\Masaru Ashita no Yukinojoe 2 Vol.2.ssa")

你视频和音频填的怎么是ssa的字幕?

引用
最初由 淡淡忧伤 发布

因为用AVISOURCE就出来这个...........

要先装wmv9vcm
级别: 工作组
注册时间:
2003-06-26
在线时间:
0小时
发帖:
676
只看该作者 8楼 发表于: 2004-08-11
引用
最初由 使徒 发布
把音频视频分离,在合并压



:confused: 请稍微具体一点....偶不太懂这个


最初から……好きじゃなかったの……
级别: 工作组
注册时间:
2003-06-26
在线时间:
0小时
发帖:
676
只看该作者 7楼 发表于: 2004-08-11
引用
最初由 ywwq 发布
也可以video和audio分开来些,加一句audiodub



是这个不?
v=DirectShowSource("E:\eMule\Incoming\Masaru Ashita no Yukinojoe 2 Vol.2.ssa")
a=DirectShowSource("E:\eMule\Incoming\Masaru Ashita no Yukinojoe 2 Vol.2.ssa")
AudioDub(v,a).ChangeFPS(23.97)
loadplugin("vsfilter.dll")
TextSub("E:\eMule\Incoming\Masaru Ashita no Yukinojoe 2 Vol.2.ssa")

也不行 55555555555~~我受不了了~ 会不会是AVS本身或者插件的问题?我没装FFDSHOW和KL-CODE之类的东西


最初から……好きじゃなかったの……
快速回复

限150 字节
上一个 下一个